 james.maesandClaude Opus 5.5
|
b8d33460bf
|
feat: SQL Workbench qbit 1.0 backend
QQQ 4.1 QBit (com.kingsrook.qbits:sql-workbench) for a super-user SQL
notebook over any RDBMS backend of the instance:
- Dialect-aware scanner, statement splitter/classifier (READ,
EXPLAIN_ANALYZE, WRITE, DDL, FORBIDDEN) and :named parameter binding.
- Execution engine: read-only sessions in a database READ ONLY
transaction (Postgres, MySQL, SQLite query_only; classifier on H2),
gated write mode (rolled-back dry run, single-use confirm token,
row guard, hard cap, drift check), statement timeouts, row/byte caps,
cancellation, per-user concurrency, clean connection return, and a
fail-closed execution audit (audit updates deferred until the
session connection is released).
- Dedicated read-only/write credentials per backend; backend read-only
replica support.
- EXPLAIN / EXPLAIN ANALYZE (always rolled back) normalized to a plan
tree; schema introspection with QQQ table/field -> SQL name mapping.
- Notebooks (personal/shared), cells, versions with retention, result
snapshots.
- REST routes under /qqq/v1/sql-workbench (Javalin 7, JSON-only
bodies), CSV/XLSX/JSON export.
- Tables, notebook PVS, SQL_WORKBENCH widget and sqlWorkbench app; no
processes. PostgreSQL DDL in docs/ddl/postgres.sql.
- Tests: 83 unit (H2, SQLite, HTTP) + 6 Testcontainers Postgres
integration tests; JaCoCo 94% instructions.
- CircleCI qqq-orb 0.6.8 config, Maven wrapper, CLAUDE.md/AGENTS.md,
CHANGELOG.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-11 09:47:40 -05:00 |
|