@libredb/studio 0.9.7 → 0.9.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-34YQUUCM.mjs +319 -0
- package/dist/chunk-34YQUUCM.mjs.map +1 -0
- package/dist/chunk-4LVB3K53.mjs +37 -0
- package/dist/chunk-4LVB3K53.mjs.map +1 -0
- package/dist/chunk-6DRZXXNT.mjs +100 -0
- package/dist/chunk-6DRZXXNT.mjs.map +1 -0
- package/dist/chunk-CPF7XWV5.mjs +1289 -0
- package/dist/chunk-CPF7XWV5.mjs.map +1 -0
- package/dist/chunk-CZVV3JJB.mjs +160 -0
- package/dist/chunk-CZVV3JJB.mjs.map +1 -0
- package/dist/chunk-D4WVWWWF.js +332 -0
- package/dist/chunk-D4WVWWWF.js.map +1 -0
- package/dist/chunk-DY3KXE44.mjs +3 -0
- package/dist/chunk-DY3KXE44.mjs.map +1 -0
- package/dist/chunk-FYSE52VB.js +242 -0
- package/dist/chunk-FYSE52VB.js.map +1 -0
- package/dist/chunk-G3S66G64.mjs +6673 -0
- package/dist/chunk-G3S66G64.mjs.map +1 -0
- package/dist/chunk-G4WYE6TI.js +4 -0
- package/dist/chunk-G4WYE6TI.js.map +1 -0
- package/dist/chunk-HGPD6PWV.js +1310 -0
- package/dist/chunk-HGPD6PWV.js.map +1 -0
- package/dist/chunk-JZO5KRZN.js +165 -0
- package/dist/chunk-JZO5KRZN.js.map +1 -0
- package/dist/chunk-KV356UXJ.js +253 -0
- package/dist/chunk-KV356UXJ.js.map +1 -0
- package/dist/chunk-PPODO6HX.mjs +237 -0
- package/dist/chunk-PPODO6HX.mjs.map +1 -0
- package/dist/chunk-PTIRB2JO.js +258 -0
- package/dist/chunk-PTIRB2JO.js.map +1 -0
- package/dist/chunk-Q6LRDBK7.js +42 -0
- package/dist/chunk-Q6LRDBK7.js.map +1 -0
- package/dist/chunk-QJP5FZRY.mjs +255 -0
- package/dist/chunk-QJP5FZRY.mjs.map +1 -0
- package/dist/chunk-R3POCJK6.mjs +248 -0
- package/dist/chunk-R3POCJK6.mjs.map +1 -0
- package/dist/chunk-RCQB4FCE.js +186 -0
- package/dist/chunk-RCQB4FCE.js.map +1 -0
- package/dist/chunk-SR5DRGBX.mjs +174 -0
- package/dist/chunk-SR5DRGBX.mjs.map +1 -0
- package/dist/chunk-VLCRUZX7.js +102 -0
- package/dist/chunk-VLCRUZX7.js.map +1 -0
- package/dist/chunk-Y52UIFEX.js +6741 -0
- package/dist/chunk-Y52UIFEX.js.map +1 -0
- package/dist/components.d.mts +273 -0
- package/dist/components.d.ts +273 -0
- package/dist/components.js +59 -0
- package/dist/components.js.map +1 -0
- package/dist/components.mjs +6 -0
- package/dist/components.mjs.map +1 -0
- package/dist/custom-BNDOYC5P.js +134 -0
- package/dist/custom-BNDOYC5P.js.map +1 -0
- package/dist/custom-S2EKFMP3.mjs +132 -0
- package/dist/custom-S2EKFMP3.mjs.map +1 -0
- package/dist/gemini-4ASHNK4H.js +81 -0
- package/dist/gemini-4ASHNK4H.js.map +1 -0
- package/dist/gemini-C5RBLQEJ.mjs +79 -0
- package/dist/gemini-C5RBLQEJ.mjs.map +1 -0
- package/dist/index.d.mts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +95 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +10 -0
- package/dist/index.mjs.map +1 -0
- package/dist/mongodb-XMZEZA4A.mjs +748 -0
- package/dist/mongodb-XMZEZA4A.mjs.map +1 -0
- package/dist/mongodb-YQJJTLX3.js +750 -0
- package/dist/mongodb-YQJJTLX3.js.map +1 -0
- package/dist/mssql-PMOU4D36.js +916 -0
- package/dist/mssql-PMOU4D36.js.map +1 -0
- package/{src/lib/db/providers/sql/mssql.ts → dist/mssql-ZH5VP2C5.mjs} +268 -423
- package/dist/mssql-ZH5VP2C5.mjs.map +1 -0
- package/{src/lib/db/providers/sql/mysql.ts → dist/mysql-I3WJQXN2.mjs} +277 -428
- package/dist/mysql-I3WJQXN2.mjs.map +1 -0
- package/dist/mysql-Y3MSA5QY.js +833 -0
- package/dist/mysql-Y3MSA5QY.js.map +1 -0
- package/dist/ollama-26BYLVEV.mjs +115 -0
- package/dist/ollama-26BYLVEV.mjs.map +1 -0
- package/dist/ollama-HVWAGKQC.js +117 -0
- package/dist/ollama-HVWAGKQC.js.map +1 -0
- package/dist/openai-4U56KPG7.mjs +111 -0
- package/dist/openai-4U56KPG7.mjs.map +1 -0
- package/dist/openai-AK3R37BS.js +113 -0
- package/dist/openai-AK3R37BS.js.map +1 -0
- package/dist/oracle-L6VEAVXO.js +917 -0
- package/dist/oracle-L6VEAVXO.js.map +1 -0
- package/{src/lib/db/providers/sql/oracle.ts → dist/oracle-P2G7T4P4.mjs} +321 -454
- package/dist/oracle-P2G7T4P4.mjs.map +1 -0
- package/{src/lib/db/providers/sql/postgres.ts → dist/postgres-O5KOQUVP.mjs} +261 -471
- package/dist/postgres-O5KOQUVP.mjs.map +1 -0
- package/dist/postgres-RLCWNFFX.js +971 -0
- package/dist/postgres-RLCWNFFX.js.map +1 -0
- package/dist/providers.d.mts +149 -0
- package/dist/providers.d.ts +149 -0
- package/dist/providers.js +44 -0
- package/dist/providers.js.map +1 -0
- package/dist/providers.mjs +7 -0
- package/dist/providers.mjs.map +1 -0
- package/dist/redis-4WMQOVLX.mjs +435 -0
- package/dist/redis-4WMQOVLX.mjs.map +1 -0
- package/dist/redis-QVQ6YU62.js +441 -0
- package/dist/redis-QVQ6YU62.js.map +1 -0
- package/dist/sqlite-4I2P2OGQ.js +554 -0
- package/dist/sqlite-4I2P2OGQ.js.map +1 -0
- package/dist/sqlite-OA4YJX5S.mjs +531 -0
- package/dist/sqlite-OA4YJX5S.mjs.map +1 -0
- package/dist/types-BJvJfxSY.d.mts +141 -0
- package/dist/types-BJvJfxSY.d.ts +141 -0
- package/dist/types-ClAg_v5k.d.mts +343 -0
- package/dist/types-Der_X8E8.d.ts +343 -0
- package/dist/types.d.mts +2 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/types.mjs +3 -0
- package/dist/types.mjs.map +1 -0
- package/dist/workspace.d.mts +80 -0
- package/dist/workspace.d.ts +80 -0
- package/dist/workspace.js +4174 -0
- package/dist/workspace.js.map +1 -0
- package/dist/workspace.mjs +4147 -0
- package/dist/workspace.mjs.map +1 -0
- package/package.json +60 -5
- package/.claude/settings.local.json +0 -127
- package/.cursorrules +0 -426
- package/.devin/wiki.json +0 -143
- package/.dockerignore +0 -80
- package/.env.example +0 -159
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -49
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -29
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -57
- package/.github/workflows/ci.yml +0 -185
- package/.github/workflows/codeql.yml +0 -57
- package/.github/workflows/docker-build-push.yml +0 -118
- package/.github/workflows/helm-release.yml +0 -113
- package/CLAUDE.md +0 -265
- package/CODE_OF_CONDUCT.md +0 -124
- package/CONTRIBUTING.md +0 -154
- package/Dockerfile +0 -73
- package/SECURITY.md +0 -107
- package/artifacthub-repo.yml +0 -4
- package/bun.lock +0 -1714
- package/bunfig.toml +0 -3
- package/charts/libredb-studio/.helmignore +0 -11
- package/charts/libredb-studio/Chart.lock +0 -6
- package/charts/libredb-studio/Chart.yaml +0 -50
- package/charts/libredb-studio/README.md +0 -206
- package/charts/libredb-studio/templates/NOTES.txt +0 -59
- package/charts/libredb-studio/templates/_helpers.tpl +0 -135
- package/charts/libredb-studio/templates/configmap.yaml +0 -37
- package/charts/libredb-studio/templates/deployment.yaml +0 -184
- package/charts/libredb-studio/templates/hpa.yaml +0 -32
- package/charts/libredb-studio/templates/ingress.yaml +0 -41
- package/charts/libredb-studio/templates/networkpolicy.yaml +0 -50
- package/charts/libredb-studio/templates/pdb.yaml +0 -18
- package/charts/libredb-studio/templates/pvc.yaml +0 -23
- package/charts/libredb-studio/templates/secret.yaml +0 -30
- package/charts/libredb-studio/templates/seed-configmap.yaml +0 -11
- package/charts/libredb-studio/templates/service.yaml +0 -22
- package/charts/libredb-studio/templates/serviceaccount.yaml +0 -13
- package/charts/libredb-studio/values.schema.json +0 -246
- package/charts/libredb-studio/values.yaml +0 -286
- package/components.json +0 -22
- package/conductor/code_styleguides/typescript.md +0 -43
- package/conductor/product-guidelines.md +0 -43
- package/conductor/product.md +0 -3
- package/conductor/setup_state.json +0 -1
- package/conductor/tech-stack.md +0 -39
- package/conductor/tracks/enhance_postgres_monitoring_20251227/metadata.json +0 -8
- package/conductor/tracks/enhance_postgres_monitoring_20251227/plan.md +0 -44
- package/conductor/tracks/enhance_postgres_monitoring_20251227/spec.md +0 -31
- package/conductor/tracks.md +0 -8
- package/conductor/workflow.md +0 -333
- package/database-compose.yml +0 -55
- package/docker/postgres-init/01-extensions.sql +0 -10
- package/docker/postgres-init/02-sample-data.sql +0 -585
- package/docker/postgres.yml +0 -68
- package/docker-compose.yml +0 -38
- package/docs/AI_PLAN.md +0 -74
- package/docs/API_DOCS.md +0 -875
- package/docs/ARCHITECTURE.md +0 -218
- package/docs/DATABASE_PROVIDERS.md +0 -358
- package/docs/FEATURES.md +0 -116
- package/docs/HELM_CHART.md +0 -252
- package/docs/LOGIN_PAGE.md +0 -178
- package/docs/MONACO_EDITOR_PERFORMANCE.md +0 -315
- package/docs/OIDC_ARCH.md +0 -681
- package/docs/OIDC_SETUP.md +0 -322
- package/docs/POSTGRES_METRICS.md +0 -516
- package/docs/QUERY_OPTIMIZATION.md +0 -370
- package/docs/SEED_CONNECTIONS.md +0 -468
- package/docs/SQL_ALIAS_COMPLETION.md +0 -190
- package/docs/STORAGE_ARCHITECTURE.md +0 -565
- package/docs/STORAGE_QUICK_SETUP.md +0 -419
- package/docs/TECHNICAL_PLAN.md +0 -36
- package/docs/THEMING.md +0 -345
- package/docs/adding-a-new-database-provider.md +0 -642
- package/docs/backlogs/000-PLATFORM_DATA_SYNC_DATABASE.md +0 -360
- package/docs/backlogs/001-INLINE_DATA_EDITING.md +0 -118
- package/docs/backlogs/002-DATA_IMPORT.md +0 -215
- package/docs/backlogs/003-QUERY_TIME_MACHINE.md +0 -183
- package/docs/backlogs/004-AI_DATA_STORYTELLER.md +0 -292
- package/docs/backlogs/005-QUERY_PLAYGROUND.md +0 -352
- package/docs/backlogs/006-DATA_MASKING.md +0 -418
- package/docs/enterprise-features.md +0 -718
- package/docs/kubernetes-helm-chart-artifacthub-plan.md +0 -803
- package/docs/medium-koyeb-article-en.md +0 -215
- package/docs/plans/test-plans.md +0 -445
- package/docs/releases/RELEASE.V0.3.0.md +0 -22
- package/docs/releases/RELEASE.V0.4.0.md +0 -154
- package/docs/releases/RELEASE.V0.5.0.md +0 -252
- package/docs/releases/RELEASE_v0.5.6.md +0 -145
- package/docs/releases/RELEASE_v0.6.1.md +0 -303
- package/docs/releases/RELEASE_v0.6.7.md +0 -292
- package/docs/releases/RELEASE_v0.7.0.md +0 -332
- package/docs/releases/RELEASE_v0.8.0.md +0 -521
- package/docs/sampledb/titanic.sql +0 -1379
- package/docs/superpowers/plans/2026-03-25-seed-connections.md +0 -1362
- package/docs/superpowers/specs/2026-03-25-seed-connections-design.md +0 -590
- package/e2e/admin-dashboard.spec.ts +0 -64
- package/e2e/connection-management.spec.ts +0 -58
- package/e2e/export.spec.ts +0 -34
- package/e2e/login.spec.ts +0 -85
- package/e2e/query-execution.spec.ts +0 -35
- package/e2e/tab-management.spec.ts +0 -64
- package/eslint.config.mjs +0 -28
- package/fly.toml +0 -43
- package/next.config.ts +0 -32
- package/playwright.config.ts +0 -34
- package/postcss.config.mjs +0 -7
- package/public/favicon-32x32.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/file.svg +0 -1
- package/public/globe.svg +0 -1
- package/public/logo.svg +0 -32
- package/public/next.svg +0 -1
- package/public/screenshots/code-generator.png +0 -0
- package/public/screenshots/connection-modal.png +0 -0
- package/public/screenshots/data-profiler.png +0 -0
- package/public/screenshots/erd-diagram.png +0 -0
- package/public/screenshots/hero-editor.png +0 -0
- package/public/screenshots/nl2sql.png +0 -0
- package/public/vercel.svg +0 -1
- package/public/window.svg +0 -1
- package/render.yaml +0 -58
- package/scripts/merge-lcov.mjs +0 -239
- package/sonar-project.properties +0 -16
- package/src/app/admin/error.tsx +0 -46
- package/src/app/admin/page.tsx +0 -10
- package/src/app/api/admin/audit/route.ts +0 -52
- package/src/app/api/admin/fleet-health/route.ts +0 -81
- package/src/app/api/ai/autopilot/route.ts +0 -105
- package/src/app/api/ai/chat/route.ts +0 -132
- package/src/app/api/ai/describe-schema/route.ts +0 -52
- package/src/app/api/ai/explain/route.ts +0 -86
- package/src/app/api/ai/impact/route.ts +0 -97
- package/src/app/api/ai/index-advisor/route.ts +0 -98
- package/src/app/api/ai/nl2sql/route.ts +0 -87
- package/src/app/api/ai/query-safety/route.ts +0 -87
- package/src/app/api/auth/login/route.ts +0 -62
- package/src/app/api/auth/logout/route.ts +0 -25
- package/src/app/api/auth/me/route.ts +0 -10
- package/src/app/api/auth/oidc/callback/route.ts +0 -82
- package/src/app/api/auth/oidc/login/route.ts +0 -43
- package/src/app/api/connections/managed/route.ts +0 -35
- package/src/app/api/db/cancel/route.ts +0 -42
- package/src/app/api/db/disconnect/route.ts +0 -28
- package/src/app/api/db/health/route.ts +0 -49
- package/src/app/api/db/maintenance/route.ts +0 -72
- package/src/app/api/db/monitoring/route.ts +0 -62
- package/src/app/api/db/multi-query/route.ts +0 -116
- package/src/app/api/db/pool-stats/route.ts +0 -37
- package/src/app/api/db/profile/route.ts +0 -144
- package/src/app/api/db/provider-meta/route.ts +0 -49
- package/src/app/api/db/query/route.ts +0 -50
- package/src/app/api/db/schema/route.ts +0 -47
- package/src/app/api/db/schema-snapshot/route.ts +0 -42
- package/src/app/api/db/test-connection/route.ts +0 -55
- package/src/app/api/db/transaction/route.ts +0 -111
- package/src/app/api/storage/[collection]/route.ts +0 -67
- package/src/app/api/storage/config/route.ts +0 -17
- package/src/app/api/storage/migrate/route.ts +0 -45
- package/src/app/api/storage/route.ts +0 -32
- package/src/app/error.tsx +0 -49
- package/src/app/global-error.tsx +0 -55
- package/src/app/globals.css +0 -146
- package/src/app/icon.svg +0 -42
- package/src/app/layout.tsx +0 -34
- package/src/app/login/login-form.tsx +0 -301
- package/src/app/login/page.tsx +0 -11
- package/src/app/monitoring/page.tsx +0 -8
- package/src/app/not-found.tsx +0 -29
- package/src/app/page.tsx +0 -5
- package/src/components/AIAutopilotPanel.tsx +0 -238
- package/src/components/CodeGenerator.tsx +0 -271
- package/src/components/CommandPalette.tsx +0 -227
- package/src/components/ConnectionModal.tsx +0 -759
- package/src/components/CreateTableModal.tsx +0 -281
- package/src/components/DataCharts.tsx +0 -962
- package/src/components/DataImportModal.tsx +0 -582
- package/src/components/DataProfiler.tsx +0 -335
- package/src/components/DatabaseDocs.tsx +0 -251
- package/src/components/MaskingSettings.tsx +0 -414
- package/src/components/MobileNav.tsx +0 -50
- package/src/components/NL2SQLPanel.tsx +0 -281
- package/src/components/PivotTable.tsx +0 -257
- package/src/components/QueryEditor.tsx +0 -760
- package/src/components/QueryHistory.tsx +0 -344
- package/src/components/QuerySafetyDialog.tsx +0 -290
- package/src/components/ResultsGrid.tsx +0 -644
- package/src/components/SaveQueryModal.tsx +0 -104
- package/src/components/SavedQueries.tsx +0 -128
- package/src/components/SchemaDiagram.tsx +0 -473
- package/src/components/SchemaDiff.tsx +0 -473
- package/src/components/SnapshotTimeline.tsx +0 -116
- package/src/components/Studio.tsx +0 -639
- package/src/components/TestDataGenerator.tsx +0 -261
- package/src/components/VisualExplain.tsx +0 -820
- package/src/components/admin/AdminDashboard.tsx +0 -163
- package/src/components/admin/tabs/AuditTab.tsx +0 -531
- package/src/components/admin/tabs/MonitoringEmbed.tsx +0 -11
- package/src/components/admin/tabs/OperationsTab.tsx +0 -646
- package/src/components/admin/tabs/OverviewTab.tsx +0 -1328
- package/src/components/admin/tabs/SecurityTab.tsx +0 -284
- package/src/components/community-section.tsx +0 -92
- package/src/components/icons/db-icons.tsx +0 -84
- package/src/components/libredb-logo.tsx +0 -61
- package/src/components/monitoring/MonitoringDashboard.tsx +0 -345
- package/src/components/monitoring/tabs/MetricChart.tsx +0 -82
- package/src/components/monitoring/tabs/OverviewTab.tsx +0 -263
- package/src/components/monitoring/tabs/PerformanceTab.tsx +0 -254
- package/src/components/monitoring/tabs/PoolTab.tsx +0 -174
- package/src/components/monitoring/tabs/QueriesTab.tsx +0 -287
- package/src/components/monitoring/tabs/SessionsTab.tsx +0 -316
- package/src/components/monitoring/tabs/StorageTab.tsx +0 -335
- package/src/components/monitoring/tabs/TablesTab.tsx +0 -300
- package/src/components/results-grid/ResultCard.tsx +0 -111
- package/src/components/results-grid/RowDetailSheet.tsx +0 -178
- package/src/components/results-grid/StatsBar.tsx +0 -201
- package/src/components/results-grid/index.ts +0 -1
- package/src/components/results-grid/utils.ts +0 -23
- package/src/components/schema-explorer/ColumnList.tsx +0 -53
- package/src/components/schema-explorer/SchemaExplorer.tsx +0 -182
- package/src/components/schema-explorer/TableItem.tsx +0 -210
- package/src/components/schema-explorer/index.ts +0 -1
- package/src/components/sidebar/ConnectionItem.tsx +0 -105
- package/src/components/sidebar/ConnectionsList.tsx +0 -62
- package/src/components/sidebar/Sidebar.tsx +0 -130
- package/src/components/sidebar/index.ts +0 -2
- package/src/components/studio/BottomPanel.tsx +0 -286
- package/src/components/studio/QueryToolbar.tsx +0 -180
- package/src/components/studio/StudioDesktopHeader.tsx +0 -114
- package/src/components/studio/StudioMobileHeader.tsx +0 -340
- package/src/components/studio/StudioTabBar.tsx +0 -82
- package/src/components/studio/index.ts +0 -5
- package/src/components/ui/accordion.tsx +0 -66
- package/src/components/ui/alert-dialog.tsx +0 -157
- package/src/components/ui/alert.tsx +0 -66
- package/src/components/ui/aspect-ratio.tsx +0 -11
- package/src/components/ui/avatar.tsx +0 -53
- package/src/components/ui/badge.tsx +0 -46
- package/src/components/ui/breadcrumb.tsx +0 -109
- package/src/components/ui/button-group.tsx +0 -83
- package/src/components/ui/button.tsx +0 -60
- package/src/components/ui/calendar.tsx +0 -216
- package/src/components/ui/card.tsx +0 -92
- package/src/components/ui/carousel.tsx +0 -241
- package/src/components/ui/chart.tsx +0 -357
- package/src/components/ui/checkbox.tsx +0 -32
- package/src/components/ui/collapsible.tsx +0 -33
- package/src/components/ui/command.tsx +0 -184
- package/src/components/ui/context-menu.tsx +0 -252
- package/src/components/ui/dialog.tsx +0 -143
- package/src/components/ui/drawer.tsx +0 -135
- package/src/components/ui/dropdown-menu.tsx +0 -257
- package/src/components/ui/empty.tsx +0 -104
- package/src/components/ui/field.tsx +0 -248
- package/src/components/ui/form.tsx +0 -167
- package/src/components/ui/hover-card.tsx +0 -44
- package/src/components/ui/input-group.tsx +0 -170
- package/src/components/ui/input-otp.tsx +0 -77
- package/src/components/ui/input.tsx +0 -21
- package/src/components/ui/item.tsx +0 -193
- package/src/components/ui/kbd.tsx +0 -28
- package/src/components/ui/label.tsx +0 -24
- package/src/components/ui/menubar.tsx +0 -276
- package/src/components/ui/navigation-menu.tsx +0 -168
- package/src/components/ui/pagination.tsx +0 -127
- package/src/components/ui/popover.tsx +0 -48
- package/src/components/ui/progress.tsx +0 -31
- package/src/components/ui/radio-group.tsx +0 -45
- package/src/components/ui/resizable.tsx +0 -56
- package/src/components/ui/scroll-area.tsx +0 -58
- package/src/components/ui/select.tsx +0 -187
- package/src/components/ui/separator.tsx +0 -28
- package/src/components/ui/sheet.tsx +0 -139
- package/src/components/ui/sidebar.tsx +0 -726
- package/src/components/ui/skeleton.tsx +0 -13
- package/src/components/ui/slider.tsx +0 -63
- package/src/components/ui/sonner.tsx +0 -40
- package/src/components/ui/spinner.tsx +0 -16
- package/src/components/ui/switch.tsx +0 -31
- package/src/components/ui/table.tsx +0 -116
- package/src/components/ui/tabs.tsx +0 -66
- package/src/components/ui/textarea.tsx +0 -18
- package/src/components/ui/toggle-group.tsx +0 -83
- package/src/components/ui/toggle.tsx +0 -47
- package/src/components/ui/tooltip.tsx +0 -61
- package/src/exports/components.ts +0 -15
- package/src/exports/index.ts +0 -4
- package/src/exports/providers.ts +0 -4
- package/src/exports/types.ts +0 -26
- package/src/hooks/use-ai-chat.ts +0 -182
- package/src/hooks/use-all-connections.ts +0 -66
- package/src/hooks/use-api-call.ts +0 -71
- package/src/hooks/use-auth.ts +0 -51
- package/src/hooks/use-connection-form.ts +0 -349
- package/src/hooks/use-connection-manager.ts +0 -169
- package/src/hooks/use-connection-payload.ts +0 -15
- package/src/hooks/use-inline-editing.ts +0 -109
- package/src/hooks/use-mobile.ts +0 -20
- package/src/hooks/use-monitoring-data.ts +0 -270
- package/src/hooks/use-provider-metadata.ts +0 -62
- package/src/hooks/use-query-execution.ts +0 -478
- package/src/hooks/use-storage-sync.ts +0 -259
- package/src/hooks/use-tab-manager.ts +0 -231
- package/src/hooks/use-toast.ts +0 -20
- package/src/hooks/use-transaction-control.ts +0 -64
- package/src/lib/api/error-codes.ts +0 -30
- package/src/lib/api/errors.ts +0 -236
- package/src/lib/api/with-error-handler.ts +0 -41
- package/src/lib/audit.ts +0 -105
- package/src/lib/auth.ts +0 -87
- package/src/lib/connection-string-parser.ts +0 -172
- package/src/lib/data-masking.ts +0 -385
- package/src/lib/db/base-provider.ts +0 -325
- package/src/lib/db/errors.ts +0 -317
- package/src/lib/db/factory.ts +0 -324
- package/src/lib/db/index.ts +0 -123
- package/src/lib/db/providers/document/index.ts +0 -6
- package/src/lib/db/providers/document/mongodb.ts +0 -992
- package/src/lib/db/providers/keyvalue/redis.ts +0 -554
- package/src/lib/db/providers/sql/index.ts +0 -11
- package/src/lib/db/providers/sql/sql-base.ts +0 -174
- package/src/lib/db/providers/sql/sqlite.ts +0 -721
- package/src/lib/db/types.ts +0 -437
- package/src/lib/db/utils/pool-manager.ts +0 -287
- package/src/lib/db/utils/query-limiter.ts +0 -239
- package/src/lib/db-ui-config.ts +0 -86
- package/src/lib/editor/mongodb-completions.ts +0 -172
- package/src/lib/editor/sql-completions.ts +0 -280
- package/src/lib/llm/base-provider.ts +0 -117
- package/src/lib/llm/factory.ts +0 -102
- package/src/lib/llm/index.ts +0 -90
- package/src/lib/llm/providers/custom.ts +0 -181
- package/src/lib/llm/providers/gemini.ts +0 -126
- package/src/lib/llm/providers/ollama.ts +0 -154
- package/src/lib/llm/providers/openai.ts +0 -146
- package/src/lib/llm/types.ts +0 -173
- package/src/lib/llm/utils/config.ts +0 -187
- package/src/lib/llm/utils/retry.ts +0 -119
- package/src/lib/llm/utils/streaming.ts +0 -202
- package/src/lib/logger.ts +0 -127
- package/src/lib/monitoring-thresholds.ts +0 -44
- package/src/lib/oidc.ts +0 -262
- package/src/lib/query-generators.ts +0 -61
- package/src/lib/schema-diff/diff-engine.ts +0 -273
- package/src/lib/schema-diff/migration-generator.ts +0 -208
- package/src/lib/schema-diff/types.ts +0 -55
- package/src/lib/seed/config-loader.ts +0 -79
- package/src/lib/seed/connection-filter.ts +0 -49
- package/src/lib/seed/credential-resolver.ts +0 -62
- package/src/lib/seed/index.ts +0 -40
- package/src/lib/seed/resolve-connection.ts +0 -57
- package/src/lib/seed/types.ts +0 -69
- package/src/lib/sql/alias-extractor.ts +0 -267
- package/src/lib/sql/index.ts +0 -8
- package/src/lib/sql/statement-splitter.ts +0 -167
- package/src/lib/sql/types.ts +0 -40
- package/src/lib/ssh/tunnel.ts +0 -142
- package/src/lib/storage/factory.ts +0 -84
- package/src/lib/storage/index.ts +0 -14
- package/src/lib/storage/local-storage.ts +0 -99
- package/src/lib/storage/providers/postgres.ts +0 -225
- package/src/lib/storage/providers/sqlite.ts +0 -153
- package/src/lib/storage/storage-facade.ts +0 -272
- package/src/lib/storage/types.ts +0 -75
- package/src/lib/time-series-buffer.ts +0 -58
- package/src/lib/types.ts +0 -173
- package/src/lib/utils.ts +0 -6
- package/src/proxy.ts +0 -104
- package/src/types/db-drivers.d.ts +0 -23
- package/src/types/html2canvas.d.ts +0 -9
- package/tests/api/admin/audit.test.ts +0 -178
- package/tests/api/admin/fleet-health.test.ts +0 -183
- package/tests/api/ai/autopilot.test.ts +0 -174
- package/tests/api/ai/chat.test.ts +0 -250
- package/tests/api/ai/describe-schema.test.ts +0 -266
- package/tests/api/ai/explain.test.ts +0 -199
- package/tests/api/ai/impact.test.ts +0 -168
- package/tests/api/ai/index-advisor.test.ts +0 -171
- package/tests/api/ai/nl2sql.test.ts +0 -202
- package/tests/api/ai/query-safety.test.ts +0 -196
- package/tests/api/auth/login.test.ts +0 -170
- package/tests/api/auth/logout.test.ts +0 -140
- package/tests/api/auth/me.test.ts +0 -73
- package/tests/api/auth/oidc-callback.test.ts +0 -215
- package/tests/api/auth/oidc-login.test.ts +0 -127
- package/tests/api/db/cancel.test.ts +0 -198
- package/tests/api/db/disconnect.test.ts +0 -124
- package/tests/api/db/health.test.ts +0 -222
- package/tests/api/db/maintenance.test.ts +0 -263
- package/tests/api/db/monitoring.test.ts +0 -221
- package/tests/api/db/multi-query.test.ts +0 -316
- package/tests/api/db/pool-stats.test.ts +0 -135
- package/tests/api/db/profile.test.ts +0 -330
- package/tests/api/db/provider-meta.test.ts +0 -193
- package/tests/api/db/query.test.ts +0 -314
- package/tests/api/db/schema-snapshot.test.ts +0 -170
- package/tests/api/db/schema.test.ts +0 -191
- package/tests/api/db/test-connection.test.ts +0 -185
- package/tests/api/db/transaction.test.ts +0 -314
- package/tests/api/proxy.test.ts +0 -191
- package/tests/api/seed/managed-route.test.ts +0 -113
- package/tests/api/storage/config.test.ts +0 -42
- package/tests/api/storage/storage-routes.test.ts +0 -309
- package/tests/components/AIAutopilotPanel.test.tsx +0 -756
- package/tests/components/AdminPage.test.tsx +0 -33
- package/tests/components/CodeGenerator.test.tsx +0 -182
- package/tests/components/CommandPalette.test.tsx +0 -428
- package/tests/components/CommunitySection.test.tsx +0 -91
- package/tests/components/ConnectionModal.mobile.test.tsx +0 -284
- package/tests/components/ConnectionModal.test.tsx +0 -570
- package/tests/components/CreateTableModal.test.tsx +0 -383
- package/tests/components/DataCharts.test.tsx +0 -739
- package/tests/components/DataImportModal.test.tsx +0 -751
- package/tests/components/DataProfiler.test.tsx +0 -589
- package/tests/components/DatabaseDocs.test.tsx +0 -353
- package/tests/components/LoginPage.test.tsx +0 -163
- package/tests/components/LoginPageOIDC.test.tsx +0 -92
- package/tests/components/MaskingSettings.test.tsx +0 -498
- package/tests/components/MobileNav.test.tsx +0 -30
- package/tests/components/MonitoringPage.test.tsx +0 -32
- package/tests/components/NL2SQLPanel.test.tsx +0 -621
- package/tests/components/Page.test.tsx +0 -33
- package/tests/components/PivotTable.test.tsx +0 -350
- package/tests/components/QueryEditor.test.tsx +0 -1730
- package/tests/components/QueryHistory.test.tsx +0 -572
- package/tests/components/QuerySafetyDialog.test.tsx +0 -586
- package/tests/components/ResultsGrid.test.tsx +0 -804
- package/tests/components/RootLayout.test.tsx +0 -83
- package/tests/components/SaveQueryModal.test.tsx +0 -25
- package/tests/components/SavedQueries.test.tsx +0 -43
- package/tests/components/SchemaDiagram.test.tsx +0 -1034
- package/tests/components/SchemaDiff.test.tsx +0 -906
- package/tests/components/SnapshotTimeline.test.tsx +0 -174
- package/tests/components/Studio.test.tsx +0 -1030
- package/tests/components/TestDataGenerator.test.tsx +0 -291
- package/tests/components/VisualExplain.test.tsx +0 -704
- package/tests/components/admin/AdminDashboard.test.tsx +0 -205
- package/tests/components/admin/AuditTab.test.tsx +0 -220
- package/tests/components/admin/MonitoringEmbed.test.tsx +0 -58
- package/tests/components/admin/OperationsTab.test.tsx +0 -975
- package/tests/components/admin/OverviewTab.test.tsx +0 -254
- package/tests/components/admin/SecurityTab.test.tsx +0 -467
- package/tests/components/monitoring/MetricChart.test.tsx +0 -111
- package/tests/components/monitoring/MonitoringDashboard.test.tsx +0 -259
- package/tests/components/monitoring/OverviewTab.test.tsx +0 -78
- package/tests/components/monitoring/PerformanceTab.test.tsx +0 -87
- package/tests/components/monitoring/PoolTab.test.tsx +0 -42
- package/tests/components/monitoring/QueriesTab.test.tsx +0 -80
- package/tests/components/monitoring/SessionsTab.test.tsx +0 -154
- package/tests/components/monitoring/StorageTab.test.tsx +0 -127
- package/tests/components/monitoring/TablesTab.test.tsx +0 -153
- package/tests/components/results-grid/ResultCard.test.tsx +0 -105
- package/tests/components/results-grid/RowDetailSheet.test.tsx +0 -308
- package/tests/components/results-grid/StatsBar.test.tsx +0 -162
- package/tests/components/schema-explorer/ColumnList.test.tsx +0 -151
- package/tests/components/schema-explorer/SchemaExplorer.test.tsx +0 -461
- package/tests/components/schema-explorer/TableItem.test.tsx +0 -415
- package/tests/components/sidebar/ConnectionItem.test.tsx +0 -201
- package/tests/components/sidebar/ConnectionsList.test.tsx +0 -176
- package/tests/components/sidebar/Sidebar.test.tsx +0 -187
- package/tests/components/studio/BottomPanel.test.tsx +0 -383
- package/tests/components/studio/QueryToolbar.test.tsx +0 -321
- package/tests/components/studio/StudioDesktopHeader.test.tsx +0 -377
- package/tests/components/studio/StudioMobileHeader.test.tsx +0 -198
- package/tests/components/studio/StudioTabBar.test.tsx +0 -331
- package/tests/fixtures/connections.ts +0 -96
- package/tests/fixtures/masking-configs.ts +0 -86
- package/tests/fixtures/query-results.ts +0 -71
- package/tests/fixtures/schemas.ts +0 -64
- package/tests/fixtures/seed-connections/invalid-config.yaml +0 -7
- package/tests/fixtures/seed-connections/minimal-config.yaml +0 -8
- package/tests/fixtures/seed-connections/mixed-credentials.yaml +0 -23
- package/tests/fixtures/seed-connections/multi-role-config.yaml +0 -30
- package/tests/fixtures/seed-connections/valid-config.json +0 -15
- package/tests/fixtures/seed-connections/valid-config.yaml +0 -51
- package/tests/helpers/mock-fetch.ts +0 -59
- package/tests/helpers/mock-monaco.ts +0 -112
- package/tests/helpers/mock-navigation.ts +0 -28
- package/tests/helpers/mock-next.ts +0 -80
- package/tests/helpers/mock-provider.ts +0 -133
- package/tests/helpers/mock-sonner.ts +0 -29
- package/tests/helpers/render-with-providers.tsx +0 -19
- package/tests/hooks/use-ai-chat.test.ts +0 -600
- package/tests/hooks/use-auth.test.ts +0 -371
- package/tests/hooks/use-connection-form.test.ts +0 -743
- package/tests/hooks/use-connection-manager.test.ts +0 -466
- package/tests/hooks/use-inline-editing.test.ts +0 -321
- package/tests/hooks/use-mobile.test.ts +0 -177
- package/tests/hooks/use-monitoring-data.test.ts +0 -819
- package/tests/hooks/use-provider-metadata.test.ts +0 -228
- package/tests/hooks/use-query-execution.test.ts +0 -1212
- package/tests/hooks/use-tab-manager.test.ts +0 -756
- package/tests/hooks/use-toast.test.ts +0 -74
- package/tests/hooks/use-transaction-control.test.ts +0 -211
- package/tests/integration/db/mongodb-provider.test.ts +0 -698
- package/tests/integration/db/mssql-provider.test.ts +0 -840
- package/tests/integration/db/mysql-provider.test.ts +0 -872
- package/tests/integration/db/oracle-provider.test.ts +0 -843
- package/tests/integration/db/postgres-provider.test.ts +0 -1382
- package/tests/integration/db/redis-provider.test.ts +0 -526
- package/tests/integration/db/sqlite-provider.test.ts +0 -480
- package/tests/integration/seed/seed-pipeline.test.ts +0 -102
- package/tests/isolated/factory-singleton.test.ts +0 -150
- package/tests/isolated/use-storage-sync.test.ts +0 -389
- package/tests/run-components.sh +0 -196
- package/tests/setup-dom.ts +0 -58
- package/tests/setup.ts +0 -40
- package/tests/unit/api-errors.test.ts +0 -210
- package/tests/unit/code-generator-functions.test.ts +0 -271
- package/tests/unit/components/column-list.test.tsx +0 -190
- package/tests/unit/components/data-import-modal.test.tsx +0 -441
- package/tests/unit/components/studio-mobile-header.test.tsx +0 -327
- package/tests/unit/data-charts-functions.test.ts +0 -496
- package/tests/unit/data-import-functions.test.ts +0 -320
- package/tests/unit/data-import-utils.test.ts +0 -125
- package/tests/unit/db/base-provider.test.ts +0 -517
- package/tests/unit/db/errors.test.ts +0 -403
- package/tests/unit/db/factory.test.ts +0 -436
- package/tests/unit/db/pool-manager.test.ts +0 -440
- package/tests/unit/db/query-limiter.test.ts +0 -387
- package/tests/unit/db/sql-base.test.ts +0 -438
- package/tests/unit/lib/api/error-codes.test.ts +0 -39
- package/tests/unit/lib/audit.test.ts +0 -326
- package/tests/unit/lib/auth.test.ts +0 -146
- package/tests/unit/lib/connection-string-parser.test.ts +0 -424
- package/tests/unit/lib/data-masking.test.ts +0 -583
- package/tests/unit/lib/db-icons.test.tsx +0 -41
- package/tests/unit/lib/monitoring-thresholds.test.ts +0 -133
- package/tests/unit/lib/oidc.test.ts +0 -509
- package/tests/unit/lib/query-generators.test.ts +0 -127
- package/tests/unit/lib/storage/factory.test.ts +0 -71
- package/tests/unit/lib/storage/local-storage.test.ts +0 -114
- package/tests/unit/lib/storage/providers/postgres.test.ts +0 -312
- package/tests/unit/lib/storage/providers/sqlite.test.ts +0 -232
- package/tests/unit/lib/storage/storage-facade-extended.test.ts +0 -331
- package/tests/unit/lib/storage/storage-facade.test.ts +0 -184
- package/tests/unit/lib/storage.test.ts +0 -317
- package/tests/unit/lib/time-series-buffer.test.ts +0 -212
- package/tests/unit/lib/utils.test.ts +0 -24
- package/tests/unit/llm/base-provider.test.ts +0 -238
- package/tests/unit/llm/config.test.ts +0 -262
- package/tests/unit/llm/custom-provider.test.ts +0 -281
- package/tests/unit/llm/gemini-provider.test.ts +0 -248
- package/tests/unit/llm/llm-factory.test.ts +0 -155
- package/tests/unit/llm/ollama-provider.test.ts +0 -288
- package/tests/unit/llm/openai-provider.test.ts +0 -324
- package/tests/unit/llm/retry.test.ts +0 -180
- package/tests/unit/llm/streaming.test.ts +0 -355
- package/tests/unit/logger.test.ts +0 -198
- package/tests/unit/mongodb-completions.test.ts +0 -516
- package/tests/unit/pivot-table-functions.test.ts +0 -76
- package/tests/unit/query-cancelled-error.test.ts +0 -81
- package/tests/unit/schema-diff/diff-engine.test.ts +0 -367
- package/tests/unit/schema-diff/migration-generator.test.ts +0 -513
- package/tests/unit/seed/config-loader.test.ts +0 -73
- package/tests/unit/seed/connection-filter.test.ts +0 -91
- package/tests/unit/seed/credential-resolver.test.ts +0 -85
- package/tests/unit/seed/index.test.ts +0 -72
- package/tests/unit/seed/resolve-connection.test.ts +0 -74
- package/tests/unit/seed/types.test.ts +0 -129
- package/tests/unit/sql/alias-extractor.test.ts +0 -444
- package/tests/unit/sql/statement-splitter.test.ts +0 -348
- package/tests/unit/sql-completions.test.ts +0 -463
- package/tests/unit/ssh-tunnel.test.ts +0 -465
- package/tsconfig.json +0 -42
|
@@ -1,718 +0,0 @@
|
|
|
1
|
-
# LibreDB Studio - Enterprise Feature Roadmap (Deep Analysis)
|
|
2
|
-
|
|
3
|
-
## Context
|
|
4
|
-
|
|
5
|
-
LibreDB Studio (v0.6.11), open-source, web-based, AI-powered bir database IDE. PostgreSQL, MySQL, SQLite, MongoDB destekliyor. Kurumsal projelerde birden fazla veritabani yonetimi icin kullaniliyor.
|
|
6
|
-
|
|
7
|
-
**Mevcut Durum:** Solid bir temel var (Monaco editor, multi-tab, virtualized grid, AI assistant, monitoring, maintenance, provider abstraction). Ancak DBeaver, DataGrip, TablePlus gibi rakiplerle kiyaslandiginda enterprise adoption icin kritik eksikler mevcut.
|
|
8
|
-
|
|
9
|
-
**Hedef:** LibreDB'yi enterprise-grade bir database management tool haline getirmek. Web-based ve AI-powered olma avantajlarini kullanarak rakiplerden farklilastiracak ozellikler eklemek.
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## FARKLI YAKLASIMLARIN KARSILASTIRILMASI
|
|
14
|
-
|
|
15
|
-
Bu planin hazirlanmasinda iki farkli perspektif analiz edildi:
|
|
16
|
-
|
|
17
|
-
1. **Competitor Gap Analysis** - DBeaver, DataGrip, TablePlus, Navicat, pgAdmin, Beekeeper Studio, Adminer, dbForge ile karsilastirma
|
|
18
|
-
2. **Enterprise Feature Design** - Kurumsal ihtiyaclara yonelik yeni ozellik tasarimi
|
|
19
|
-
|
|
20
|
-
Her iki analiz de ortak sonuca ulasti: Once **temel eksikleri** kapatmak, sonra **AI farklilastirma** ve **collaboration** ozellikleri ile rakiplerden ayrilmak.
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## PHASE 0: Kritik Eksikler (Tum Rakiplerde Var, LibreDB'de Yok) <COMPLETED>
|
|
25
|
-
|
|
26
|
-
> Bu ozellikler olmadan ciddi bir enterprise kullanici aday bile olmaz. Oncelikli olarak bunlar tamamlanmali.
|
|
27
|
-
|
|
28
|
-
### 0.1 Gercek Connection Testing
|
|
29
|
-
- **Sorun:** `ConnectionModal.tsx` satir 33'te `setTimeout(1500)` ile sahte bekleme var, gercek test yok
|
|
30
|
-
- **Cozum:** `POST /api/db/test-connection` route ekle, `provider.connect()` + `provider.disconnect()` cagir
|
|
31
|
-
- **Dosyalar:** `ConnectionModal.tsx`, yeni route `api/db/test-connection/route.ts`
|
|
32
|
-
- **Karmasiklik:** Dusuk (1-2 gun)
|
|
33
|
-
|
|
34
|
-
### 0.2 Connection Editing
|
|
35
|
-
- **Sorun:** Mevcut baglantilari duzenlemek icin silip yeniden olusturmak gerekiyor
|
|
36
|
-
- **Cozum:** ConnectionModal'a edit mode ekle, `Sidebar.tsx`'e "Edit" action ekle
|
|
37
|
-
- **Dosyalar:** `ConnectionModal.tsx`, `Sidebar.tsx`, `Studio.tsx`
|
|
38
|
-
- **Karmasiklik:** Dusuk (<1 gun)
|
|
39
|
-
|
|
40
|
-
### 0.3 Connection List and information Export and Import (Tum DB Tipleri)
|
|
41
|
-
- **Sorun:** Sadece MongoDB connection string destekliyor. PostgreSQL/MySQL URL'leri (`postgres://user:pass@host:5432/db`) parse edilemiyor
|
|
42
|
-
- **Cozum:** URL parser ekle, ConnectionModal'da "Paste Connection String" butonu
|
|
43
|
-
- **Dosyalar:** `ConnectionModal.tsx`, yeni utility `src/lib/connection-string-parser.ts`
|
|
44
|
-
- **Karmasiklik:** Dusuk (1 gun)
|
|
45
|
-
|
|
46
|
-
### 0.4 SSL/TLS Configuration UI
|
|
47
|
-
- **Sorun:** Provider'larda temel SSL destegi var ama kullaniciya ayar yapma imkani yok. Cloud DB'ler (AWS RDS, Azure, GCP) SSL gerektiriyor
|
|
48
|
-
- **Cozum:** `DatabaseConnection` type'a SSL alanlari ekle (sslMode, caCert, clientCert, clientKey). ConnectionModal'a SSL paneli ekle
|
|
49
|
-
- **Dosyalar:** `src/lib/types.ts`, `ConnectionModal.tsx`, `db-ui-config.ts`, SQL provider'lar
|
|
50
|
-
- **Karmasiklik:** Orta (2-3 gun)
|
|
51
|
-
|
|
52
|
-
### 0.5 SSH Tunnel Destegi
|
|
53
|
-
- **Sorun:** Uretim veritabanlari genellikle firewall arkasinda, SSH bastion uzerinden erisilebilir. SSH tunnel olmadan enterprise DB'lere baglanilamaz
|
|
54
|
-
- **Cozum:** `ssh2` kutuphanesi ile server-side tunnel. `DatabaseConnection`'a SSH alanlari ekle. Factory'de tunnel olustur, sonra provider'a bagla
|
|
55
|
-
- **Dosyalar:** `src/lib/types.ts`, `src/lib/db/factory.ts`, `ConnectionModal.tsx`, yeni `src/lib/ssh/tunnel.ts`
|
|
56
|
-
- **Karmasiklik:** Orta (3-5 gun)
|
|
57
|
-
|
|
58
|
-
### 0.6 Query Cancellation / Abort
|
|
59
|
-
- **Sorun:** Uzun suren sorguyu durdurmak imkansiz. Tab kitlenir, server kaynaklari tuketilir
|
|
60
|
-
- **Cozum:** Client'ta `AbortController`, server'da query PID/thread takibi. PostgreSQL: `pg_cancel_backend()`, MySQL: `KILL QUERY`. "Cancel" butonu ekle
|
|
61
|
-
- **Dosyalar:** `Studio.tsx`, `src/app/api/db/query/route.ts`, provider'lara `cancelQuery()` metodu
|
|
62
|
-
- **Karmasiklik:** Orta (2-3 gun)
|
|
63
|
-
|
|
64
|
-
### 0.7 Transaction Control (BEGIN/COMMIT/ROLLBACK)
|
|
65
|
-
- **Sorun:** Her sorgu auto-commit. DBA'ler coklu ifadeyi tek transaction icinde calistirmak istiyor
|
|
66
|
-
- **Cozum:** Session kavramini tani. Dedicated connection (pool disinda) ile transaction state tracking. Toolbar'a BEGIN/COMMIT/ROLLBACK butonlari
|
|
67
|
-
- **Dosyalar:** `DatabaseProvider` interface, `src/app/api/db/query/route.ts`, `Studio.tsx`, `QueryEditor.tsx`
|
|
68
|
-
- **Karmasiklik:** Orta-Yuksek (3-5 gun)
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## PHASE 1: Enterprise Foundation (Guvenlik, Kimlik, Kalicilik)
|
|
73
|
-
|
|
74
|
-
> Enterprise deployment icin olmazsa olmaz. Bu phase olmadan collaboration ve governance ozellikleri eklenemez.
|
|
75
|
-
|
|
76
|
-
### 1.1 User Identity ve Team Management
|
|
77
|
-
User JWT and Outh2 support like Keycloak, Auth0, Okta, etc.
|
|
78
|
-
- **Sorun:** Iki hardcoded sifre (admin/user) herkes tarafindan paylasiliyor. 50 muhendis ayni "admin" sifresini kullaniyor
|
|
79
|
-
- **Cozum:** Gercek kullanici sistemi (users tablosu, invite flow, profil sayfasi, session yonetimi). Mevcut JWT altyapisi genisletilir
|
|
80
|
-
- **Fayda:** Security teams (compliance), tum kullanicilar (kisisellestirilmis deneyim)
|
|
81
|
-
- **Dosyalar:** `src/lib/auth.ts` (UserPayload genisletme), `src/middleware.ts`, yeni `src/lib/users/`, yeni routes `/api/auth/register`, `/api/auth/invite`
|
|
82
|
-
- **Karmasiklik:** Yuksek
|
|
83
|
-
|
|
84
|
-
### 1.2 Server-Side State Persistence (Connection Vault)
|
|
85
|
-
- **Sorun:** Tum veriler localStorage'da - browser temizlenince kaybolur, cihazlar arasi paylasim yok, sifreleme yok
|
|
86
|
-
- **Cozum:** Metadata DB (self-hosted icin SQLite, veya configurable Postgres). Connection credential'lari AES-256-GCM ile sifreleme. `storage.ts` API korunur, sadece backend degisir
|
|
87
|
-
- **Fayda:** Cross-device erisim, encrypted credential storage, team paylasimi
|
|
88
|
-
- **Dosyalar:** `src/lib/storage.ts` (async backend), yeni `src/lib/storage-server.ts`, yeni routes `/api/connections`, `/api/saved-queries`, `/api/history`
|
|
89
|
-
- **Bagimlilikar:** 1.1 (User Identity)
|
|
90
|
-
- **Karmasiklik:** Yuksek
|
|
91
|
-
|
|
92
|
-
### 1.3 Connection-Level Access Control (RBAC v2)
|
|
93
|
-
- **Sorun:** Giris yapan herkes her baglantiya erisebiliyor. Production vs staging ayrimi yok
|
|
94
|
-
- **Cozum:** Connection bazli roller (viewer: sadece SELECT, editor: DML, owner: full). Query policy engine (SQL parse edip ifade tipini tespit et). Environment tagging (production/staging/dev)
|
|
95
|
-
- **Dosyalar:** `src/app/api/db/query/route.ts` (enforcement point), yeni `src/lib/permissions/`
|
|
96
|
-
- **Bagimlilikar:** 1.1, 1.2
|
|
97
|
-
- **Karmasiklik:** Yuksek
|
|
98
|
-
|
|
99
|
-
### 1.4 Audit Log
|
|
100
|
-
- **Sorun:** Kim, ne zaman, hangi sorguyu calistirdi - takip edemiyor. SOX/HIPAA/GDPR compliance icin zorunlu
|
|
101
|
-
- **Cozum:** Server-side append-only log. User, connection, query, timestamp, execution time, row count, client IP. Immutable storage + viewer UI + export
|
|
102
|
-
- **Dosyalar:** Yeni `src/lib/audit/`, yeni route `/api/audit`, yeni sayfa `/admin/audit-log`
|
|
103
|
-
- **Bagimlilikar:** 1.1, 1.2
|
|
104
|
-
- **Karmasiklik:** Orta
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
## PHASE 2: Collaboration ve Workflow (Web Avantaji)
|
|
109
|
-
|
|
110
|
-
> Desktop araclarin YAPMADIGI seyler. LibreDB'nin web-based olmasi burada buyuk avantaj.
|
|
111
|
-
|
|
112
|
-
### 2.1 Shared Query Workspaces
|
|
113
|
-
- **Sorun:** DBA faydali bir sorgu yaziyor, Slack'e yapistiyor. Paylasilabilir, yorumlanabilir sorgu koleksiyonu yok
|
|
114
|
-
- **Cozum:** Workspace kavrami (team genelinde gorulebilir sorgu koleksiyonlari). Folder organizasyonu, URL ile paylasim, versiyon gecmisi, fork, yorum
|
|
115
|
-
- **Dosyalar:** Mevcut `SavedQueries.tsx` genisletilir, yeni `WorkspaceExplorer.tsx`, `QueryComments.tsx`
|
|
116
|
-
- **Bagimlilikar:** 1.1, 1.2
|
|
117
|
-
- **Karmasiklik:** Yuksek
|
|
118
|
-
|
|
119
|
-
### 2.2 Query Review ve Approval Workflow
|
|
120
|
-
- **Sorun:** Production'da tehlikeli sorgulari engelleyecek mekanizma yok. ALTER TABLE, bulk DELETE gibi islemler peer review gerektirmeli
|
|
121
|
-
- **Cozum:** "Request Review" butonu, onay kuyrugu, diff gorunumu, otomatik tehlikeli pattern tespiti, email/webhook bildirimi. Onaylanan sorgular imzali hash ile korunur
|
|
122
|
-
- **Dosyalar:** Yeni `ReviewQueue.tsx`, `ReviewDetail.tsx`, routes `/api/reviews`
|
|
123
|
-
- **Bagimlilikar:** 1.1, 1.2, 1.3
|
|
124
|
-
- **Karmasiklik:** Yuksek
|
|
125
|
-
|
|
126
|
-
### 2.3 Notifications ve Activity Feed
|
|
127
|
-
- **Sorun:** Takimin veritabanlari uzerindeki faaliyetlerinden haberdar olmak mumkun degil
|
|
128
|
-
- **Cozum:** In-app bildirim (bell icon), activity feed, event tipleri (sorgu, schema degisikligi, maintenance, review, slow query, health alert). Webhook entegrasyonu (Slack, Discord, PagerDuty)
|
|
129
|
-
- **Dosyalar:** Yeni `NotificationCenter.tsx`, yeni `src/lib/notifications/`, SSE/WebSocket
|
|
130
|
-
- **Bagimlilikar:** 1.1, 1.2
|
|
131
|
-
- **Karmasiklik:** Orta
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
## PHASE 3: AI-Powered Intelligence (Rakiplerden Farklilasma)
|
|
136
|
-
|
|
137
|
-
> Hicbir rakibin yapmadigi ozellikler. LibreDB'nin mevcut LLM altyapisini kullanarak genuine database intelligence.
|
|
138
|
-
|
|
139
|
-
### 3.1 Multi-Turn Conversational AI
|
|
140
|
-
- **Sorun:** Mevcut AI tek turlu - her seferinde bagimsiz bir istek. "Simdi bunu da ekle..." veya "Bu sorguyu optimize et" diyemiyor
|
|
141
|
-
- **Cozum:** Tab basina konusma gecmisi. `LLMMessage[]` biriktirilir. Onceki sorgulara ve sonuclarina referans verebilir. Context window yonetimi (eski mesajlari ozetleme)
|
|
142
|
-
- **Mevcut Altyapi:** `LLMMessage[]` ve `role` zaten `/src/lib/llm/types.ts`'de tanimli. API route'u `messages[]` kabul edecek sekilde genisletilir
|
|
143
|
-
- **Dosyalar:** `src/app/api/ai/chat/route.ts`, yeni `AIConversation.tsx`, `QueryEditor.tsx`
|
|
144
|
-
- **Karmasiklik:** Orta
|
|
145
|
-
|
|
146
|
-
### 3.2 AI Index Advisor
|
|
147
|
-
- **Sorun:** Eksik veya verimsiz index'ler yavas sorgularin #1 nedeni. Cogu developer EXPLAIN ciktilarini yorumlayamiyor
|
|
148
|
-
- **Cozum:** Slow query'leri + EXPLAIN plan'lari + schema bilgisini analiz et, index onerisi sun. `CREATE INDEX` statement'lari uret. Etki tahmini goster
|
|
149
|
-
- **Mevcut Altyapi:** `VisualExplain.tsx` zaten EXPLAIN parse ediyor, `getSlowQueries()` ve `getIndexStats()` mevcut
|
|
150
|
-
- **Dosyalar:** Yeni `src/lib/ai/index-advisor.ts`, yeni `IndexAdvisor.tsx`, route `/api/ai/index-advisor`
|
|
151
|
-
- **Karmasiklik:** Orta
|
|
152
|
-
|
|
153
|
-
### 3.3 AI Schema Design Assistant
|
|
154
|
-
- **Sorun:** Veritabani schema tasarimi uzmanlik gerektiriyor. Junior developer'lar problematik schemalar olusturuyor
|
|
155
|
-
- **Cozum:** Dogal dil -> DDL ("SaaS uygulamasi icin users, organizations, billing"). Mevcut `SchemaDiagram.tsx` ile gorsel onizleme. Mevcut schema review/iyilestirme onerisi. Migration SQL uretimi
|
|
156
|
-
- **Dosyalar:** `CreateTableModal.tsx` genisletilir, yeni `SchemaDesigner.tsx`, route `/api/ai/schema-design`
|
|
157
|
-
- **Karmasiklik:** Orta
|
|
158
|
-
|
|
159
|
-
### 3.4 Natural Language to Query (NL2SQL)
|
|
160
|
-
- **Sorun:** Teknik olmayan kullanicilar (product manager, analist) SQL yazamiyor ama veriye ihtiyac duyuyor
|
|
161
|
-
- **Cozum:** Ozel NL2SQL modu ("Bu ayin en cok gelir getiren 10 musterisini goster"). Schema-aware, belirsizlikte aciklayici sorular sorar. Sonuc hem sorgu hem data olarak gosterilir
|
|
162
|
-
- **Dosyalar:** Yeni `NaturalLanguageQuery.tsx`, mevcut LLM altyapisi, mevcut `ResultsGrid.tsx`
|
|
163
|
-
- **Karmasiklik:** Orta
|
|
164
|
-
|
|
165
|
-
### 3.5 AI Query Safety Analysis (Pre-Execution)
|
|
166
|
-
- **Sorun:** DELETE/DROP/TRUNCATE calistirmadan once ne olacagini tahmin etmek zor
|
|
167
|
-
- **Cozum:** Tehlikeli sorguyu AI'ya analiz ettir: "Bu DELETE orders tablosundaki ~12,000 satiri silecek ve order_items'daki 34,000 satira cascade edecek." Risk degerlendirmesi + onay ekrani
|
|
168
|
-
- **Mevcut Altyapi:** AI streaming + schema context zaten mevcut
|
|
169
|
-
- **Karmasiklik:** Orta (2-3 gun)
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
## PHASE 4: Gelismis Database Islemleri (DBA Productivity)
|
|
174
|
-
|
|
175
|
-
### 4.1 Schema Migration Manager
|
|
176
|
-
- **Sorun:** Production'da schema degisiklikleri riskli. Migration planlama, review, test, rollback gerektiriyor
|
|
177
|
-
- **Cozum:** Versiyonlanmis SQL migration dosyalari (up/down). Schema diff'ten migration uretimi. Dry run modu. Git ile export
|
|
178
|
-
- **Dosyalar:** Yeni `src/lib/migrations/`, routes `/api/migrations`, sayfa `/migrations`
|
|
179
|
-
- **Bagimlilikar:** 1.2, 1.3
|
|
180
|
-
- **Karmasiklik:** Yuksek
|
|
181
|
-
|
|
182
|
-
### 4.2 Multi-Connection Query Execution
|
|
183
|
-
- **Sorun:** Ayni sorguyu birden fazla veritabaninda calistirmak gerekiyor (tum prod instance'larda tablo boyutlarini kontrol et)
|
|
184
|
-
- **Cozum:** Birden fazla baglanti secip tek sorgu calistir. Paralel calistirma, per-connection sonuclar. "Fleet" kavrami
|
|
185
|
-
- **Dosyalar:** Yeni route `/api/db/multi-query`, yeni `MultiQueryResults.tsx`
|
|
186
|
-
- **Bagimlilikar:** 1.2
|
|
187
|
-
- **Karmasiklik:** Orta
|
|
188
|
-
|
|
189
|
-
### 4.3 Scheduled Queries (Cron Jobs)
|
|
190
|
-
- **Sorun:** Tekrarlanan islemler (gunluk rapor, haftalik temizlik) icin harici cron gerektiriyor
|
|
191
|
-
- **Cozum:** Cron syntax ile zamanlama. Sonucu email/webhook/store. Calistirma gecmisi ve failure alert
|
|
192
|
-
- **Dosyalar:** Yeni `src/lib/scheduler/`, routes `/api/schedules`, sayfa `/schedules`
|
|
193
|
-
- **Bagimlilikar:** 1.1, 1.2, 2.3
|
|
194
|
-
- **Karmasiklik:** Yuksek
|
|
195
|
-
|
|
196
|
-
### 4.4 Database Comparison ve Sync
|
|
197
|
-
- **Sorun:** Dev/staging/production arasinda schema ve data drift. Migration script'leri manuel olusturuluyor
|
|
198
|
-
- **Cozum:** Tablo-tablo, kolon-kolon schema karsilastirma. Renk kodlu diff. ALTER script uretimi. Data karsilastirma (row count, checksum)
|
|
199
|
-
- **Dosyalar:** Yeni `src/lib/comparison/`, `ComparisonView.tsx`, Monaco diff editor kullanimi
|
|
200
|
-
- **Bagimlilikar:** 1.2
|
|
201
|
-
- **Karmasiklik:** Yuksek
|
|
202
|
-
|
|
203
|
-
### 4.5 Multi-Statement Execution
|
|
204
|
-
- **Sorun:** Server tek sorgu olarak calistirir. Coklu ifade iceren script'ler (migration, seed) duzenli calistirilemiyor
|
|
205
|
-
- **Cozum:** Statement splitter (string/comment icindeki semicolonlari handle et). Sirayli calistirma, per-statement sonuclar
|
|
206
|
-
- **Dosyalar:** `src/app/api/db/query/route.ts`, yeni `src/lib/sql/statement-splitter.ts`
|
|
207
|
-
- **Karmasiklik:** Orta (3-4 gun)
|
|
208
|
-
|
|
209
|
-
---
|
|
210
|
-
|
|
211
|
-
## PHASE 5: Developer Experience
|
|
212
|
-
|
|
213
|
-
### 5.1 Command Palette (Cmd+K)
|
|
214
|
-
- **Sorun:** Power user'lar icin keyboard-first navigasyon yok. VS Code/DataGrip kullanicilari command palette bekliyor
|
|
215
|
-
- **Cozum:** `cmdk` paketi zaten `package.json`'da. Tablolar, saved query'ler, history, connection'lar, action'lar arasinda fuzzy arama
|
|
216
|
-
- **Mevcut Altyapi:** Shadcn/UI command component hazir
|
|
217
|
-
- **Dosyalar:** Yeni `CommandPalette.tsx`, `Studio.tsx`'e global keyboard listener
|
|
218
|
-
- **Bagimlilikar:** Yok
|
|
219
|
-
- **Karmasiklik:** Dusuk (1-2 gun)
|
|
220
|
-
|
|
221
|
-
### 5.2 Query Snippets ve Template Library
|
|
222
|
-
- **Sorun:** Yaygin sorgu patternleri (pagination, search, aggregation) surekli tekrar yaziliyor
|
|
223
|
-
- **Cozum:** Built-in + custom snippet library. Parametreli template'ler (`{{table}}`, `{{column}}`). Monaco autocomplete entegrasyonu
|
|
224
|
-
- **Mevcut Altyapi:** `QueryEditor.tsx`'de 6 hardcoded snippet var (satir 53), dinamik sisteme donusturulur
|
|
225
|
-
- **Dosyalar:** `QueryEditor.tsx`, yeni `SnippetLibrary.tsx`, yeni `src/lib/snippets/`
|
|
226
|
-
- **Karmasiklik:** Dusuk-Orta
|
|
227
|
-
|
|
228
|
-
### 5.3 Database Documentation Generator
|
|
229
|
-
- **Sorun:** Veritabani dokumantasyonu her zaman eski. Canli schema'dan otomatik uretim gerekiyor
|
|
230
|
-
- **Cozum:** Schema'dan auto-doc. AI ile tablo/kolon aciklamalari. Searchable data dictionary. Markdown/HTML/PDF export. Kullanici annotation'lari
|
|
231
|
-
- **Mevcut Altyapi:** `getSchema()` zaten tum bilgiyi dondurur, `SchemaDiagram.tsx` mevcut
|
|
232
|
-
- **Dosyalar:** Yeni `DatabaseDocs.tsx`, route `/api/ai/describe-schema`
|
|
233
|
-
- **Karmasiklik:** Orta
|
|
234
|
-
|
|
235
|
-
### 5.4 Data Filtering / WHERE Clause Builder
|
|
236
|
-
- **Sorun:** ResultsGrid'de kolon filtreleme yok. Veri filtrelemek icin SQL yazmak gerekiyor
|
|
237
|
-
- **Cozum:** Kolon basliklarinda filtre ikonu. Gorsel WHERE builder. Filtre kombinasyonlari (AND/OR)
|
|
238
|
-
- **Dosyalar:** `ResultsGrid.tsx`
|
|
239
|
-
- **Karmasiklik:** Orta (3-4 gun)
|
|
240
|
-
|
|
241
|
-
### 5.5 SQL Export (INSERT, DDL)
|
|
242
|
-
- **Sorun:** Export sadece CSV/JSON destekliyor. SQL export (INSERT statements, CREATE TABLE) yok
|
|
243
|
-
- **Cozum:** Export modalina "SQL INSERT" ve "DDL (CREATE TABLE)" secenekleri ekle
|
|
244
|
-
- **Dosyalar:** `Studio.tsx` (export fonksiyonu satir 228-253)
|
|
245
|
-
- **Karmasiklik:** Dusuk (1-2 gun)
|
|
246
|
-
|
|
247
|
-
### 5.6 Connection Groups / Color Coding
|
|
248
|
-
- **Sorun:** Connection'lar duz liste. Production/staging/dev ayrimi gorsel olarak yok. Yanlis DB'de sorgu calistirma riski
|
|
249
|
-
- **Cozum:** Folder/group kavrami. Renk kodlama (kirmizi=prod, sari=staging, yesil=dev). Environment etiketi
|
|
250
|
-
- **Dosyalar:** `Sidebar.tsx`, `src/lib/types.ts` (DatabaseConnection'a group, color alanlari)
|
|
251
|
-
- **Karmasiklik:** Dusuk (1-2 gun)
|
|
252
|
-
|
|
253
|
-
### 5.7 Tab Renaming
|
|
254
|
-
- **Sorun:** Tab'lar otomatik isimlendirilir ("Query 1"), kullanici adi veremez
|
|
255
|
-
- **Cozum:** Double-click ile tab adi duzenleme
|
|
256
|
-
- **Dosyalar:** `Studio.tsx`
|
|
257
|
-
- **Karmasiklik:** Dusuk (<1 gun)
|
|
258
|
-
|
|
259
|
-
---
|
|
260
|
-
|
|
261
|
-
## PHASE 6: Observability ve Operations
|
|
262
|
-
|
|
263
|
-
### 6.1 Alerting ve Threshold Rules
|
|
264
|
-
- **Sorun:** Monitoring dashboard mevcut durumu gosteriyor ama bir sey ters gittiginde bildirim yok
|
|
265
|
-
- **Cozum:** Alert kurallari: metrik + kosul + esik + aksiyon. "Cache hit ratio < 90% icin 5 dakika" -> Email + Slack. Alert gecmisi, sessizlestirme, dashboard widget
|
|
266
|
-
- **Dosyalar:** Yeni `src/lib/alerting/`, `AlertManager.tsx`, `AlertBanner.tsx`
|
|
267
|
-
- **Bagimlilikar:** 2.3, 1.2
|
|
268
|
-
- **Karmasiklik:** Orta
|
|
269
|
-
|
|
270
|
-
### 6.2 Connection Health Monitor (Background)
|
|
271
|
-
- **Sorun:** Saglik kontrolleri manuel - kullanici Health dashboard'a gitmeli. Baglantilar sessizce fail olabiliyor
|
|
272
|
-
- **Cozum:** Tum aktif baglantilara background ping (30sn). Sidebar'da yesil/sari/kirmizi nokta. Auto-reconnect. Latency gosterimi
|
|
273
|
-
- **Mevcut Altyapi:** Provider'da `isConnected()` zaten var
|
|
274
|
-
- **Dosyalar:** `Sidebar.tsx`, yeni route `/api/db/ping`, SSE
|
|
275
|
-
- **Karmasiklik:** Dusuk-Orta
|
|
276
|
-
|
|
277
|
-
### 6.3 Performance Baseline ve Anomaly Detection
|
|
278
|
-
- **Sorun:** Baseline olmadan mevcut performansin normal mi bozuk mu oldugunu bilmek mumkun degil
|
|
279
|
-
- **Cozum:** Periyodik metrik toplama, istatistiksel baseline, AI-powered anomaly detection, kapasite tahmini
|
|
280
|
-
- **Bagimlilikar:** 4.3, 1.2
|
|
281
|
-
- **Karmasiklik:** Yuksek
|
|
282
|
-
|
|
283
|
-
---
|
|
284
|
-
|
|
285
|
-
## PHASE 7: Integration ve Extensibility
|
|
286
|
-
|
|
287
|
-
### 7.1 REST API (Harici Entegrasyon)
|
|
288
|
-
- **Sorun:** CI/CD, monitoring sistemleri, custom script'ler LibreDB ile programatik iletisim kuramiyor
|
|
289
|
-
- **Cozum:** API key auth, rate limiting, OpenAPI/Swagger dokumantasyonu. Mevcut route'lar zaten var, sadece API key auth ve dokumantasyon gerekiyor
|
|
290
|
-
- **Dosyalar:** Yeni middleware, yeni `src/lib/api-keys/`, sayfa `/settings/api-keys`
|
|
291
|
-
- **Karmasiklik:** Orta
|
|
292
|
-
|
|
293
|
-
### 7.2 Plugin System
|
|
294
|
-
- **Sorun:** Her takimin ozel ihtiyaci var. Yeni DB provider'lar, UI panelleri, export formatlari plugin olarak eklenebilmeli
|
|
295
|
-
- **Cozum:** Plugin API (DB provider, LLM provider, export format, UI panel). Plugin registry. Dinamik yukleme
|
|
296
|
-
- **Mevcut Altyapi:** Strategy Pattern zaten mevcut, `db-ui-config.ts` registry hazir
|
|
297
|
-
- **Karmasiklik:** Yuksek
|
|
298
|
-
|
|
299
|
-
### 7.3 Git Integration
|
|
300
|
-
- **Sorun:** Sorgulari kod gibi yonetmek (versiyonlama, branch, PR, CI) mumkun degil
|
|
301
|
-
- **Cozum:** Git repo baglama, .sql dosyalari olarak sync, push/pull, branch destegi
|
|
302
|
-
- **Bagimlilikar:** 2.1
|
|
303
|
-
- **Karmasiklik:** Yuksek
|
|
304
|
-
|
|
305
|
-
---
|
|
306
|
-
|
|
307
|
-
## PHASE 8: Yeni Database Destekleri
|
|
308
|
-
|
|
309
|
-
### 8.1 Redis Provider
|
|
310
|
-
- **Sorun:** Redis `DatabaseType` union'da ve `db-ui-config.ts`'de zaten tanimli ama "not yet implemented"
|
|
311
|
-
- **Cozum:** `src/lib/db/providers/keyvalue/redis.ts`. JSON-based query format. Key browser, TTL, memory usage. Monitoring: memory, clients, keyspace
|
|
312
|
-
- **Mevcut Altyapi:** Factory switch case (satir 92), db-ui-config entry (satir 46), DatabaseType'da 'redis' zaten var
|
|
313
|
-
- **Karmasiklik:** Orta
|
|
314
|
-
|
|
315
|
-
### 8.2 ClickHouse Provider
|
|
316
|
-
- **Sorun:** En populer open-source OLAP veritabani. Enterprise analytics takimlari tarafindan yaygin kullaniliyor
|
|
317
|
-
- **Cozum:** `SQLBaseProvider` extend eder. ClickHouse-specific SQL (FINAL, PREWHERE, SAMPLE). MergeTree awareness
|
|
318
|
-
- **Karmasiklik:** Orta
|
|
319
|
-
|
|
320
|
-
### 8.3 DynamoDB Provider
|
|
321
|
-
- **Sorun:** AWS'nin en populer managed NoSQL DB'si. AWS uzerinde calisan takimlar icin onemli
|
|
322
|
-
- **Cozum:** `BaseDatabaseProvider` extend eder. JSON-based query (MongoDB benzeri). GSI/LSI awareness
|
|
323
|
-
- **Karmasiklik:** Orta
|
|
324
|
-
|
|
325
|
-
---
|
|
326
|
-
|
|
327
|
-
## PHASE 9: Rol-Bazli Yaratici Ozellikler (Rakiplerin Onunde)
|
|
328
|
-
|
|
329
|
-
> Bu ozellikler LibreDB'yi HICBIR rakibin yapamadigi bir konuma tasir. Her biri belirli bir rolun gunluk yasadigi sorunu cozer.
|
|
330
|
-
|
|
331
|
-
### --- SQL DATA ANALYST ---
|
|
332
|
-
|
|
333
|
-
### 9.1 AI-Powered Data Profiler
|
|
334
|
-
- **Rol:** Data Analyst
|
|
335
|
-
- **Sorun:** Analistler zamanlarinin %30-60'ini veriyi anlamak icin harcar. Her kolon icin `COUNT(DISTINCT)`, `MIN/MAX`, `NULL %` yazmalari gerekiyor
|
|
336
|
-
- **Cozum:** Tek tikla tablo profili: kolon dagilimlari, kardinalite, null orani, outlier'lar, pattern tespiti. AI ile dogal dil ozeti ("created_at kolonunda Mart-Temmuz 2024 arasi bosluk var - servis kesintisi olabilir")
|
|
337
|
-
- **Mevcut Altyapi:** `getSchema()` mevcut, Recharts histogram icin hazir, LLM streaming mevcut
|
|
338
|
-
- **Dosyalar:** Provider'lara `profileTable()` metodu, yeni route `/api/db/profile`, yeni `DataProfiler.tsx` (bottom panel mode)
|
|
339
|
-
- **Fark:** DBeaver/DataGrip temel kolon istatistikleri gosterir ama AI narrative yorumlama yapmaz
|
|
340
|
-
- **Karmasiklik:** Orta-Yuksek
|
|
341
|
-
|
|
342
|
-
### 9.2 Interactive Pivot Table Builder
|
|
343
|
-
- **Rol:** Data Analyst, Business Analyst
|
|
344
|
-
- **Sorun:** `GROUP BY` / `CASE WHEN` pivot yazmak karmasik SQL gerektiriyor. Spreadsheet kullanicilari drag-and-drop beklyor
|
|
345
|
-
- **Cozum:** Herhangi bir sorgu sonucunu client-side pivotlama. Drag-and-drop ile rows/columns/values/filters. "SQL Uret" butonu AI ile denk SQL kodunu uretir (analist SQL ogrenir)
|
|
346
|
-
- **Dosyalar:** Yeni `PivotTable.tsx`, yeni `src/lib/pivot-engine.ts` (client-side aggregation)
|
|
347
|
-
- **Fark:** Hicbir DB IDE pivot table desteklemiyor. BI araclari (Metabase, Superset) ayri kurulum gerektiriyor
|
|
348
|
-
- **Karmasiklik:** Orta
|
|
349
|
-
|
|
350
|
-
### 9.3 Smart Query Notebook (Jupyter-benzeri)
|
|
351
|
-
- **Rol:** Data Analyst, Developer
|
|
352
|
-
- **Sorun:** Iliskili sorgular dizisi ("once tablo incele, sonra join yaz, sonra aggregate et") belgelemiyor, paylasmiyor
|
|
353
|
-
- **Cozum:** Markdown + SQL notebook. Markdown hucreleri (dokumantasyon) ve Query hucreleri (calistir + inline sonuc). Hucre degiskenleri (`{{onceki.max_date}}`). Markdown export. AI ile sorgular arasi aciklama uretimi
|
|
354
|
-
- **Dosyalar:** Yeni `Notebook.tsx`, `NotebookCell.tsx`, `src/lib/notebook/`, `storage.ts` genisletme
|
|
355
|
-
- **Fark:** Jupyter SQL magic'i Python gerektiriyor. Hicbir DB IDE'de native notebook yok
|
|
356
|
-
- **Karmasiklik:** Yuksek (en farklilastirici ozellik)
|
|
357
|
-
|
|
358
|
-
### --- DEVELOPER (Backend/Full-Stack) ---
|
|
359
|
-
|
|
360
|
-
### 9.4 Schema-Aware ORM Code Generator
|
|
361
|
-
- **Rol:** Backend Developer, Full-Stack Developer
|
|
362
|
-
- **Sorun:** DB schema'sini TypeScript interface, Prisma model, Go struct, Python dataclass'a cevirme tekrarli ve hata yapar
|
|
363
|
-
- **Cozum:** Canli schema'dan tek tikla kod uretimi. Ciktilar: TypeScript interfaces, Zod schemas, Prisma models, Go structs, Python dataclasses, Java POJOs. AI ile karmasik iliskiler icin gelismis uretim. Monaco'da syntax-highlighted preview
|
|
364
|
-
- **Mevcut Altyapi:** `TableSchema[]` zaten tum kolon/tip/FK bilgisini iceriyor
|
|
365
|
-
- **Dosyalar:** Yeni `src/lib/codegen/` (template engine + tip eslesme tablolari), `CodeGenerator.tsx`, SchemaExplorer'a context menu
|
|
366
|
-
- **Fark:** Prisma sadece Prisma icin, DB IDE'lerin hicbiri bunu yapmiyor
|
|
367
|
-
- **Karmasiklik:** Orta
|
|
368
|
-
|
|
369
|
-
### 9.5 Intelligent Test Data Generator (Faker)
|
|
370
|
-
- **Rol:** Backend Developer, QA Engineer
|
|
371
|
-
- **Sorun:** Test verisi olusturmak icin INSERT yazmak veya harici araclar kullanmak gerekiyor
|
|
372
|
-
- **Cozum:** Schema'dan otomatik test verisi. AI kolon adlarindan semantik anlam cikarir (email -> valid email, phone -> telefon no). FK constraintlerine saygi duyar. Onizleme + calistirma. MongoDB icin `insertMany` JSON
|
|
373
|
-
- **Dosyalar:** Yeni `TestDataGenerator.tsx`, `src/lib/faker/` (lightweight faker engine + inferrer), SchemaExplorer context menu
|
|
374
|
-
- **Fark:** Mockaroo harici servis, schema bilmez. LibreDB canli schema + AI + dogrudan INSERT
|
|
375
|
-
- **Karmasiklik:** Orta
|
|
376
|
-
|
|
377
|
-
### 9.6 AI Query Explainer ("Explain Like I'm 5")
|
|
378
|
-
- **Rol:** Tum roller (ozellikle junior developer ve analyst)
|
|
379
|
-
- **Sorun:** EXPLAIN ciktisi DBA'ler icin anlamli ama cogu developer ve analist icin opak. "Seq Scan" gordugunde ne yapmasi gerektigini bilmiyor
|
|
380
|
-
- **Cozum:** EXPLAIN plan + orijinal sorgu + schema kontekstini AI'ya gonder. AI dondurur: (1) duz Turkce/Ingilizce aciklama, (2) somut oneri ("orders.customer_id'ye index ekle"), (3) optimize edilmis sorgu. "Bunu Dene" butonu optimize sorguyu editor'e yukler
|
|
381
|
-
- **Mevcut Altyapi:** `VisualExplain.tsx` zaten EXPLAIN parse ediyor
|
|
382
|
-
- **Dosyalar:** `VisualExplain.tsx`'e AI tab, yeni route `/api/ai/explain`
|
|
383
|
-
- **Fark:** Hicbir arac EXPLAIN'i AI ile dogal dile cevirmiyor
|
|
384
|
-
- **Karmasiklik:** Dusuk-Orta
|
|
385
|
-
|
|
386
|
-
### 9.7 Schema Change Impact Analyzer
|
|
387
|
-
- **Rol:** Developer, Data Engineer
|
|
388
|
-
- **Sorun:** DDL calistirmadan once etkisini bilmek mumkun degil ("NOT NULL eklesem kac satir fail olur?", "Bu indexi silsem hangi sorgular yavaşlar?")
|
|
389
|
-
- **Cozum:** DDL ifadesini parse et, canli schema'yi incele, etki raporu uret. AI ile cascade etkileri, kilit suresi tahmini, bagimlı view/index tespiti. Read-only dogrulama sorgulari (`COUNT(*) WHERE col IS NULL`)
|
|
390
|
-
- **Dosyalar:** Yeni `ImpactAnalyzer.tsx`, `/api/ai/impact`, `/api/db/impact`, `src/lib/sql/ddl-parser.ts`
|
|
391
|
-
- **Fark:** Hicbir DB IDE pre-migration impact analysis yapmiyor
|
|
392
|
-
- **Karmasiklik:** Orta-Yuksek
|
|
393
|
-
|
|
394
|
-
### --- DATA ENGINEER ---
|
|
395
|
-
|
|
396
|
-
### 9.8 Cross-Database Query Federation
|
|
397
|
-
- **Rol:** Data Engineer, Backend Developer
|
|
398
|
-
- **Sorun:** Farkli DB'lerdeki verileri karsilastirmak gerekiyor ("PG warehouse'daki kullanici sayisi MongoDB app DB ile uyusuyor mu?")
|
|
399
|
-
- **Cozum:** Iki baglanti sec, her birine sorgu yaz, paralel calistir, client-side join/compare. Inner/left/full outer join ve "diff" (A'da olup B'de olmayan satirlar). AI join key onerisi
|
|
400
|
-
- **Dosyalar:** Yeni `CrossDatabaseCompare.tsx`, `src/lib/federation/join-engine.ts`, `src/lib/federation/diff-engine.ts`
|
|
401
|
-
- **Fark:** DBeaver bile cross-DB join yapamiyor. Trino/Presto altyapi kurulumu gerektiriyor
|
|
402
|
-
- **Karmasiklik:** Yuksek
|
|
403
|
-
|
|
404
|
-
### 9.9 Data Quality Rules Engine
|
|
405
|
-
- **Rol:** Data Engineer, Data Analyst
|
|
406
|
-
- **Sorun:** Veri kalitesi dogrulamalari ("NULL olan zorunlu alanlar var mi?", "Email'ler gecerli mi?") icin ad-hoc sorgular tekrar tekrar yaziliyor
|
|
407
|
-
- **Cozum:** Gorsel kural tanimlama (null check, uniqueness, regex, range, referential integrity, custom SQL). Kurallari kaydet, validation suite olarak calistir. AI kural onerisi (kolon adinda "email" varsa regex dogrulama oner)
|
|
408
|
-
- **Dosyalar:** Yeni `DataQualityRules.tsx`, `src/lib/data-quality/` (rule-types, rule-compiler), route `/api/db/validate`
|
|
409
|
-
- **Fark:** Great Expectations/dbt tests Python/YAML gerektiriyor. LibreDB'de gorsel, no-code, AI-powered
|
|
410
|
-
- **Karmasiklik:** Orta-Yuksek
|
|
411
|
-
|
|
412
|
-
### --- DATABASE ADMIN (DBA) ---
|
|
413
|
-
|
|
414
|
-
### 9.10 AI Query Performance Autopilot
|
|
415
|
-
- **Rol:** DBA
|
|
416
|
-
- **Sorun:** Yavas sorgu loglarini analiz etmek, EXPLAIN ile korelasyon kurmak, index onerisi uretmek saatler aliyor
|
|
417
|
-
- **Cozum:** Slow query'ler + EXPLAIN planlari + tablo istatistikleri + index kullanim oranlarini AI'ya besle. Siralanmis, aksiyona donusturulebilir optimizasyon raporu. "Fix Uygula" butonu ile tek tikla index olusturma/sorgu yeniden yazma
|
|
418
|
-
- **Mevcut Altyapi:** `getSlowQueries()`, `getIndexStats()`, `VisualExplain.tsx` mevcut
|
|
419
|
-
- **Dosyalar:** Yeni `QueryAutopilot.tsx`, route `/api/ai/query-autopilot`, `src/hooks/use-query-autopilot.ts`
|
|
420
|
-
- **Fark:** Hicbir arac slow query + EXPLAIN + schema + AI'yi tek pipeline'da birlestirmiyor
|
|
421
|
-
- **Karmasiklik:** Orta-Yuksek
|
|
422
|
-
|
|
423
|
-
### 9.11 Lock Dependency Graph (Canli)
|
|
424
|
-
- **Rol:** DBA
|
|
425
|
-
- **Sorun:** Kilit sorunlarinda `pg_locks` + `pg_stat_activity` ile bagimliliklari anlamak zor. Flat tablo gorunumu yaniltici
|
|
426
|
-
- **Cozum:** ReactFlow ile canli yonlu graf. Session'lar node, kilit beklemeleri edge. Renk kodlu kilit tipleri. 5sn auto-refresh. "Kill Session" butonu node uzerinde. Deadlock replay animasyonu
|
|
427
|
-
- **Mevcut Altyapi:** ReactFlow (`@xyflow/react`) zaten SchemaDiagram'da kullaniliyor
|
|
428
|
-
- **Dosyalar:** Route `/api/db/locks`, yeni `monitoring/tabs/LocksTab.tsx`, provider'lara `getLockDependencies()` metodu
|
|
429
|
-
- **Fark:** Hicbir DB IDE lock'lari graf olarak gostermiyor
|
|
430
|
-
- **Karmasiklik:** Orta
|
|
431
|
-
|
|
432
|
-
### 9.12 Smart Vacuum Scheduler + Bloat Forecasting
|
|
433
|
-
- **Rol:** DBA (PostgreSQL)
|
|
434
|
-
- **Sorun:** Autovacuum ayarlari zor. Tablolarda dead tuple birikimi performansi bozuyor. Yuzlerce tabloyu izlemek manuel olarak imkansiz
|
|
435
|
-
- **Cozum:** Bloat trend grafigi (Recharts), dead tuple buyume hizi ile lineer regresyon tahmini ("Bu tablo 3 gun icinde %30 bloat'a ulasacak"). Optimum vacuum zamanlama onerisi. AI ile dogal dil tavsiye
|
|
436
|
-
- **Mevcut Altyapi:** `TablesTab.tsx` zaten `lastVacuum`, `deadRowCount`, `bloatRatio` gosteriyor
|
|
437
|
-
- **Dosyalar:** Yeni `monitoring/tabs/VacuumSchedulerTab.tsx`, `src/lib/vacuum-forecast.ts`
|
|
438
|
-
- **Karmasiklik:** Orta
|
|
439
|
-
|
|
440
|
-
### --- DEVOPS ENGINEER ---
|
|
441
|
-
|
|
442
|
-
### 9.13 Multi-Environment Schema Diff + AI Migration
|
|
443
|
-
- **Rol:** DevOps, DBA
|
|
444
|
-
- **Sorun:** Dev/staging/production arasinda schema drift tespiti CLI araci gerektiriyor (`pg_dump --schema-only` + diff)
|
|
445
|
-
- **Cozum:** Iki baglanti sec, schema fetch et, gorsel diff (Monaco diff editor). AI ile ALTER/CREATE migration SQL'i uret. "Apply Migration" butonuyla hedef DB'ye uygula
|
|
446
|
-
- **Mevcut Altyapi:** `getSchema()` tum provider'larda mevcut, Monaco diff editor built-in
|
|
447
|
-
- **Dosyalar:** Route `/api/db/schema-diff`, yeni `SchemaDiff.tsx`, `src/lib/schema-diff.ts`
|
|
448
|
-
- **Karmasiklik:** Orta
|
|
449
|
-
|
|
450
|
-
### 9.14 Prometheus-Compatible Metrics Export
|
|
451
|
-
- **Rol:** DevOps, SRE
|
|
452
|
-
- **Sorun:** LibreDB monitoring verileri sadece web UI uzerinden gorunur. Prometheus/Grafana/Datadog ile entegrasyon yok
|
|
453
|
-
- **Cozum:** `GET /api/db/metrics` endpoint'i Prometheus exposition formatinda. Tum DB turleri icin unified metrikler. Grafana dashboard template'i. API key veya JWT auth
|
|
454
|
-
- **Mevcut Altyapi:** `getMonitoringData()` tum provider'larda mevcut, zengin metrikler donuyor
|
|
455
|
-
- **Dosyalar:** Route `/api/db/metrics`, `src/lib/metrics-formatter.ts`, middleware guncelleme
|
|
456
|
-
- **Fark:** Hicbir DB IDE Prometheus endpoint sunmuyor
|
|
457
|
-
- **Karmasiklik:** Dusuk-Orta
|
|
458
|
-
|
|
459
|
-
### 9.15 IaC Connection Profile Export
|
|
460
|
-
- **Rol:** DevOps
|
|
461
|
-
- **Sorun:** Connection bilgileri localStorage'da, versiyon kontrol edilemiyor, yeni takim uyesine aktarilamiyor
|
|
462
|
-
- **Cozum:** Export formatlari: JSON, .env, Docker Compose, Terraform HCL, Kubernetes Secret YAML. Import: format auto-detect + onizleme. Client-side AES-GCM sifreleme (Web Crypto API). Paylasilabilir sifrelenmis link
|
|
463
|
-
- **Dosyalar:** Yeni `ConnectionExportModal.tsx`, `ConnectionImportModal.tsx`, `src/lib/connection-serializers.ts`
|
|
464
|
-
- **Karmasiklik:** Dusuk-Orta
|
|
465
|
-
|
|
466
|
-
### --- AI ENGINEER ---
|
|
467
|
-
|
|
468
|
-
### 9.16 Vector Data Explorer + Embedding Visualization
|
|
469
|
-
- **Rol:** AI/ML Engineer
|
|
470
|
-
- **Sorun:** pgvector/MongoDB Atlas Vector Search'teki embedding verileri opak byte array olarak gorunur. Kumeleme, benzerlik, dagilim gorunmuyor
|
|
471
|
-
- **Cozum:** Vector kolon tespiti (pgvector `vector(N)` tipi). PCA ile 2D'ye indirgeme + scatter plot. Renk kodlu metadata (kategoriye gore). "Find Similar" paneli: metin gir -> embedding uret -> similarity search. Mini sparkline cell renderer
|
|
472
|
-
- **Mevcut Altyapi:** Recharts scatter plot, provider metadata genisletilebilir
|
|
473
|
-
- **Dosyalar:** Yeni `VectorExplorer.tsx`, `VectorCell.tsx`, `VectorSimilaritySearch.tsx`, `src/lib/vector-utils.ts`, provider'lara `supportsVectors` capability
|
|
474
|
-
- **Fark:** HICBIR DB IDE vektorleri gorsellestirir. Pinecone/Weaviate consolelari vendor-specific
|
|
475
|
-
- **Karmasiklik:** Yuksek
|
|
476
|
-
|
|
477
|
-
### 9.17 RAG Pipeline Builder
|
|
478
|
-
- **Rol:** AI Engineer
|
|
479
|
-
- **Sorun:** RAG pipeline'i olusturmak icin DB IDE, Python script, vector store UI arasinda gidip gelmek gerekiyor
|
|
480
|
-
- **Cozum:** Gorsel pipeline builder: Source Query -> Chunking -> Embedding -> Target Table. Preview (5 satir ornegi). Batch processing + progress. Incremental mod (son islenen ID'den devam). LLM provider'lara `embed()` metodu eklenir
|
|
481
|
-
- **Dosyalar:** Yeni `RAGPipelineBuilder.tsx`, route `/api/ai/rag-pipeline`, `src/lib/rag/chunking.ts`, LLM provider'lara embedding desteği
|
|
482
|
-
- **Fark:** Hicbir DB IDE RAG pipeline builder sunmuyor
|
|
483
|
-
- **Karmasiklik:** Yuksek
|
|
484
|
-
|
|
485
|
-
### 9.18 Conversational Data Explorer (AI Agent)
|
|
486
|
-
- **Rol:** AI Engineer, DBA, Analyst
|
|
487
|
-
- **Sorun:** Mevcut AI chat tek turlu. Karmasik veri kesfinde ("churn eden kullanicilar -> son 5 siparisleri -> kategoriye gore avg") her adimda context kaybolur
|
|
488
|
-
- **Cozum:** Sorgu sonuclarini AI konusmasina enjekte eden conversational agent. AI sorgu uretir -> otomatik calistirir -> sonuclari gosterir -> kullanici devam sorgular. "Pin" ile onemli sonuclari context'te tut. "Fork" ile alternatif yollar kesfet. Notebook/Markdown olarak export
|
|
489
|
-
- **Dosyalar:** Yeni `ConversationalExplorer.tsx`, route `/api/ai/explore`, `src/lib/ai/conversation-context.ts`
|
|
490
|
-
- **Fark:** ChatGPT DB baglanmaz, DataGrip AI sonuc gormez. Bu ikisini birlestiren ilk arac
|
|
491
|
-
- **Karmasiklik:** Orta-Yuksek
|
|
492
|
-
|
|
493
|
-
### 9.19 Training Data Preparation Workbench
|
|
494
|
-
- **Rol:** ML Engineer
|
|
495
|
-
- **Sorun:** Fine-tuning/evaluation icin veri hazirlama (extraction, cleaning, labeling, format donusumleri) dagınik araclarla yapiliyor
|
|
496
|
-
- **Cozum:** Tek arayuzde: Extract (SQL) -> Clean (AI oneri) -> Label (AI siniflandirma + insan review) -> Validate (class balance, data leakage) -> Export (JSONL ChatML, CSV stratified split, HuggingFace format)
|
|
497
|
-
- **Dosyalar:** Yeni `TrainingDataWorkbench.tsx`, route `/api/ai/label-data`, `src/lib/training-data/` (formats, validators)
|
|
498
|
-
- **Fark:** Hicbir DB IDE ML data preparation yapmiyor
|
|
499
|
-
- **Karmasiklik:** Yuksek
|
|
500
|
-
|
|
501
|
-
---
|
|
502
|
-
|
|
503
|
-
## MEVCUT BACKLOG'LARLA ENTEGRASYON
|
|
504
|
-
|
|
505
|
-
Zaten planlanan 7 backlog ozelligi bu roadmap ile nasil entegre olur:
|
|
506
|
-
|
|
507
|
-
| Backlog | En Uygun Phase | Neden |
|
|
508
|
-
|---------|---------------|-------|
|
|
509
|
-
| 000-Platform Data Sync (PGlite) | Phase 1.2 alternatifi | Server-side persistence ile birlikte degerlendirilmeli |
|
|
510
|
-
| 001-Inline Data Editing | Phase 0.7'den sonra | Transaction control gerektirir |
|
|
511
|
-
| 002-Data Import | Phase 4'te | Multi-statement ve permission kontrolleri ile birlikte |
|
|
512
|
-
| 003-Query Time Machine | Phase 1.2'den sonra | Server-side storage gerektirir |
|
|
513
|
-
| 004-AI Data Storyteller | Phase 3.1'den sonra | Multi-turn AI ile daha guclu olur |
|
|
514
|
-
| 005-Query Playground | Phase 0.7 ile birlikte | Transaction control aynı altyapiyi kullanir |
|
|
515
|
-
| 006-Data Masking | Phase 1.3 ile birlikte | RBAC ile entegre olmali |
|
|
516
|
-
|
|
517
|
-
---
|
|
518
|
-
|
|
519
|
-
## ONERILEN UYGULAMA SIRASI (Rol-Bazli Ozelliklerle Guncellenmiş)
|
|
520
|
-
|
|
521
|
-
### Sprint 1: Quick Wins + DX (Hafta 1-2)
|
|
522
|
-
> Bagimliligi yok, hemen deger uretir
|
|
523
|
-
|
|
524
|
-
1. **0.1** Connection Testing (gercek) - `ConnectionModal.tsx`
|
|
525
|
-
2. **0.2** Connection Editing - `ConnectionModal.tsx`, `Sidebar.tsx`
|
|
526
|
-
3. **0.3** Connection String Import - yeni `connection-string-parser.ts`
|
|
527
|
-
4. **5.1** Command Palette (Cmd+K) - `cmdk` zaten yuklu
|
|
528
|
-
5. **5.6** Connection Groups / Color Coding - `Sidebar.tsx`, `types.ts`
|
|
529
|
-
6. **5.7** Tab Renaming - `Studio.tsx`
|
|
530
|
-
7. **5.5** SQL Export (INSERT, DDL) - `Studio.tsx` export func
|
|
531
|
-
8. **9.6** AI Query Explainer - `VisualExplain.tsx`'e AI tab (dusuk efor, yuksek deger)
|
|
532
|
-
|
|
533
|
-
### Sprint 2: Connectivity & Safety (Hafta 3-4)
|
|
534
|
-
> Tum rakiplerin sahip oldugu temel ozellikler
|
|
535
|
-
|
|
536
|
-
9. **0.4** SSL/TLS Configuration UI
|
|
537
|
-
10. **0.5** SSH Tunnel Destegi
|
|
538
|
-
11. **0.6** Query Cancellation / Abort
|
|
539
|
-
12. **0.7** Transaction Control (BEGIN/COMMIT/ROLLBACK)
|
|
540
|
-
13. **4.5** Multi-Statement Execution
|
|
541
|
-
14. **8.1** Redis Provider
|
|
542
|
-
|
|
543
|
-
### Sprint 3: Mevcut Backlog'lar - Oncelikli (Hafta 5-7)
|
|
544
|
-
> Kullanicinin istegi: mevcut backloglar oncelikli
|
|
545
|
-
|
|
546
|
-
15. **Backlog 005** Query Playground (Sandbox) - Transaction altyapisi hazir
|
|
547
|
-
16. **Backlog 006** Data Masking - RBAC gecici olarak mevcut admin/user ile
|
|
548
|
-
17. **Backlog 001** Inline Data Editing - Transaction + sandbox ile birlikte
|
|
549
|
-
18. **Backlog 002** Data Import (CSV, JSON, Excel) - schema bilgisi mevcut
|
|
550
|
-
|
|
551
|
-
### Sprint 4: AI Intelligence - Farklilasma (Hafta 8-10)
|
|
552
|
-
> Hicbir rakibin yapmadigi, LibreDB'yi one cikaracak
|
|
553
|
-
|
|
554
|
-
19. **3.1** Multi-Turn Conversational AI
|
|
555
|
-
20. **3.5** AI Query Safety Analysis (Pre-Execution)
|
|
556
|
-
21. **3.2** AI Index Advisor
|
|
557
|
-
22. **3.4** NL2SQL (Natural Language to Query)
|
|
558
|
-
23. **9.10** AI Query Performance Autopilot (DBA icin)
|
|
559
|
-
24. **9.7** Schema Change Impact Analyzer
|
|
560
|
-
|
|
561
|
-
### Sprint 5: Analyst & Developer Tools (Hafta 11-13)
|
|
562
|
-
> Her gun kullanan gelistirici ve analist icin
|
|
563
|
-
|
|
564
|
-
25. **9.1** AI Data Profiler (analyst)
|
|
565
|
-
26. **9.4** ORM Code Generator (developer)
|
|
566
|
-
27. **9.5** Test Data Generator / Faker (developer)
|
|
567
|
-
28. **9.2** Interactive Pivot Table (analyst)
|
|
568
|
-
29. **5.4** Data Filtering / WHERE Builder
|
|
569
|
-
30. **5.3** Database Documentation Generator
|
|
570
|
-
|
|
571
|
-
### Sprint 6: DBA & Monitoring (Hafta 14-16)
|
|
572
|
-
> Veritabani yoneticileri icin production-grade araclar
|
|
573
|
-
|
|
574
|
-
31. **9.11** Lock Dependency Graph (canli)
|
|
575
|
-
32. **9.12** Smart Vacuum Scheduler + Bloat Forecasting
|
|
576
|
-
33. **6.2** Connection Health Monitor (Background)
|
|
577
|
-
34. **6.1** Alerting ve Threshold Rules
|
|
578
|
-
35. **9.14** Prometheus Metrics Export (DevOps)
|
|
579
|
-
|
|
580
|
-
### Sprint 7: Enterprise Foundation (Hafta 17-20)
|
|
581
|
-
> Kurumsal kullanim icin zorunlu altyapi
|
|
582
|
-
|
|
583
|
-
36. **1.1** User Identity ve Team Management
|
|
584
|
-
37. **1.2** Server-Side State Persistence
|
|
585
|
-
38. **1.3** Connection-Level Access Control
|
|
586
|
-
39. **1.4** Audit Log
|
|
587
|
-
40. **Backlog 003** Query Time Machine (persistence hazir)
|
|
588
|
-
41. **Backlog 004** AI Data Storyteller (multi-turn AI hazir)
|
|
589
|
-
|
|
590
|
-
### Sprint 8: Collaboration (Hafta 21-24)
|
|
591
|
-
> Web avantajini kullanan paylasim ozellikleri
|
|
592
|
-
|
|
593
|
-
42. **2.1** Shared Query Workspaces
|
|
594
|
-
43. **2.2** Query Review & Approval Workflow
|
|
595
|
-
44. **2.3** Notifications ve Activity Feed
|
|
596
|
-
45. **9.3** Smart Query Notebook (Jupyter-benzeri)
|
|
597
|
-
|
|
598
|
-
### Sprint 9: Data Engineering & AI Engineering (Hafta 25-28)
|
|
599
|
-
> Uzman roller icin ileri seviye ozellikler
|
|
600
|
-
|
|
601
|
-
46. **9.8** Cross-Database Query Federation
|
|
602
|
-
47. **9.9** Data Quality Rules Engine
|
|
603
|
-
48. **9.16** Vector Data Explorer + Embedding Visualization
|
|
604
|
-
49. **9.18** Conversational Data Explorer (AI Agent)
|
|
605
|
-
50. **9.13** Multi-Environment Schema Diff + AI Migration
|
|
606
|
-
|
|
607
|
-
### Sprint 10: Advanced & Integration (Hafta 29-32)
|
|
608
|
-
> Platform olgunlugu ve genisletilebilirlik
|
|
609
|
-
|
|
610
|
-
51. **9.17** RAG Pipeline Builder
|
|
611
|
-
52. **9.19** Training Data Workbench
|
|
612
|
-
53. **9.15** IaC Connection Export
|
|
613
|
-
54. **7.1** REST API (Public)
|
|
614
|
-
55. **7.2** Plugin System
|
|
615
|
-
56. **7.3** Git Integration
|
|
616
|
-
57. **8.2** ClickHouse Provider
|
|
617
|
-
58. **8.3** DynamoDB Provider
|
|
618
|
-
59. **Backlog 000** Platform Data Sync (PGlite + ElectricSQL)
|
|
619
|
-
|
|
620
|
-
---
|
|
621
|
-
|
|
622
|
-
## BAGIMLILIK GRAFI
|
|
623
|
-
|
|
624
|
-
```
|
|
625
|
-
BAGIMSIZ (hemen baslanabilir):
|
|
626
|
-
├── Phase 0 (Kritik Eksikler)
|
|
627
|
-
├── 5.1 Command Palette
|
|
628
|
-
├── 5.5 SQL Export
|
|
629
|
-
├── 5.6 Connection Groups
|
|
630
|
-
├── 5.7 Tab Renaming
|
|
631
|
-
├── 9.6 AI Query Explainer
|
|
632
|
-
├── 8.1 Redis Provider
|
|
633
|
-
├── 9.4 ORM Code Generator
|
|
634
|
-
├── 9.14 Prometheus Metrics Export
|
|
635
|
-
└── 9.15 IaC Connection Export
|
|
636
|
-
|
|
637
|
-
Phase 0.7 (Transaction) gerektiren:
|
|
638
|
-
├── Backlog 005 Query Playground
|
|
639
|
-
├── Backlog 001 Inline Data Editing
|
|
640
|
-
└── 9.5 Test Data Generator
|
|
641
|
-
|
|
642
|
-
Mevcut LLM altyapisi gerektiren (bagimsiz):
|
|
643
|
-
├── 3.1 Multi-Turn AI
|
|
644
|
-
├── 3.2 AI Index Advisor
|
|
645
|
-
├── 3.4 NL2SQL
|
|
646
|
-
├── 3.5 AI Safety Analysis
|
|
647
|
-
├── 9.1 Data Profiler
|
|
648
|
-
├── 9.7 Impact Analyzer
|
|
649
|
-
└── 9.10 Query Autopilot
|
|
650
|
-
|
|
651
|
-
Phase 1 (Enterprise) -> Phase 2 (Collaboration):
|
|
652
|
-
Phase 1.1 (User) ─┐
|
|
653
|
-
├─ 1.2 (Persistence) ─┐
|
|
654
|
-
│ │ ├─ 2.1 Shared Workspaces
|
|
655
|
-
│ ├─ 1.3 (RBAC) ├─ 2.2 Query Review
|
|
656
|
-
│ ├─ 1.4 (Audit) ├─ 2.3 Notifications
|
|
657
|
-
│ ├─ Backlog 003 ├─ 9.3 Notebook
|
|
658
|
-
│ └─ Backlog 004 └─ 6.1 Alerting
|
|
659
|
-
│
|
|
660
|
-
└─ Phase 7 (Integration) + Phase 4 (Operations)
|
|
661
|
-
|
|
662
|
-
Phase 9 Advanced (sonraki sprintler):
|
|
663
|
-
├── 9.8 Cross-DB Federation (2+ baglanti gerekir)
|
|
664
|
-
├── 9.16 Vector Explorer (schema desteği gerekir)
|
|
665
|
-
├── 9.17 RAG Pipeline (LLM embed() gerekir)
|
|
666
|
-
├── 9.19 Training Workbench (LLM labeling gerekir)
|
|
667
|
-
└── 9.13 Schema Diff (2 baglanti + AI migration)
|
|
668
|
-
```
|
|
669
|
-
|
|
670
|
-
---
|
|
671
|
-
|
|
672
|
-
## OZET: TOPLAM OZELLIK SAYILARI (Rol Bazli)
|
|
673
|
-
|
|
674
|
-
| Rol | Ozellik Sayisi | Onemli Ozellikler |
|
|
675
|
-
|-----|---------------|-------------------|
|
|
676
|
-
| **Tum Roller** | 12 | Connection testing/editing/SSH/SSL, Command Palette, Transaction, Query Cancel |
|
|
677
|
-
| **SQL Data Analyst** | 4 | Data Profiler, Pivot Table, Notebook, AI Query Explainer |
|
|
678
|
-
| **Developer** | 5 | ORM CodeGen, Test Data Faker, Impact Analyzer, Query Diff, SQL Export |
|
|
679
|
-
| **Data Engineer** | 3 | Cross-DB Federation, Data Quality Rules, Schema Diff |
|
|
680
|
-
| **DBA** | 5 | Query Autopilot, Lock Graph, Vacuum Scheduler, Index Advisor, Alerting |
|
|
681
|
-
| **DevOps** | 3 | Prometheus Export, IaC Export, Background Health |
|
|
682
|
-
| **AI Engineer** | 4 | Vector Explorer, RAG Pipeline, Conv. Explorer, Training Workbench |
|
|
683
|
-
| **Enterprise/Collab** | 7 | User Identity, RBAC, Audit, Workspaces, Review, Notifications, Notebook |
|
|
684
|
-
| **New DB Support** | 3 | Redis, ClickHouse, DynamoDB |
|
|
685
|
-
| **Mevcut Backlog** | 7 | PGlite Sync, Inline Edit, Data Import, Time Machine, AI Storyteller, Sandbox, Masking |
|
|
686
|
-
|
|
687
|
-
**Toplam: ~59 ozellik, 10 sprint, ~32 hafta**
|
|
688
|
-
|
|
689
|
-
---
|
|
690
|
-
|
|
691
|
-
## KRITIK DOSYALAR
|
|
692
|
-
|
|
693
|
-
Tum phase'larda en cok degisecek dosyalar:
|
|
694
|
-
|
|
695
|
-
| Dosya | Neden Kritik |
|
|
696
|
-
|-------|-------------|
|
|
697
|
-
| `src/components/Studio.tsx` | Ana shell - tum yeni panel modlari, toolbar butonlari, modal'lar buraya entegre olur |
|
|
698
|
-
| `src/lib/db/types.ts` | Tum yeni interface'ler (profile, lock, vector, quality) burada tanimlanir |
|
|
699
|
-
| `src/lib/db/base-provider.ts` | Yeni provider metodlari (profileTable, getLockDeps, vectorSearch) abstract olarak eklenir |
|
|
700
|
-
| `src/lib/types.ts` | DatabaseConnection genisletme (SSH, SSL, color, group alanlari) |
|
|
701
|
-
| `src/app/api/ai/chat/route.ts` | Tum AI ozellikleri icin temel - system prompt builder genisletilir |
|
|
702
|
-
| `src/app/api/db/query/route.ts` | Query cancellation, transaction control, audit logging enforcement point |
|
|
703
|
-
| `src/lib/storage.ts` | Notebooks, data quality rules, query versioning icin genisletme |
|
|
704
|
-
| `src/components/ConnectionModal.tsx` | SSH, SSL, edit mode, connection string, test connection |
|
|
705
|
-
| `src/components/QueryEditor.tsx` | AI conversation UI, snippet entegrasyonu |
|
|
706
|
-
| `src/components/ResultsGrid.tsx` | Data filtering, inline editing, vector cell, masking |
|
|
707
|
-
|
|
708
|
-
---
|
|
709
|
-
|
|
710
|
-
## DOGRULAMA VE TEST
|
|
711
|
-
|
|
712
|
-
Her sprint sonunda:
|
|
713
|
-
1. `bun run build` - Production build basarili olmali
|
|
714
|
-
2. `bun run lint` - Lint hatasiz olmali
|
|
715
|
-
3. Manuel test: Tum mevcut ozellikler kirilmamis olmali (regression)
|
|
716
|
-
4. Yeni ozellik icin end-to-end test: Browser'da gercek senaryo
|
|
717
|
-
6. Mobile responsive kontrol (768px breakpoint)
|
|
718
|
-
7. Provider-agnostic test: Ozelligin en az 2 farkli DB tipinde calismasi dogrulanmali
|