mirror of
https://github.com/shankar0123/certctl.git
synced 2026-06-07 16:41:36 +00:00
6d0f7747df
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