Add audit recovery exercise preflights
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a02669-87ee-7a31-b111-edc95a16e0fa
This commit is contained in:
codex 2026-08-22 13:16:13 +02:00
parent dca3d87994
commit bd25f7fa40
7 changed files with 684 additions and 7 deletions

View file

@ -87,7 +87,7 @@ passed. Live projection and cleanup remain waiting for the attended window.
```task
id: RAILIANCE-WP-0024-T02
status: todo
status: progress
priority: high
state_hub_task_id: "caba7fcd-014e-5253-87f7-6993731cb0c4"
```
@ -101,11 +101,23 @@ restart. Record preconditions, time bounds, abort conditions, and rollback.
Done when the procedure proves the property claimed by audit-core's credential
reader without exposing a username/password or affecting non-synthetic data.
**Procedure implementation (2026-08-22):**
`docs/audit-core-database-lease-recovery.md` fixes the exact consumer, lease,
database, synthetic-load, owner, time-bound, abort, and value-safe evidence
contract. It requires matching the current lease internally while retaining
only its non-usable handle, proving health 200/readiness 503/retryable request
503 after revocation, forcing only the database ExternalSecret, and proving
recovery with the same pod UID and restart count. The read-only helper
`scripts/audit-core-recovery-preflight.py database-lease` passed live automated
checks without observing Secret data. The live revocation still waits for an
approved window, audit-core/rapp-postgres acknowledgement, a separately
approved synthetic-load contract, and a named abort operator.
## T03 — Define the coordinated railiance01 reboot exercise
```task
id: RAILIANCE-WP-0024-T03
status: todo
status: progress
priority: high
state_hub_task_id: "09cf4065-4f8a-5b5f-beec-17f623efb56f"
```
@ -120,11 +132,23 @@ abort/rollback conditions.
Done when an operator-approved window can execute from one checklist without
guessing or relying on credential values in the record.
**Procedure implementation (2026-08-22):**
`docs/railiance01-coordinated-reboot.md` now provides the single ordered
preflight, hold point, reboot, recovery, escalation, and evidence checklist
across host, cluster, OpenBao/ESO, platform-pg, and audit-core owners. The
read-only helper `scripts/audit-core-recovery-preflight.py node-reboot` passed
all automated live checks: node/k3s, platform-pg 1/1, continuous archiving,
fresh completed Barman backup, unsealed OpenBao, ESO Valid/SecretSynced, and
the reviewed audit-core digest 1/1 Ready. Live readiness remains fail-closed on
the intentionally non-automated gates: an approved window and owner set,
provider-console access, a current OpenBao Raft snapshot receipt, 2-of-3 Shamir
quorum availability, and a named abort operator.
## T04 — Route the contracts and approval gates
```task
id: RAILIANCE-WP-0024-T04
status: todo
status: progress
priority: medium
state_hub_task_id: "22f5011f-aa43-54d0-9c68-66b1b7a2d140"
```
@ -137,6 +161,14 @@ engagement or recovery window is explicitly acknowledged.
Done when every participant has the same value-safe procedure, responsibility
map, and stop conditions.
**Routing package (2026-08-22):** the owner-review package consists of
`docs/audit-core-whitehat-e2-credential-projection.md`,
`docs/audit-core-database-lease-recovery.md`, and
`docs/railiance01-coordinated-reboot.md`. T01's live credential window remains
separate from the new T02/T03 authorization gates. Outstanding approvals are
stated in each procedure and enforced by the read-only preflight output rather
than inferred from repository access.
## Acceptance
- [ ] E2 cannot proceed without enforced sender expiry and exact-path projection.