feat: phase 2 databases via DBX (v0.3.0)

- dbx-mcp persistent stdio subprocess in Go backend (internal/dbx),
  lazy start + single retry, tool failures surface as 502
- core.db_connections registry: per-project connections, credentials
  server-side only, managed entries protected (409)
- platform-postgres + platform-dragonfly auto-register per project
- REST proxy: list/create/delete/test, databases, tables, describe,
  schema context, SQL query, redis command
- Databases page: connection list, schema/table browser, column
  inspector, SQL editor with result grid + row detail, redis console
- backend image moved to debian-slim for glibc; pinned dbx release
  with SHA256 verification

Authored By: TDvorak <[email protected]>
This commit is contained in:
Tomas Dvorak committed 2026-09-16 14:54:33 +02:00
1 parent 420502eec1
commit 627bd89d5e
71 files changed
+3685 -49

No files matched your search

@@ -23,15 +23,32 @@ export type { BucketObjectListResponse } from './models/BucketObjectListResponse
export type { Collection } from './models/Collection';
export type { CollectionID } from './models/CollectionID';
export type { CollectionListResponse } from './models/CollectionListResponse';
export type { ConnectionID } from './models/ConnectionID';
export type { CopyBucketObjectRequest } from './models/CopyBucketObjectRequest';
export type { CreateApiKeyRequest } from './models/CreateApiKeyRequest';
export { CreateBucketRequest } from './models/CreateBucketRequest';
export type { CreateCollectionRequest } from './models/CreateCollectionRequest';
export type { CreatedApiKey } from './models/CreatedApiKey';
export { CreateDBConnectionRequest } from './models/CreateDBConnectionRequest';
export type { CreateDocumentRequest } from './models/CreateDocumentRequest';
export { CreateInvitationRequest } from './models/CreateInvitationRequest';
export type { CreateOrganizationRequest } from './models/CreateOrganizationRequest';
export type { CreateProjectRequest } from './models/CreateProjectRequest';
export type { DatabaseQuery } from './models/DatabaseQuery';
export type { DBConnection } from './models/DBConnection';
export type { DBConnectionListResponse } from './models/DBConnectionListResponse';
export type { DBConnectionTestResult } from './models/DBConnectionTestResult';
export type { DBDatabaseListResponse } from './models/DBDatabaseListResponse';
export type { DBDescribeResponse } from './models/DBDescribeResponse';
export type { DBMDTable } from './models/DBMDTable';
export type { DBObject } from './models/DBObject';
export type { DBQueryRequest } from './models/DBQueryRequest';
export type { DBQueryResponse } from './models/DBQueryResponse';
export type { DBRedisRequest } from './models/DBRedisRequest';
export type { DBRedisResponse } from './models/DBRedisResponse';
export type { DBSchemaContextResponse } from './models/DBSchemaContextResponse';
export type { DBTableListResponse } from './models/DBTableListResponse';
export type { DBXStatus } from './models/DBXStatus';
export type { Document } from './models/Document';
export type { DocumentID } from './models/DocumentID';
export type { DocumentListResponse } from './models/DocumentListResponse';
@@ -55,6 +72,8 @@ export { ProjectMember } from './models/ProjectMember';
export type { ProjectOverview } from './models/ProjectOverview';
export type { ProjectSummary } from './models/ProjectSummary';
export type { ReadinessStatus } from './models/ReadinessStatus';
export type { SchemaQuery } from './models/SchemaQuery';
export type { TableQuery } from './models/TableQuery';
export type { UpdateBucketObjectRequest } from './models/UpdateBucketObjectRequest';
export { UpdateBucketRequest } from './models/UpdateBucketRequest';
export type { UpdateCollectionRequest } from './models/UpdateCollectionRequest';
@@ -82,15 +101,32 @@ export { $BucketObjectListResponse } from './schemas/$BucketObjectListResponse';
export { $Collection } from './schemas/$Collection';
export { $CollectionID } from './schemas/$CollectionID';
export { $CollectionListResponse } from './schemas/$CollectionListResponse';
export { $ConnectionID } from './schemas/$ConnectionID';
export { $CopyBucketObjectRequest } from './schemas/$CopyBucketObjectRequest';
export { $CreateApiKeyRequest } from './schemas/$CreateApiKeyRequest';
export { $CreateBucketRequest } from './schemas/$CreateBucketRequest';
export { $CreateCollectionRequest } from './schemas/$CreateCollectionRequest';
export { $CreatedApiKey } from './schemas/$CreatedApiKey';
export { $CreateDBConnectionRequest } from './schemas/$CreateDBConnectionRequest';
export { $CreateDocumentRequest } from './schemas/$CreateDocumentRequest';
export { $CreateInvitationRequest } from './schemas/$CreateInvitationRequest';
export { $CreateOrganizationRequest } from './schemas/$CreateOrganizationRequest';
export { $CreateProjectRequest } from './schemas/$CreateProjectRequest';
export { $DatabaseQuery } from './schemas/$DatabaseQuery';
export { $DBConnection } from './schemas/$DBConnection';
export { $DBConnectionListResponse } from './schemas/$DBConnectionListResponse';
export { $DBConnectionTestResult } from './schemas/$DBConnectionTestResult';
export { $DBDatabaseListResponse } from './schemas/$DBDatabaseListResponse';
export { $DBDescribeResponse } from './schemas/$DBDescribeResponse';
export { $DBMDTable } from './schemas/$DBMDTable';
export { $DBObject } from './schemas/$DBObject';
export { $DBQueryRequest } from './schemas/$DBQueryRequest';
export { $DBQueryResponse } from './schemas/$DBQueryResponse';
export { $DBRedisRequest } from './schemas/$DBRedisRequest';
export { $DBRedisResponse } from './schemas/$DBRedisResponse';
export { $DBSchemaContextResponse } from './schemas/$DBSchemaContextResponse';
export { $DBTableListResponse } from './schemas/$DBTableListResponse';
export { $DBXStatus } from './schemas/$DBXStatus';
export { $Document } from './schemas/$Document';
export { $DocumentID } from './schemas/$DocumentID';
export { $DocumentListResponse } from './schemas/$DocumentListResponse';
@@ -114,6 +150,8 @@ export { $ProjectMember } from './schemas/$ProjectMember';
export { $ProjectOverview } from './schemas/$ProjectOverview';
export { $ProjectSummary } from './schemas/$ProjectSummary';
export { $ReadinessStatus } from './schemas/$ReadinessStatus';
export { $SchemaQuery } from './schemas/$SchemaQuery';
export { $TableQuery } from './schemas/$TableQuery';
export { $UpdateBucketObjectRequest } from './schemas/$UpdateBucketObjectRequest';
export { $UpdateBucketRequest } from './schemas/$UpdateBucketRequest';
export { $UpdateCollectionRequest } from './schemas/$UpdateCollectionRequest';
@@ -126,6 +164,7 @@ export { $UserID } from './schemas/$UserID';
export { $UserSummary } from './schemas/$UserSummary';
export { CollectionsService } from './services/CollectionsService';
export { DatabasesService } from './services/DatabasesService';
export { HealthService } from './services/HealthService';
export { OrganizationsService } from './services/OrganizationsService';
export { PlatformService } from './services/PlatformService';