Agrega diagrama de relaciones (FK) al Query Runner

- GetSchemaRelations: trae todas las llaves foráneas de la base con
  consulta específica por motor (Postgres/MySQL/MSSQL/SQLite). No
  aplica a Redis/Mongo (schemaless).
- Endpoint GET /query-runner/relations, con el mismo chequeo de
  autorización por conexión que ya usa RunQuery — de paso se lo
  agrego también a GetDatabases/GetTables, que no lo tenían.
- UI: botón "Ver relaciones" (diagrama completo) y un ícono por tabla
  en el árbol lateral (relaciones solo de esa tabla), renderizado con
  Mermaid.js servido localmente (public/js/mermaid.min.js, sin CDN).
This commit is contained in:
Lizandro GD
2026-08-08 23:11:48 +00:00
parent b7fba43ea1
commit 21d8cd5260
6 changed files with 3888 additions and 0 deletions
+1
View File
@@ -353,6 +353,7 @@ func AdminApiRoutes(api fiber.Router) {
h.Get("/query-runner/connections", controllers.GetConxDbList)
h.Get("/query-runner/databases", controllers.GetDatabases)
h.Get("/query-runner/tables", controllers.GetTables)
h.Get("/query-runner/relations", controllers.GetRelations)
h.Get("/query-runner/test", controllers.TestConnection)
h.Post("/query-runner/run", controllers.RunQuery)
h.Post("/query-runner/run-batch", controllers.RunBatchQuery)
+1
View File
@@ -140,6 +140,7 @@ func UserRoutes(app fiber.Router) {
protected.Get("/query-runner/connections", controllers.GetConxDbList)
protected.Get("/query-runner/databases", controllers.GetDatabases)
protected.Get("/query-runner/tables", controllers.GetTables)
protected.Get("/query-runner/relations", controllers.GetRelations)
protected.Get("/query-runner/test", controllers.TestConnection)
// Sin SoloAdmin a propósito: RunQuery/RunBatchQuery ya limitan el alcance
// internamente (un no-admin solo ve/consulta las conexiones que su rol