Changelog
v0.5.2
Released 22 April 2026.
The agent becomes a daemon. The dashboard learns to drive it.
Agent
Added
- AddedProduction CLI shape:
dbcrate enroll(one-shot, token → identity) anddbcrate run(daemon), plusdbcrate version. Re-enrolling is a deliberate operator gesture — the identity directory must be removed first. - AddedIdentity: Ed25519 keypair generated on the host, CSR built locally, certificate persisted alongside SQLite-backed durable state so in-flight job rows and identity survive a host restart.
- AddedmTLS HTTP client that fetches identity per request and rotates on renewal.
- AddedDaemon: heartbeat loop, state machine, halt-on-401, graceful shutdown that drains the worker pool.
- AddedWorker pool: bounded-concurrency executor with a durable lifecycle; a recoverer reconciles stale in-flight rows on startup.
- AddedCommand handlers for
run_backupandrun_restore, plus result-reporting endpoints (PostBackup,PostRestore) that carry structured failure reasons back to the control plane. - AddedCertificate renewal goroutine, with a
ShouldRenewAtdecider and a renewal RPC that obtains a fresh certificate well before expiry.
Control plane
Added
- AddedDatabase creation wizard. Five steps — connection, agent pick-or-install, storage destinations (one primary, optional mirrors), schedule rules, review — with the agent step live-polling for fresh heartbeats so the operator can watch a freshly installed agent come up in the same tab.
- AddedStorage destination probe: an end-to-end
head_bucket→put_object→get_object(with byte match) →delete_objectsweep, run synchronously at submit and exposed as an HTMX endpoint for the “Test now” button. Results are cached on the destination. - AddedExpanded storage form to every S3-compatible provider with a tested config, plus a generic custom-endpoint option.
- AddedAgent certificate renewal endpoint and a CRL endpoint.