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

@@ -0,0 +1,30 @@
-- name: ListDBConnections :many
SELECT * FROM core.db_connections
WHERE project_id = $1
ORDER BY is_managed DESC, name ASC;
-- name: GetDBConnectionByID :one
SELECT * FROM core.db_connections
WHERE id = $1;
-- name: GetDBConnectionByName :one
SELECT * FROM core.db_connections
WHERE project_id = $1
AND name = $2;
-- name: CreateDBConnection :one
INSERT INTO core.db_connections (
project_id,
name,
db_type,
config,
is_managed,
created_by_user_id
) VALUES ($1, $2, $3, $4, $5, $6)
RETURNING *;
-- name: DeleteDBConnection :one
DELETE FROM core.db_connections
WHERE id = $1
AND project_id = $2
RETURNING *;