• KofTwentyTwo released this 2026-10-15 22:12:51 +00:00 | 6 commits to develop since this release

    qbit-sql-workbench 1.0.0-RC.10 release candidate. RC.9 and earlier remain immutable. Requires QQQ 4.1.0-RC.15 or later.

    Since RC.9

    • feat(ui-api): extension for QQQ UI API 1.6.0 (operationIds, BasicErrorResponseV1, QQQ 4.1.0-RC.15) (#28)

    The help bundle ships the qbit's in-app help through QQQ help bundles (core < qbit < host < user edit), so hosts no longer need staging copies.

    No GA approval is implied.

    The signed annotated tag v1.0.0-RC.10 fixes source 1cc0e61 on release/1.0.

    Downloads
  • KofTwentyTwo released this 2026-10-15 03:23:41 +00:00 | 11 commits to develop since this release

    qbit-sql-workbench 1.0.0-RC.9 release candidate. RC.8 and earlier remain immutable. Requires QQQ 4.1.0-RC.7 or later.

    Since RC.8

    • feat(help): qbit-sql-workbench help bundle via QQQ help bundles, with coverage gate (#26)
    • fix(help): help bundle version comes from the build, not a hardcoded SNAPSHOT (#27)

    The help bundle ships the qbit's in-app help through QQQ help bundles (core < qbit < host < user edit), so hosts no longer need staging copies.

    No GA approval is implied.

    The signed annotated tag v1.0.0-RC.9 fixes source 6903d7f on release/1.0.

    Downloads
  • KofTwentyTwo released this 2026-10-14 22:53:17 +00:00 | 17 commits to develop since this release

    qbit-sql-workbench 1.0.0-RC.8 release candidate. RC.7 and earlier remain immutable. Requires QQQ 4.1.0-RC.6 or later.

    Since RC.7

    • Indexes on result_snapshot.notebook_id and execution.notebook_id (#23).
    • A guardrail test that every table reference has a foreign key (#24).

    No GA approval is implied.

    The signed annotated tag v1.0.0-RC.8 fixes source 2a2bd15 on release/1.0.

    Downloads
  • KofTwentyTwo released this 2026-10-14 22:46:16 +00:00 | 23 commits to develop since this release

    qbit-sql-workbench 1.0.0-RC.7 release candidate. RC.6 and earlier remain immutable. Requires QQQ 4.1.0-RC.6 or later.

    Since RC.6

    • Table help, a guardrail test and audit retention (#25).
    • CI: qqq-orb 0.6.9 (#22).

    No GA approval is implied.

    The signed annotated tag v1.0.0-RC.7 fixes source 6294c52 on release/1.0.

    Downloads
  • KofTwentyTwo released this 2026-10-14 12:39:06 +00:00 | 30 commits to develop since this release

    qbit-sql-workbench 1.0.0-RC.6 release candidate. RC.5 and earlier remain immutable.

    Since RC.5

    • UI API extension on QQQ 4.1.0-RC.6, with a committed OpenAPI document; guardrails enforced (#21)

    No GA approval is implied.

    The signed annotated tag v1.0.0-RC.6 fixes source aa13c13 on release/1.0.

    Downloads
  • KofTwentyTwo released this 2026-10-12 21:39:13 +00:00 | 39 commits to develop since this release

    qbit-sql-workbench 1.0.0-RC.5 is published to Maven Central (com.kingsrook.qbits:qbit-sql-workbench:1.0.0-RC.5) from release/1.0 on 2026-10-12. It requires QQQ 4.1.0-RC.4 or later. Owner approval 2026-10-12: "all approved and releases approved". This is a prerelease.

    Same as 1.0.0-RC.4 plus #16: workbench users get sql_workbench_result_snapshot.insert, so pinning a result works when the host enables QQQ core permission enforcement (with a test). Hosts that grant the permission lists from SqlWorkbenchQBitConfig pick it up automatically.

    The signed annotated tag v1.0.0-RC.5 fixes source 6a0eae1 (the orb's version bump on the merge of develop into release/1.0). 1.0.0-RC.3 on Central is an accidental republish of RC.2; do not use it.

    Downloads
  • KofTwentyTwo released this 2026-10-12 21:22:00 +00:00 | 46 commits to develop since this release

    qbit-sql-workbench 1.0.0-RC.4 is published to Maven Central (com.kingsrook.qbits:qbit-sql-workbench:1.0.0-RC.4) from release/1.0 (CircleCI 40) on 2026-10-12. It requires QQQ 4.1.0-RC.4 or later and a Next UI that renders the SQL_WORKBENCH widget (v1.0.0-RC.13 or later; the record developer panel needs the developer view, from Next RC.15). Owner approval 2026-10-12: "all approved and releases approved". This is a prerelease.

    Version note: 1.0.0-RC.3 on Maven Central is an accidental republish of the RC.2 code by an RC-tag build; do not use it. This candidate, RC.4, carries the changes the changelog lists under 1.0.0-RC.3. RC tags no longer trigger publishes (#15).

    The signed annotated tag v1.0.0-RC.4 fixes source a0e3c22 (the orb's version bump on the merge of develop into release/1.0).

    Included: #7 snake_case QQQ names with the sql_workbench_ prefix (breaking; see UPGRADE.md), #9 app home dashboard, Runner nav entry and main-tables-only nav, #6 record developer panel (links open SQL in the Runner), #14 record-screen polish. Not included: #16 (result-snapshot insert permission for users under core enforcement) follows in the next candidate.

    Notes from the changelog:

    Added

    • App home dashboard. The sqlWorkbench app's home is now an information dashboard of real data, read in the viewer's session (permissions and record locks apply): summary tiles and links, runs per day, recent notebooks, recent runs, slowest and failed queries, most-used notebooks, shared notebooks, committed writes, and (workbench admins only) activity by user. Each widget has an honest empty state.
    • Runner. The notebook editor (SQL_WORKBENCH widget) moves to its own nav entry: the sqlWorkbenchRunner child app, labeled Runner. Open a notebook with /app/sqlWorkbenchRunner?notebook=<id>.
    • On a notebook's record view: an Open in Runner widget, and a Runs child list (its executions the viewer may see) through the new join sql_workbench_notebook_join_sql_workbench_execution.
    • SqlWorkbenchIntegrations: opt-in ESB (esbTableNames) and Quick Search (quickSearchTables) hooks for the main tables, with no dependency on either module.
    • Record developer panel "SQL Workbench" (SqlWorkbenchDeveloperPanelProvider, registered by SqlWorkbenchDeveloperPanelsMetaDataProducer): read-only SELECTs for the record and its table in the backend's own names, backend details, and links that open them in the Runner as a new cell (/app/sqlWorkbenchRunner?sql=&backend=, never run). Requires QQQ 4.1.0-RC.4 (the developer panel contract) and a Next UI with the Runner ?sql= support.

    Changed

    • The nav lists only the main tables: Notebooks and the execution audit, after the Runner. Cells, versions, pinned results and shares are child lists on a notebook (still standard tables, reachable by URL and API). The app's widget list is now the dashboard, not the SQL_WORKBENCH widget; links to /app/sqlWorkbench that expected the editor should point at /app/sqlWorkbenchRunner.
    • The notebook record's header shows the description.
    • Names follow the owner rule: lowercase snake_case, prefixed with the qbit's name (metadata only, no DDL). Tables sql_workbench_notebook, sql_workbench_cell, sql_workbench_notebook_version, sql_workbench_result_snapshot, sql_workbench_notebook_share, sql_workbench_execution (they now equal their backend table names); possible-value source sql_workbench_share_audience_type; permissions sql_workbench.*, sql_workbench_admin.hasAccess and <table>.read etc.; security key types sql_workbench_user (all-access sql_workbench_all_access) and sql_workbench_audience; joins sql_workbench_notebook_join_sql_workbench_*.
    • tableNamePrefix (and the QBit namespace) is normalized to lowercase snake_case and joined with one _.

    Deprecated

    • LEGACY_TABLE_NAME on each entity, ShareAudienceType.LEGACY_NAME and SqlWorkbenchQBitConfig.LEGACY_* hold the pre-RC.3 names, for migrating stored references only.

    Upgrade from RC.2

    • Follow UPGRADE.md: grant the renamed permissions and rename stored table names (audit, saved views and reports). No DDL.
    Downloads
  • KofTwentyTwo released this 2026-10-12 17:39:28 +00:00 | 69 commits to develop since this release

    1.0.0-RC.3 on Maven Central is an accidental republish of this RC.2 code by a tag build; do not use it. The next real candidate is 1.0.0-RC.4.

    qbit-sql-workbench 1.0.0-RC.2 is published to Maven Central (com.kingsrook.qbits:qbit-sql-workbench:1.0.0-RC.2) from release/1.0 (CircleCI 16) on 2026-10-12. It requires QQQ 4.1.0-RC.4 or later and a Next UI that renders the SQL_WORKBENCH widget (v1.0.0-RC.13 or later). Owner approval 2026-10-12: "all approved and releases approved". This is a prerelease; 1.0.0 is not final.

    The signed annotated tag v1.0.0-RC.2 fixes source 0d8af84 (version bump on the merge of develop into release/1.0, which includes #5). The RC.1 version bump never reached release/1.0 because the CircleCI deploy key is read only, so the merge commit set <revision> to 1.0.0-RC.1 and the bump to RC.2 was pushed by hand.

    Notes from the changelog:

    The workbench's data becomes standard QQQ tables, secured by QQQ's own mechanisms instead of being hidden (#3). Requires QQQ 4.1.0-RC.4 or later (qqq#1073).

    Added

    • sqlWorkbenchNotebookShare: share a notebook, read-only, with a user, a group, or everyone (ALL, the shared library). Publishing in the notebook UI now writes an ALL share; a notebook's visibility follows its shares.
    • Record security locks on every table, enforced by QQQ's core actions (table UI, /qqq/v1 table API, export, PVS lookups, processes, the workbench endpoints): owners see and change their notebooks and children, share audiences read them, users read their own execution audit, admins (sqlWorkbenchAdmin.hasAccess) hold the all-access key. Security key types sqlWorkbenchUser and sqlWorkbenchAudience; SqlWorkbenchSecurity.applyToSession(qInstance, session, groups) puts the keys in a session.
    • Per-table read / insert / edit / delete permissions, listed per role by SqlWorkbenchQBitConfig.getUserPermissionNames(), getSharePermissionNames() and getAdminPermissionNames().
    • All six tables are children of the sqlWorkbench app, with record-view sections, child-list widgets (cells, shares, pinned results, versions) and SQL / JSON code-editor adornments.
    • Record actions (processes on tables, not in the nav): Share Notebook, Duplicate Notebook, Restore Version.
    • Table customizers that keep the notebook invariants for every entry point: ownership from the session, cell validation and ordering, one version per change, share keys and visibility, append-only versions and audit (also for admins), pinned results only from pinning, cascading notebook deletes.
    • Record-level QQQ audits for notebooks, cells, pinned results and shares.

    Changed

    • NotebookService and the history endpoint run as the caller's session through the standard table actions (no system-user bypass); the explicit owner / share checks stay as defense in depth.
    • The tables' permission rules are per-table permissions instead of sqlWorkbenchAdmin.hasAccess. Hosts must grant the new lists and call applyToSession.
    • Built against QQQ 4.1.0-RC.4.

    Upgrade from RC.1

    • Run the share-table DDL from docs/ddl/postgres.sql: it creates sql_workbench_notebook_share and backfills an all share for each SHARED notebook (additive, idempotent; owners unchanged).
    • Grant the permission lists and call SqlWorkbenchSecurity.applyToSession in the authentication customizer.
    Downloads