Review blocked platform obligations and archive completed ESO recovery
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a06ecb-456a-71c2-b41e-0755d336e883
This commit is contained in:
codex 2026-09-05 21:16:53 +02:00
parent b2c2848e49
commit 34e78e8937
10 changed files with 302 additions and 10 deletions

View file

@ -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.