Fix admin CLI Compose secret-file resolution #113

Merged
lost-rob0t merged 6 commits from agent/issue-112-admin-file-secrets into master 2026-08-24 08:57:50 +00:00
lost-rob0t commented 2026-08-24 08:45:07 +00:00 (Migrated from github.com)

Closes #112

Problem

docker exec <star-server> /bin/star-server admin ... bypasses docker/star-server-entrypoint.sh. Compose supplies server credentials through *_FILE variables, but docker/star-server-init.lisp refreshed the dumped runtime settings only from the corresponding plaintext environment variables. Normal start appeared correct only because the container entrypoint first copied secret-file contents into plaintext variables.

Fix

  • make the container runtime init use the existing environment-secret resolver for CouchDB, RabbitMQ, auth pepper, and auth bootstrap secrets;
  • preserve direct-value precedence and the current runtime-value fallback;
  • cover the real failure path in the repository stack test by running docker compose exec -T star-server /bin/star-server admin user list after bootstrap while Compose provides the credentials through mounted *_FILE secrets.

TDD / verification trail

  • The first unit-level regression guard exposed that source inspection was the wrong boundary and was removed rather than kept as a brittle test.
  • The final regression is end-to-end at the Compose/admin boundary from #112.
  • Do not merge unless the exact PR head passes the repository-native CI/test gates.
Closes #112 ## Problem `docker exec <star-server> /bin/star-server admin ...` bypasses `docker/star-server-entrypoint.sh`. Compose supplies server credentials through `*_FILE` variables, but `docker/star-server-init.lisp` refreshed the dumped runtime settings only from the corresponding plaintext environment variables. Normal `start` appeared correct only because the container entrypoint first copied secret-file contents into plaintext variables. ## Fix - make the container runtime init use the existing `environment-secret` resolver for CouchDB, RabbitMQ, auth pepper, and auth bootstrap secrets; - preserve direct-value precedence and the current runtime-value fallback; - cover the real failure path in the repository stack test by running `docker compose exec -T star-server /bin/star-server admin user list` after bootstrap while Compose provides the credentials through mounted `*_FILE` secrets. ## TDD / verification trail - The first unit-level regression guard exposed that source inspection was the wrong boundary and was removed rather than kept as a brittle test. - The final regression is end-to-end at the Compose/admin boundary from #112. - Do not merge unless the exact PR head passes the repository-native CI/test gates.
Sign in to join this conversation.
No description provided.