Founder run: entry (2 versions) deleted, operators/nextcloud/backup unchanged, one-shot token revoked and policy deleted, no value read. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 469992@bnt-lap001 Assistant-Session: e4b8e420-df0a-441d-83ae-7f19130594d9
2.6 KiB
| id | type | title | domain | repo | status | owner | topic_slug | created | updated | state_hub_workstream_id |
|---|---|---|---|---|---|---|---|---|---|---|
| RPF-WP-ADHOC-2026-10-10 | workplan | Retire the deprecated operators/nextcloud credential | financials | railiance-platform | finished | claude-code | railiance | 2026-10-10 | 2026-10-10 | 2d2c3bd2-d05b-5adc-9559-4d6bb360b751 |
RPF-WP-ADHOC-2026-10-10 — retire operators/nextcloud
Delete the deprecated base entry, keep operators/nextcloud/backup
id: RPF-WP-ADHOC-2026-10-10-T01
status: done
priority: low
state_hub_task_id: "d7b91134-13cf-55b8-9291-14efca9465d6"
The founder confirmed on 2026-10-10 that operators/nextcloud (the base entry)
is a deprecated credential to remove. The live backup account stays at
operators/nextcloud/backup. The delete cannot be done from the UI by design:
operator-custody is delete-free and platform-admin has no grant on the
operators mount (openbao/policies/operator-custody.hcl).
scripts/operators_entry_retire.py does it without granting anything standing.
As platform-admin it writes a one-shot policy (read/delete on
operators/metadata/nextcloud, read on the backup sibling's metadata,
revoke-self) and mints a 60s, 8-use orphan token holding only that policy. It
proves the entry and the sibling exist, then metadata-deletes the entry with that
token. It then proves the entry is absent and the sibling unchanged, revokes the
token and deletes the policy on every path. It prints nothing and reads no value.
7 offline tests.
cd ~/railiance-platform && git pull --ff-only
export BAO_ADDR=http://127.0.0.1:18200 VAULT_ADDR=http://127.0.0.1:18200
unset BAO_TOKEN VAULT_TOKEN
W='warden access openbao-platform-admin-login --exec --'
$W python3 scripts/operators_entry_retire.py --dry-run --confirm 'RETIRE operators/nextcloud' --receipt ~/operators-nextcloud-dry.json
cat ~/operators-nextcloud-dry.json
$W python3 scripts/operators_entry_retire.py --confirm 'RETIRE operators/nextcloud' --receipt ~/operators-nextcloud-retire.json
cat ~/operators-nextcloud-retire.json
Done when: the receipt says retired, with sibling_after equal to
sibling_before, token_revoked and policy_deleted true; and ops-mason drops
operators/nextcloud from its custody descriptions.
2026-10-10 done: the founder ran the dry run and then the retirement. Outcome
retired: operators/nextcloud (2 versions) was deleted, and
operators/nextcloud/backup is unchanged (v2, 2 versions). The token was
revoked and the one-shot policy deleted; no value was read. Evidence:
docs/evidence/2026-10-10-operators-nextcloud-retire.json. ops-mason was told
to drop the entry from its custody descriptions.