secrets: add admin_app_db_password to Salt pillar (gates #302 apply) #308
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/pal-e-platform!308
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "306-admin-app-salt-pillar"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Adds
admin_app_db_passwordto the Salt pillar, GPG-encrypted tosalt@pal-e.local(key81A03D1CF874DC90). Unblocks the apply of #302/#304 — the Makefile'sTF_SECRET_VARSalready references this key but the pillar entry was missing.Changes
salt/pillar/secrets/platform.sls— addedadmin_app_db_passwordblock (32-byte base64, GPG-armored), mirroring thepaledocs_db_passwordsibling pattern (lines 281-298).salt/pillar/secrets_registry.sls— registry metadata entry (origin: generated, rotation_days: 90).Test Plan
python3 yaml.safe_loadparses both files cleanlygrepreturned nothing)hQIMA4GgPRz4dNyQprefix = key81A03D1CF874DC90)make tofu-secretsshould produce asecrets.auto.tfvarscontainingadmin_app_db_password = "...", allowing #302 terraform apply to proceed.Review Checklist
salt-call --local pillar.get secrets:platform:admin_app_db_passwordpaledocs_db_password) followed exactly — same#!yaml|gpgrenderer, same indentation, same recipientsecrets_registry.slswith origin/rotation/notesCI Note
Salt pillar changes do not trigger
tofu plan, so this PR should be unaffected by the known #307 plan-step shell-quoting bug. If CI fails on the plan step regardless, treat as a #307 false positive.Related Notes
paledocs_db_passwordinsalt/pillar/secrets/platform.sls(lines 281-298)PR #308 Review
DOMAIN REVIEW (Salt pillar / GPG-encrypted secrets)
Verified against sibling pattern (
paledocs_db_passwordat lines 281-298 ofsalt/pillar/secrets/platform.sls):admin_app_db_passwordkey sits inside the samesecrets: platform:map under the existing#!yaml|gpgrenderer — no new shebang, correct.paledocs_db_password. YAML parses cleanly.-----BEGIN PGP MESSAGE-----, blank line, base64 body, CRC24 checksum (=4bF4),-----END PGP MESSAGE-----. Well-formed.hQIMA4GgPRz4dNyQmatches the recipient prefix on every other entry in the file → encrypted to key81A03D1CF874DC90(salt@pal-e.local). Correct.paledocs_db_password(not a copy-paste of an existing encrypted value).secrets_registry.slsentry mirrorspaledocs_db_password's schema (origin/description/created/rotation_days/notes).created: '2026-04-25',rotation_days: 90. Clean.BLOCKERS
None.
Plaintext-leak check
Diff contains only the armored PGP block — no base64 outside the BEGIN/END envelope, no
.env,.gpg,.txt, scratch, or test files. No collateral changes outside the two pillar files. Clean.Sibling-pattern fidelity
1:1 with
paledocs_db_password. Renderer, indentation, recipient, registry schema all match.Consumer side (Makefile)
TF_SECRET_VARSon line 51 ofMakefilealready includesadmin_app_db_password(alongsidepaledocs_db_password).tofu-validate-secretswill now pass; previously it would have failed with "Missing secrets in pillar: admin_app_db_password". This PR is the missing producer half — gates #302 / #304 apply as advertised.NITS
notessays "Added PR for #306" — minor wording inconsistency vs sibling style ("Added PR #23"). Non-blocking; PR number isn't known at authoring time.SOP COMPLIANCE
306-admin-app-salt-pillar)story:admin-row-crud) and arch (arch:salt) labelsCloses #306presentPROCESS OBSERVATIONS
Tight, surgical PR. Producer/consumer split is correct: the Makefile-side reference was added previously without the pillar entry, which would have caused a deferred failure at apply time. This PR closes that loop. Post-merge verification step (
make tofu-secretsshould now emitadmin_app_db_password = "...") is the right gate before #302 apply — don't skip it.VERDICT: APPROVED