Skip to content

DBMason v0.2.1

Latest

Choose a tag to compare

@bestmaa bestmaa released this 22 Jul 16:10
Immutable release. Only release title and notes can be modified.
6d956d8

DBMason v0.2.1

DBMason v0.2.1 is the first stable release of the PostgreSQL + MySQL management surface. It supersedes the preserved but unpublished v0.2.0 release candidate and fixes its fail-open container health response.

Highlights

  • isolated PostgreSQL 17 and MySQL 8.4 LTS adapters with engine-owned SQL, identifiers, observability, lifecycle, and test harnesses
  • create databases and least-privileged PostgreSQL roles or canonical MySQL user@host accounts
  • read/write access presets, login enable/disable, one-time password creation/rotation, safe principal deletion, and explicit effective-access warnings
  • guarded read-only catalog, relation browser, and SQL workspace using the restricted account rather than the saved administrator
  • engine-native observability; host CPU/RAM remains honestly marked as requiring an external provider
  • encrypted saved credentials, Payload RBAC, exact-origin CSRF, SSRF/host policy, bounded concurrency/body/results, safe audit events, and non-root hardened Docker runtime
  • complete operator, architecture, security, contribution, adapter, testing, release, and screenshot documentation

v0.2.1 health correction

GET /api/health now validates the runtime environment, initializes Payload and production migrations, and reads the control-plane schema. It returns only detail-free 200 {"status":"ok"} or 503 {"status":"unhealthy"}. Concurrent requests share one probe and only its boolean result is cached for five seconds.

This prevents orchestrators from routing traffic to an instance with invalid secrets or unavailable SQLite storage. The v0.2.0 candidate tag and image remain immutable for provenance, but its GitHub release was never published.

Install

Copy .env.example to .env, generate unique secrets as documented in the README, then set:

DBMASON_IMAGE=ghcr.io/bestmaa/dbmason:0.2.1
docker compose pull
docker compose up -d --no-build

For reproducible deployments, pin the verified digest shown below after publication:

ghcr.io/bestmaa/dbmason@sha256:5721f21d9460f8691161d43316f3b3a6273b00780870242497aa98e97af729e3

Source commit: 6d956d8ce0535cac6be69ad8312f28db5972ebe1

Build attestation: https://github.com/bestmaa/dbmason/attestations/36594737

Release workflow: https://github.com/bestmaa/dbmason/actions/runs/29934886126

Upgrade

  1. Back up the SQLite control-plane volume.
  2. Pull the v0.2.1 image or its exact digest.
  3. Recreate the app container with the same persistent volume and valid environment.
  4. Wait for /api/health and Docker health to report healthy, then verify owner login and each saved connection.

The initial committed Payload migration is applied during startup. Remote PostgreSQL/MySQL grants and objects are authoritative server state and are not stored only in SQLite.

Rollback

Do not move or delete release tags. Stop v0.2.1, restore the SQLite backup if required, and run the prior immutable digest. Restoring SQLite does not reverse remote database mutations; use DBMason audits plus engine-native backups/change procedures. Publish a new patch for any correction.

Known limitations

  • PostgreSQL access presets currently target the public schema; MySQL presets target one selected database.
  • saved administrator credential rotation/connection editing, write/DDL workspaces, query history, backups, and HA control-plane storage are not included.
  • CPU/RAM host telemetry requires a separately secured external provider; DBMason does not mount the Docker socket.
  • DNS resolution has no independent cancellation deadline; global operation limits still bound concurrency.
  • the local MySQL harness disables TLS, so certificate/SAN behavior is unit-tested rather than claimed as live-certificate evidence.

See the README, user guide, validation report, security policy, and changelog in the tagged source for the complete boundaries and evidence.