Skip to main content

Changelog

0.19.1 (2026-08-02)

Bug Fixes

  • deps: complete the go-ora v2→v3 migration — the earlier version bumps (#268, #276) only added the v3 module requirement without touching any .../v2 imports, which left the build broken; this rewrites the Oracle conncheck probe and test suite to import v3 and drops the now-unused v2 requirement (#272) (43b1aba)
  • ui: show full query columns on the home page (#274) (ab7f879)

0.19.0 (2026-07-22)

Features

  • auth: add a device authorization flow for API key provisioning, following the OAuth 2.0 Device Authorization Grant (RFC 8628). A CLI or desktop app opens a request (POST /auth/device), the user approves it in the browser on a consent page (with a manual code-entry fallback), and the app polls the token endpoint (POST /auth/device/token) for a dbb_ key — no manual copy/paste from the web UI. Approval mints a key owned by the approving user; the key is delivered exactly once and never transits a browser URL, and the flow works over SSH/headless (#269) (5fa16ee).
  • auth: the login redirect now preserves the originally requested URL, so opening a deep link (such as the device consent page) while logged out returns you to that page after signing in instead of dropping you on the dashboard (#269).

0.18.0 (2026-07-21)

Lands the batch of work accumulated on local main in one squash-merged PR (#266) (421ceae); the individual changes are broken out below.

Features

  • user-groups: add user groups with full CRUD — new user_groups tables plus grant-definition scope columns (migrations + store).
  • grants: grant definitions can now be scoped to specific user groups and databases, surfaced through the API and a new UI admin page with scope pickers.
  • proxy,api,ui: add server connectivity testing — a POST /servers/{uid}/test endpoint with an opt-in inline check, a staged connectivity check that probes SSH bastions and DB targets (including an Oracle login probe), and a per-server "Test connection" action in the UI with staged feedback.

Bug Fixes

  • postgresql: resolve bind-parameter OIDs from ParameterDescription so prepared statements report correct parameter types.
  • proxy: guard the PostgreSQL, MySQL, Oracle and MongoDB proxy listeners with a mutex to fix an Addr/Start data race.
  • api: make test_connection optional in the database request schemas.
  • ui: render the breadcrumb separator as a sibling of the item so it aligns correctly.
  • docs: silence the baseUrl deprecation and fix React 19 JSX types in the website typecheck.

0.17.0 (2026-07-18)

⚠ BREAKING CHANGES

  • api: /api/v1/databases is renamed to /api/v1/servers (and /api/v1/ssh-servers is added for bastion management); no /databases alias is kept (#262) (7d5008b)

Features

  • grants: grant definitions can be flagged auto_approve — matching requests are instantly approved with no admin decision needed, with a required justification, a Slack notification without action buttons, and a dedicated audit trail (#262) (7d5008b)
  • ui: inline auto-approve toggle on the grant-definitions table, plus an "approve & enable auto-approve" action on pending grant requests (#262) (7d5008b)
  • proxy,store,api,ui: SSH tunnel support for upstream connections across all four proxied protocols (PostgreSQL, Oracle, MySQL, MongoDB) — the databases table/model is renamed to servers, gains a self-referencing via_uid for SSH bastions, and a shared pooled dialer with host-key TOFU routes upstream connections through the tunnel when configured (#262) (7d5008b)
  • ui: the "Databases" page becomes /servers, listing SSH bastions alongside database servers, with create/edit UI for SSH servers; /databases redirects to /servers (#262) (7d5008b)
  • api: creating a server, grant definition, or user with a name that already exists now returns 409 DUPLICATE_NAME instead of a generic error (#262) (7d5008b)
  • ui: the query detail breadcrumb now shows the connection it belongs to (#262) (7d5008b)
  • api,ui: connections now have a detail page, with connector access properly scoped (#262) (7d5008b)

Bug Fixes

  • api: block admin password change in demo mode (#257) (55d6ee1)
  • api: silence exhaustive lint on grant-status switch (#260) (83a5e14)
  • deps: update module github.com/go-mysql-org/go-mysql to v1.16.0 (#259) (c986832)
  • ui: the SSH server create dialog now includes ssl_mode/listable defaults in its payload (#262) (7d5008b)
  • store: the test-mode wipe now also drops the legacy databases table (#262) (7d5008b)
  • ci: pin the bun-version used in CI to avoid a setup-bun latest-tag lookup failure (#262) (7d5008b)
  • dev: make dev no longer depends on scripts/run-backend-dev.sh (#262) (7d5008b)

0.16.0 (2026-07-14)

Lands the batch of work accumulated on local main in one squash-merged PR (#255) (e6cbeeb); the individual changes are broken out below.

Features

  • oracle: upgrade legacy per-key-salt O5LOGON verifiers to the newer per-user-salt format automatically on successful login (#255)
  • api,ui: scope the API-key list to the caller's own keys by default, with an admin-only toggle (all_users) to review other users' keys (#255)
  • store,api,ui: add a configurable web_ui_url (falling back to cfg.PublicURL) and split the settings page's single port field into distinct HTTP/TCP listener fields, replacing hard-coded values (#255)
  • proxy: shared BuildUpstreamName helper encodes the dbbat user name into the upstream connection metadata (application_name / program_name / AUTH_PROGRAM_NM) for PostgreSQL, Oracle, and MySQL (#255)
  • proxy: shared LimitGuard enforces grant time/bandwidth limits mid-stream (not only between commands) across PostgreSQL, Oracle, and MySQL (#255)
  • grants: shared revocation registry — revoking a grant now blocks queries and disconnects live sessions across all three protocols (#255)
  • api,ui: global queries list now shows user, database, and connection columns (#255)
  • ui: replace the stale "PostgreSQL Proxy" subtitle with generic wording, since dbbat now proxies PostgreSQL, Oracle, MySQL/MariaDB, and MongoDB (#255)
  • store,postgresql,oracle,mysql: persist the bytes transferred by a query aborted mid-stream by a grant limit, so byte quotas stay accurate (#255)
  • mongodb: full MongoDB wire-protocol proxy (PLAIN-over-TLS + SCRAM upstream auth, command classification/enforcement, query + result logging, API/UI integration, mid-session revoke/quota rejection), plus phase-5 enhancements — stored per-user SCRAM-SHA-256 verifiers, configurable per-database authSource, loadBalanced support, OP_COMPRESSED compression, filtered listDatabases, and getMore cursor lineage linking (#255)

0.15.5 (2026-07-12)

Bug Fixes

  • oracle: migration name collision left users.protocol_data missing; don't mask store errors as user-not-found (#245) (f8e343c)

0.15.4 (2026-07-12)

Bug Fixes

  • oracle: per-user O5LOGON salts — any API key works for Oracle login (#243) (2b3e8c0)
  • oracle: shared-service-name resolution by grants + dbbat-name connect strings + dotted thin usernames (#242) (430e704)

0.15.3 (2026-07-12)

Implements seven backlog specs in one squash-merged PR (#240) (caa73cb); the individual changes are broken out below.

Features

  • ui: query detail breadcrumb now reads Queries › <sql-preview> — a link back to the queries list plus the first ~40 chars of the SQL — instead of a generic "Details"; the parent crumb now appears on every detail route and a bare UUID no longer collapses to "Details" (#240)
  • ui: grants list and grant-definitions always show the applied limits (9 / 100 queries, 169.8 MB / 1 GB) with a usage bar, a warning colour ≥80%, destructive ≥100%, and an explicit unlimited marker when no limit is set (#240)
  • api: rename the connection-URL password placeholder {API_KEY}{DBBAT_KEY} so it unambiguously names a dbbat-issued dbb_… token (#240)

Bug Fixes

  • ui: the grant-definition edit dialog now opens pre-filled with the definition's current values instead of an empty form (which silently blanked the definition on save) (#240)
  • ui: the "New Definition" dialog now opens blank on consecutive opens instead of retaining the previously-submitted values (#240)
  • oracle: surface grant/auth denials as a clean error — no active grant → ORA-01045, bad credentials → ORA-01017 — instead of tearing the socket down and letting the client report a generic ORA-12566 / ORA-03113 (root cause: the auth-reject frame used legacy TNS framing that v315+ clients misread) (#240)
  • oracle: rename the misleading isPrintableASCII helper (it only accepted the Oracle identifier set) and fix three latent call sites that truncated dotted usernames or rejected special-character passwords — the same class of bug as #235 (#240)

0.15.2 (2026-07-12)

Features

  • ui: hide the Active Connections stat card when there are none (#238) (242bd8c)

Bug Fixes

  • deps: update docusaurus monorepo to v3.10.2 (#236) (25f4adb)
  • oracle: harden Phase 2 rewrite against big-CLR-chunk connect strings (#238) (242bd8c)

0.15.1 (2026-07-10)

Bug Fixes

  • ci: prevent shell injection from commit message in image workflow (#233) (a436a05)
  • oracle: handle dotted usernames in OCI/sqlplus auth (both phases) (#235) (d822022)

0.15.0 (2026-07-09)

Implements five backlog specs in one squash-merged PR (#230) (42c4e37); the individual changes are broken out below.

Features

  • ui: admin user-management UI — edit users and promote/demote admin rights from the users page, guarded so the last admin can't be demoted or deleted (UI lock plus a backend 409 on update/delete) (#230)

Bug Fixes

  • oracle: make sqlplus / OCI instant client work through the proxy — root-caused the long-standing stall to a malformed wide-encoding AUTH challenge (not the TCP-urgent OOB break probe that was long assumed), fixing four wide-encoding bugs; works even over an OOB-dropping network path (#230)
  • config: accept the documented DBB_SLACK_SIGNING_SECRET env var for the Slack signing secret, with the legacy DBB_SLACK_NOTIFY_SIGNING_SECRET kept as an accepted alias (canonical wins if both are set) (#230)

Documentation

  • document the three Slack interactivity deployment shapes and Socket Mode (DBB_SLACK_NOTIFY_APP_TOKEN) for gated deployments, plus a startup warning when the inbound endpoint must be reachable from Slack (#230)
  • document HTTPRoute (Gateway API) exposure on the website and fix the Docusaurus build (#230)

0.14.0 (2026-07-08)

Features

  • api: add Slack interactive grant approval (Approve/Deny buttons) (#223) (516d4ca)
  • api: add Slack Socket Mode transport for Approve/Deny interactions (#229) (d1d33d4)

Bug Fixes

  • deps: update module golang.org/x/crypto to v0.54.0 (#226) (d53ede1)
  • deps: update module golang.org/x/text to v0.39.0 (#221) (c10f410)
  • deps: update module golang.org/x/text to v0.40.0 (#225) (abf43ff)

0.13.0 (2026-07-05)

Features

  • add Gateway API HTTPRoute support to the Helm chart (#218) (1de8a62)
  • oracle: modern client support — sqlplus/OCI auth, SQLcl result capture, verifier-18453 (#205) (a9858f6)
  • oracle: type-aware row & value capture with describe-record parser and bind extraction (#195) (933a91e)

Bug Fixes

  • ci: restore unified dbbat-proxy service (pg+oracle+mysql) (#220) (7bd9aa0)
  • deps: update module github.com/jackc/pgx/v5 to v5.10.0 (#190) (d6a86c5)
  • deps: update module github.com/knadh/koanf/v2 to v2.3.5 (#187) (88f286e)
  • deps: update module github.com/slack-go/slack to v0.24.0 (#184) (c532e11)
  • deps: update module github.com/slack-go/slack to v0.25.0 (#191) (b6d2b01)
  • deps: update module github.com/slack-go/slack to v0.26.0 (#200) (5d72fc1)
  • deps: update module github.com/slack-go/slack to v0.27.0 (#210) (294d902)
  • deps: update module github.com/urfave/cli/v3 to v3.10.0 (#201) (02d077e)
  • deps: update module github.com/urfave/cli/v3 to v3.10.1 (#211) (76d52b9)
  • deps: update module github.com/urfave/cli/v3 to v3.9.1 (#196) (78b61fa)
  • deps: update module golang.org/x/crypto to v0.52.0 (#180) (eadd0ba)
  • deps: update module golang.org/x/crypto to v0.53.0 (#194) (0566f88)
  • deps: update testcontainers-go monorepo to v0.43.0 (#203) (6d9e06f)

0.12.0 (2026-05-15)

Features

  • ui: add favicon from logo-notext.png (#171) (35d82ba)

Bug Fixes

  • dev: fix dev mode routing so DBB_REDIRECTS proxy works without built frontend (#173) (cb945d5)
  • ui: fix favicon path and point preview at port 4200 (#175) (863d123)

0.11.0 (2026-05-15)

Features

  • db: add listable flag to databases (#166) (c23c179)
  • grant definitions, grant requests, Slack notifications, global settings, connection URLs, auth fixes (#168) (5136fc6)

Bug Fixes

  • deps: update module github.com/urfave/cli/v3 to v3.9.0 (#163) (3a320b2)
  • ui: avoid setState-in-effect in PublicAdvertisementSection (#169) (7c036fb)

0.10.1 (2026-05-11)

Bug Fixes

  • auth: re-creation of Slack-authenticated users after deletion (#161) (a68af3a)

0.10.0 (2026-05-10)

Features

  • grants: grant request workflow with Slack notifications and auto-refresh (#157) (743fe20)
  • proxy: PostgreSQL upstream TLS and SCRAM-SHA-256 auth (#154) (196d5cc)

Bug Fixes

  • config: default Slack notify channel to #dbbat (#159) (d47eba2)
  • deps: update module github.com/knadh/koanf/parsers/toml/v2 to v2.2.1 (#158) (616a10f)
  • deps: update module github.com/slack-go/slack to v0.23.1 (#160) (7d732e2)
  • deps: update module golang.org/x/crypto to v0.51.0 (#155) (7e04182)
  • deps: update module golang.org/x/text to v0.37.0 (#152) (58b3265)
  • grants: populate query_count and bytes_transferred + UI polish (#156) (e63de8c)

0.9.0 (2026-05-08)

Features

  • oracle: customHash mode in O5LOGON server (#143) (ff1a700)
  • oracle: derive combined key for empty-AUTH_PASSWORD path (#148) (ce4bb2c)
  • oracle: forward client's actual Phase 1 to upstream (#138) (126caa1)
  • oracle: forward client's actual Phase 2 to upstream (#144) (ebc9df1)

Bug Fixes

  • oracle: trim AUTH challenge end-marker to 33 bytes (SQLcl unblocks) (#150) (189f011)
  • oracle: unbreak upstream auth parser; patch AUTH_SVR_RESPONSE (#136) (db28eb6)

0.8.0 (2026-05-06)

Features

Bug Fixes

  • api: fold accents in Slack OAuth username generation (#130) (08b7fd7)
  • oracle: use user_id_len for structured Phase 1 username parsing (#134) (5593564)

0.7.0 (2026-05-06)

Features

  • proxy: add MySQL/MariaDB proxy with caching_sha2_password and TLS (#112) (b916818)
  • proxy: harden MySQL upstream against LOCAL INFILE + verify binary row capture (#115) (4a17b6f)
  • proxy: Oracle terminated auth — go-ora end-to-end working (#118) (3a27833)
  • proxy: wire up MySQL session packet dumps (#116) (f7a81b8)

Bug Fixes

  • deps: update docusaurus monorepo to v3.10.1 (#122) (102bd08)
  • deps: update module github.com/go-mysql-org/go-mysql to v1.15.0 (#128) (ad6b2a3)
  • deps: update module github.com/go-sql-driver/mysql to v1.10.0 (#132) (14be368)
  • deps: update module github.com/jackc/pgx/v5 to v5.9.2 (#108) (b837285)
  • proxy: keep relay socket through AUTH so SQLcl avoids ORA-03120 (#129) (a23c060)

0.6.0 (2026-04-15)

Features

  • proxy: activate Oracle terminated auth with O5LOGON and API keys (#105) (d90d64e)

0.5.2 (2026-04-14)

Bug Fixes

  • auth: redirect OAuth callback to /login route instead of root (#103) (842b5ba)

0.5.1 (2026-04-14)

Bug Fixes

  • config: remove redundant slack_ prefix from SlackAuthConfig koanf tags (#101) (e3882cd)

0.5.0 (2026-04-14)

Features

  • proxy: API key auth for PG proxy, Oracle auth, and Oracle SERVICE_NAME handling rewrite (#79) (83858a1)

Bug Fixes

  • deps: update dependency zod to v4 (#91) (c92061a)
  • deps: update docusaurus monorepo to v3.10.0 (#89) (a6c417c)
  • deps: update module golang.org/x/crypto to v0.50.0 (#93) (13a91fa)
  • deps: update testcontainers-go monorepo to v0.41.0 (#88) (79fecd7)
  • deps: update testcontainers-go monorepo to v0.42.0 (#94) (9977e30)

0.4.0 (2026-04-04)

Features

  • proxy: Add a first draft of Oracle support (#75) (908abbb)
  • proxy: Oracle session TNS dump capture (#78) (7e0b45a)

Bug Fixes

  • ci: autoupdate (#57) (bb9b9ad)
  • deps: update dependency openapi-fetch to ^0.16.0 (#68) (567412d)
  • deps: update module github.com/knadh/koanf/v2 to v2.3.2 (#59) (9b57552)
  • deps: update module golang.org/x/crypto to v0.48.0 (#69) (ff7856b)
  • resolve test races, E2E error format, and lint issues (#77) (c95b303)

0.3.0 (2026-01-24)

Features

  • api: add admin password reset endpoint (#51) (529fc92)
  • ui: add quota fields to grant creation form (#49) (626fa90)

Bug Fixes

  • deps: update dependency lucide-react to ^0.563.0 (#48) (e7ca0b6)
  • deps: update module github.com/knadh/koanf/v2 to v2.3.1 (#52) (8b26ec9)
  • deps: update module github.com/urfave/cli/v3 to v3.6.2 (#46) (32684fe)
  • reduce argon2id memory and protect admin in demo mode (#50) (fc90f6d)
  • test: remove flaky toBeDisabled assertions in E2E tests (#54) (2dc8e1a)

0.2.0 (2026-01-13)

Features

  • ui: add time precision to grant date inputs (#39) (e465e2c)

Bug Fixes

  • deps: update module github.com/knadh/koanf/parsers/toml to v2 (#35) (7c56f99)
  • deps: update module github.com/knadh/koanf/parsers/toml to v2 (#37) (767bcc8)
  • deps: update module github.com/knadh/koanf/providers/env to v2 (#38) (bfe821c)

0.1.0 (2026-01-12)

Features

  • config: add configurable log level with strict sloglint compliance (#31) (51fa451)

Bug Fixes

  • deps: update module golang.org/x/crypto to v0.47.0 (#34) (c18a454)

Performance Improvements

  • auth: extend AuthCache to API key and web session verification (#32) (fa21f84)

0.0.2 (2026-01-11)

Bug Fixes

  • use PAT for release-please to trigger release workflow (#28) (1566de4)

0.0.1 (2026-01-11)

Bug Fixes

  • ui: handle 401 errors by redirecting to login page (#24) (b8d205c)

Performance Improvements

  • auth: implement password verification cache and configurable hash parameters (#25) (ea0dd0b), closes #22