Skip to content

0.16.1

Choose a tag to compare

@cevheri cevheri released this 19 Sep 19:37
· 44 commits to main since this release
Immutable release. Only release title and notes can be modified.

Three images, not one

Every tag now ships on three bases. This is the first release to publish them, so 0.16.1 has two siblings:

Tag Base Drivers Why you would pick it
0.16.1 node:26.8.2-trixie-slim (glibc) all, Oracle Thin and Thick the default, and the only one Oracle Thick mode can be layered onto
0.16.1-alpine node:26.8.2-alpine3.23 (musl) all, Oracle Thin only the same product with far fewer OS findings: Trivy 0.73.0 on 2026-09-15 scored the Debian base 3 CRITICAL / 52 HIGH against 0 / 2 for the Alpine base
0.16.1-alpine-slim alpine:3.23 with Alpine's own nodejs all except DuckDB smallest; the only variant that trades a feature for size

latest, latest-alpine and latest-alpine-slim move with this release, and the immutable sha- tags carry the same suffixes. -alpine is the same product as the default image. -alpine-slim drops the DuckDB driver and sharp, and opening a DuckDB connection on it answers with a message naming the tags that do carry it, rather than failing as if the engine were unreachable. Oracle Thick mode needs Oracle Instant Client, which has no musl build.

None of the three carries the application source any more: all of them prune the repo-root extras that Next's output file tracing used to sweep into the payload.

docs/DISTRIBUTION.md#image-tag-model has the full table. The Helm chart's default stays the Debian tag; set image.tag to a suffixed tag to pin a variant.

An inline cell edit is written to the row you edited

The grid keyed a revealed cell to the position it sat at rather than to its row, so an edit made after a sort or a refresh could be written to a different row. That and eight further defects were measured on live engines and fixed together, across the SQLite, libSQL and MySQL paths: 64-bit integers that lost precision, an UPDATE whose target table was resolved from the wrong statement, and a MySQL two-argument LIMIT that the editor read as two tables rather than one.

A container that cannot serve a login says so at boot

With AUTH_BOOTSTRAP off and no JWT_SECRET set, the server started, passed its own liveness probe, and answered every single login with a 503. The deployment read as healthy while nobody could get in, which is the hardest shape of this to diagnose. In production that combination now prints what is missing and exits.

Agent mode on SQL Server

Agent mode executes statements on SQL Server, the fourth engine it reaches. The principal refusal is now split by which way it is repaired, so a run that stops tells you whether to change the connection or the request.

Seed connection credentials from HashiCorp Vault

A seed connection can resolve its credentials from Vault instead of carrying them in the seed file. The README documents the one-command demo stack.

Liveness answers on three paths

GET /health and GET /api/health answer beside /api/db/health, so a platform whose probe path is not configurable has one to reach. The chart probes are unchanged.

Also in this release

  • Schema diff compares against the live schema rather than the cached copy, and drops the previous connection's objects when the connection changes.
  • The object browser lists tables on a PostgreSQL-wire engine whose pg_class reports no reltuples, where the row used to read as an empty table rather than as an uncounted one.
  • The column profiler stops labelling every column with the numeric icon.
  • Icon-only buttons in the sidebar and the grid toolbars carry accessible names, and the schema tree's table actions button names its table.
  • The Admin Audit tab discloses that it shows application-recorded denials only, not the ones the proxy records, and an Operations table row names its schema.
  • The admin health gauges get a theme-aware track.
  • An LLM stream no longer consumes its source iterable after the consumer cancels.
  • The Koyeb deploy button no longer ships a working secret and password.
  • The DigitalOcean image writes its env file under umask 077 and installs it atomically.
  • docs/SECURITY.md documents HSTS_INCLUDE_SUBDOMAINS, the RATE_LIMIT_* budgets, and TRUST_PROXY_HEADERS / TRUSTED_PROXY_HOPS beside the rate-limit keying limitation.
  • The release now publishes a checksum beside the snap packages and the SBOM.

Helm chart: 0.1.66

Tracks app release 0.16.1. No packaged template, value or default moves. artifacthub.io/containsSecurityUpdates is false for this version: the changes above are correctness and startup behaviour, not a weakness.

helm repo add libredb https://libredb.org/libredb-studio/
helm upgrade --install libredb-studio libredb/libredb-studio --version 0.1.66

Contributors

This release carries work from @yusuf-gundogdu, @De-pitcher, @Lingikaushikreddy, @Anikesh348, @tunglambk, @hbasria, @DevvoLazza, @JavierparraDev, @Matthew-Selvam, @kaya-abdullah, @linropx, @nawazish2, @sloemo01, @xiechimon and @cevheri.

The Alpine image variants came from @hbasria in #959, reported @RyanHamel-Zayo

thanks other reporters: @nktnet1 , @nycjay

Full changelog: 0.16.0...0.16.1