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>
2 lines
27 B
Properties
2 lines
27 B
Properties
version=${project.version}
|