Claude Transcripts docs GitHub
Work in progressUnder active development — not tested as ready for use. Breaking changes land without notice, stored data may need to be discarded between revisions, and there is no auth or security model. These docs describe the intended design as much as the current state.

20. Bundled backing services default to no auth

Date: 2026-06-18

Status

Accepted — amended 2026-07-27: CouchDB is a forced exception, see Amendment below.

Context

Tier 1 is single-user, single-machine, localhost-only, with no security concern by design (ADR 0015). When the backends are the project's bundled Docker Compose stack, requiring the operator to generate and manage CouchDB passwords, an S3 access/secret key, and a Meilisearch master key is pure setup friction for zero benefit — there is no untrusted party on a localhost Tier-1 box.

Decision

When the backends are the bundled stack (deploy/), they default to no authentication — no tokens, keys, or passwords for the operator to supply:

External backends are unaffected — they use whatever auth they're configured with, supplied via .env (COUCHDB_*, S3_*, search keys). Real auth/security is a Tier 3 concern, introduced with the public/multiplayer release.

Consequences

Amendment: CouchDB 3 cannot run without an admin

2026-07-27. The decision above assumed CouchDB could run in "admin party" mode. It cannot: CouchDB 3.0 removed it, and the official image refuses to start without COUCHDB_USER / COUCHDB_PASSWORD, printing

ERROR: CouchDB 3.0+ will no longer run in "Admin Party" mode.

and crash-looping. This was not caught until the first end-to-end install, where it surfaced as an opaque 500 from the webapi — the store the whole system is built on had never started.

The bundled stack therefore ships a fixed default admin (admin / admin, overridable in .env) instead of no auth. The spirit of the decision is kept — the operator still generates and manages nothing — but "no credential at all" is factually impossible here, so the honest description is: the bundled stack supplies credentials the operator doesn't have to think about, exactly as it already did for Garage's baked-in key.

Two related consequences: