The OpenBao policy matches the reviewed file. Both publisher KV paths are still empty because the bootstrap key cannot create IAM applications. Assistant: grok Assistant-Session: 01a11cdb-f9fe-7011-947c-936e72007e54
2.5 KiB
Backup publisher pair custody — preview, 2026-10-08
RPF-WP-0053-T06. The node reader in scripts/application_backup_credentials.py
can deliver an already stored pair. It cannot create one. Warden's paste-once
desk writes one field per PUT and would drop the other half of
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY.
scripts/application_backup_pair_custody.py is the prepared front door for
both draft records:
| Application | CCR | KV path |
|---|---|---|
| coulomb-social | CCR-2026-0036 | platform/workloads/coulomb-social/backup-primary |
| email-connect | CCR-2026-0037 | platform/workloads/email-connect/backup-primary |
Default command:
python3 scripts/application_backup_pair_custody.py --application email-connect
The preview reads the draft CCR and prints field names, CAS 0 and one intended
write. writer_admitted is false. There is no stdin, provider call, OpenBao
call, key generation, file write or timer change.
provision() is the future attended shape, covered by synthetic tests only:
- writer token policies must be exactly
backup-pair-writer, with no default policy and noworkload-kv-read-*-backup-primaryreader policy - TTL at most 5 minutes and at most 2 uses, then revoke
- metadata absence is required; an existing version is not overwritten
- one HTTP-style body carries
cas: 0and both fields - the receipt keeps version and request id, never the values
The founder admitted this identity on 2026-10-08. The words used were
"bucket-pair-writer"; the OpenBao policy name is backup-pair-writer.
No implemented SecurityCaseType covers the pair: workload-kv-read is still
only an inventory candidate, and ops-mason can survey structure but cannot
write it. The attended install is scripts/install-backup-pair-writer.sh.
The installed policy matches the file
(86e435900bc6912fada10c526bfa865127a0e28acd328cf5f5f69e8d62bda310), so
WRITER_ADMITTED is true. The command-line preview still does not write.
Both KV paths are absent. The bootstrap key is denied IAM application and
policy list (HTTP 403), so it cannot create the two publisher applications.
The live bucket policy resource-control-scoped-backup allows one principal,
application_id:ee80333e-5bab-4a04-85a9-5bdb46b7b3c1, under platform-pg/*,
including object delete. No second application was added and no key was
stored. CCR-2026-0036 and CCR-2026-0037 stay draft. The next founder act is
creating the two IAM applications in the console, then one CAS=0 write each.