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

+6 -4
View File
@@ -46,14 +46,16 @@ in a 25 MB MCP server. Primora does not embed DBX; the Go backend keeps
`@dbx-app/mcp-server` as a persistent stdio subprocess and exposes its tools
as REST (pattern already proven in IMS's `internal/app/dbx.go`).
- **Connection registry** — per-project saved connections (Postgres, MySQL,
- **Connection registry** ✅ — per-project saved connections (Postgres, MySQL,
SQLite, Redis, MongoDB, …). Credentials stored server-side, never sent to
the browser. `core.db_connections` table + endpoints.
- **Databases page** — connection list → database/schema/table browser →
- **Databases page** ✅ — connection list → database/schema/table browser →
column/type/key inspector.
- **SQL editor** — query editor with ⌘/Ctrl+Enter, result grid, row detail.
- **SQL editor** ✅ — query editor with ⌘/Ctrl+Enter, result grid, row detail.
- **Redis console** ✅ — command input + output history for redis-type
connections.
- **Visual overview** — schema graph: tables as nodes, foreign keys as edges.
- **First-party connections** — the platform's own Postgres and Dragonfly
- **First-party connections** ✅ — the platform's own Postgres and Dragonfly
auto-register as connections on every project, so "put Postgres in it and
it runs Postgres" works out of the box.
- **DB-to-DB links** — DBX data transfer between two saved connections