Files
certctl/deploy
shankar0123 4737fff71d fix(compose): set CERTCTL_DEMO_MODE_ACK=true in demo compose (cold-DB smoke fix)
The cold-db-compose-smoke job (Auditable Codebase Bundle item 6) fired
on first run and surfaced a real bug: certctl-server fail-fasts at
startup with:

  Failed to load configuration: CERTCTL_AUTH_TYPE=none with non-loopback
  CERTCTL_SERVER_HOST="0.0.0.0" requires CERTCTL_DEMO_MODE_ACK=true to
  acknowledge that every request will be served as the synthetic admin
  actor `actor-demo-anon`.

Root cause: the 2026-05-10 HIGH-12 closure (Fix 11) added the
fail-fast guard in internal/config/config.go::Validate() but did NOT
update deploy/docker-compose.yml to provide the explicit ACK. The
clean default compose IS the bundled demo path
(CERTCTL_AUTH_TYPE=none + KEYGEN_MODE=server + DEMO_SEED=true per the
inline comments on lines 137-143), so the ACK is correct here by
design.

Latent in master since the HIGH-12 fix landed. Nobody hit it because
warm containers + warm DBs masked the boot-time validation. The
cold-DB compose smoke caught it on the first true cold-boot run —
exactly the bug class it was built for.

Fix:
  - Add CERTCTL_DEMO_MODE_ACK: "true" to the certctl-server env block
    in deploy/docker-compose.yml.
  - Add a head-comment explaining why the ACK is correct in this
    compose (it IS the demo path) and that production deploys override
    AUTH_TYPE + KEYGEN_MODE + DEMO_SEED + DEMO_MODE_ACK via their own
    compose.

Verified:
  - YAML parse clean.
  - scripts/ci-guards/complete-path-config-coverage.sh green (194
    env vars; new CERTCTL_DEMO_MODE_ACK reference in deploy/ counts
    as a consumer).

Audit-Closes: post-v2.1.0-anti-rot/item-6
Audit-Closes: audit-2026-05-10/HIGH-12-followon
2026-05-12 14:58:16 +00:00
..