Review blocked platform obligations and archive completed ESO recovery
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a06ecb-456a-71c2-b41e-0755d336e883
This commit is contained in:
parent
b2c2848e49
commit
34e78e8937
10 changed files with 302 additions and 10 deletions
|
|
@ -0,0 +1,80 @@
|
|||
---
|
||||
id: RPF-WP-0037
|
||||
type: workplan
|
||||
title: "Recover three active ESO lanes from static-token authentication failure"
|
||||
domain: financials
|
||||
repo: railiance-platform
|
||||
status: finished
|
||||
owner: codex
|
||||
created: "2026-09-05"
|
||||
updated: "2026-09-05"
|
||||
state_hub_workstream_id: "df076911-18b4-5731-99a8-2ecb3c3cc5b3"
|
||||
---
|
||||
|
||||
User authorized continuing with the identified delivery failures. Live metadata
|
||||
confirms active Forgejo, reuse-surface and target-revenue consumers. All three
|
||||
ClusterSecretStores fail OpenBao token lookup-self with 403. This plan repairs
|
||||
delivery authentication; it does not rotate application credentials or restart
|
||||
consumers. RPF-WP-0036-T04 retains the separate telemetry acceptance gate.
|
||||
|
||||
## Diagnose authentication and compare custody without exposing values
|
||||
|
||||
```task
|
||||
id: RPF-WP-0037-T01
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "e0e7ff05-01bf-58db-a18e-4c5e48a697fc"
|
||||
```
|
||||
|
||||
Use attended platform-admin and pinned cluster access. Capture token validity,
|
||||
policy coordinates and boolean equality between native KV data and the existing
|
||||
consumer Secret. No values, tokens, hashes or fingerprints in evidence. Stop
|
||||
before any resync if custody disagrees with the deployed Secret.
|
||||
|
||||
## Replace static authentication with exact Kubernetes bindings
|
||||
|
||||
```task
|
||||
id: RPF-WP-0037-T02
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "01dd799d-f967-57d6-9cf0-9b01971e5bf1"
|
||||
```
|
||||
|
||||
Stage dedicated namespace/SA/audience-bound roles with 15-minute maximum TTL,
|
||||
no default policy and exact KV data read plus token self-lookup/revocation.
|
||||
Keep namespace restrictions and existing delivery paths. Refuse live drift.
|
||||
Validate positive read and wrong-identity/sibling/write denial before changing
|
||||
each store. Persist source before apply. Do not overwrite workload key material.
|
||||
|
||||
## Verify sustained delivery and record closure
|
||||
|
||||
```task
|
||||
id: RPF-WP-0037-T03
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "ee47707c-289b-5bea-a2ad-fdf40fed7034"
|
||||
```
|
||||
|
||||
Require Ready stores and ExternalSecrets, a second successful forced reconcile,
|
||||
unchanged deployed key material and healthy consumers. Record safe receipts and
|
||||
retire obsolete bootstrap instructions. Remove obsolete static token references
|
||||
from stores; retain old token Secret objects until their invalidity is proven.
|
||||
Commit and synchronize file-backed work and report any remaining gates.
|
||||
|
||||
|
||||
## Completion — 2026-09-05
|
||||
|
||||
All three lanes migrated and passed fresh reconciliation, exact reads,
|
||||
wrong-SA/namespace/audience rejection, bounded TTL and sibling/write denial.
|
||||
OpenBao workload values matched deployed Secrets before and after migration;
|
||||
no application credential rotation or consumer rollout was requested. Native
|
||||
admin lookup proved old tokens invalid; after proving zero store references,
|
||||
all three obsolete token Secrets were removed with deletion preconditions.
|
||||
All 27 cluster ExternalSecrets are Ready and all three consumers have one ready
|
||||
replica. 187 tests and credential request validation passed. Current source,
|
||||
CCR-2026-0005 delivery binding and bootstrap guidance are updated.
|
||||
|
||||
Evidence: `docs/evidence/RPF-WP-0037-eso-auth-recovery-2026-09-05.json`.
|
||||
Runbook: `docs/eso-auth-recovery.md`.
|
||||
RPF-WP-0036-T04 retains the independent Q2 signal-delivery acceptance gate;
|
||||
backup credential recovery and operator-only cutover remain in WP-0029/0025.
|
||||
Loading…
Add table
Add a link
Reference in a new issue