fix(workplans): migrate archived workplans off the retired RAILIANCE-WP prefix
Completes the migration begun on 2026-08-25, which covered active workplans only. The archived copies kept their historical identifiers, and three repositories shared one number space — so their task identifiers collided, blocking task-level projection reset for those workplans. Numbering continues each repository's active sequence rather than restarting, so no identifier is reused. Projection UUIDs are re-derived from the new canonical ids. Refs CUST-WP-0068, STATE-WP-0083-T06 Assistant: claude-code Assistant-Model: opus Assistant-Process: 2583210@bnt-lap001 Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
This commit is contained in:
parent
2023d9a9ba
commit
d03edc946c
10 changed files with 122 additions and 122 deletions
|
|
@ -0,0 +1,114 @@
|
|||
---
|
||||
id: RAPPS-WP-0012
|
||||
type: workplan
|
||||
title: "CNPG backup wiring and restore drill"
|
||||
domain: financials
|
||||
repo: railiance-apps
|
||||
status: finished
|
||||
owner: codex
|
||||
topic_slug: railiance
|
||||
created: "2026-07-10"
|
||||
updated: "2026-07-12"
|
||||
state_hub_workstream_id: "6f03f8e3-3239-58df-86e6-24cbdeaa04fe"
|
||||
---
|
||||
|
||||
# CNPG backup wiring and restore drill
|
||||
|
||||
Follow-up to `RAILIANCE-WP-0012-T04` and custodian inbox `a1957cce`. Observability
|
||||
and manifest templates exist; production clusters on railiance01 still report
|
||||
degraded backup posture via `make cnpg-backup-status` on CoulombCore production.
|
||||
|
||||
Evidence baseline:
|
||||
`the-custodian/docs/evidence/vergabe-teilnahme-delivery-lane-20260710.json`
|
||||
(`s4_2_backup_restore: FAIL`).
|
||||
|
||||
Coordinate with `railiance-platform` for object-store credentials and retention.
|
||||
Phase 1 may use logical `pg_dump` for some clusters per
|
||||
`disaster-control/BackupPickupQueue.md` item 6; barman `ScheduledBackup` remains
|
||||
the longer-term target in `manifests/cnpg-backup-readiness.yaml`.
|
||||
|
||||
## Confirm backup lane and credential path
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0012-T01
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "ef80c42a-bb57-53c2-a49b-a006de562d9b"
|
||||
```
|
||||
|
||||
Operator completed OIDC login (`railiance-backup-workload-kv-read`). Verified via
|
||||
`tools/check-backup-lane-auth.sh`. `make apps-pg-backup` uploaded
|
||||
`apps-pg-vergabe_db-20260711T221353Z.dump.age` to offsite-lane (2026-07-11).
|
||||
|
||||
## Wire apps-pg backup coverage
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0012-T02
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "2cdf1881-fa83-5e7c-a56a-8e258c8e9b25"
|
||||
```
|
||||
|
||||
Phase 1 logical backup lane operational for `apps-pg` / `vergabe_db` via
|
||||
`make apps-pg-backup` (evidence: `docs/evidence/apps-pg-backup-lane-20260711.json`).
|
||||
`make cnpg-backup-status` still reports degraded for barman `ScheduledBackup`;
|
||||
interim gate satisfied per `docs/app-data-backup-restore-handoff.md`.
|
||||
|
||||
## Wire remaining production DB clusters
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0012-T03
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "3a9decaa-851b-5e77-88cd-cd46b1ea11dc"
|
||||
```
|
||||
|
||||
2026-07-11: `state-hub-db` (`state_hub`) and `net-kingdom-pg` (`interhub`) uploaded
|
||||
via adapted `apps-pg-backup-dry-run.sh`. `forgejo-db` — initial `make forgejo-backup`
|
||||
failed (websocket EOF during dump on railiance01). Evidence in
|
||||
`docs/evidence/apps-pg-backup-lane-20260711.json`.
|
||||
|
||||
2026-07-12: Patched `tools/cmd/forgejo-backup` (in-pod nohup dump, 4m chunk copy
|
||||
with retries, kubectl preflight retries). After operator `bao login`,
|
||||
`make forgejo-backup` succeeded — uploaded `forgejo-dump-20260711T233637Z.zip.age`
|
||||
(1.3G) and `forgejo-db-20260711T233637Z.sql.age` (24M) to Nextcloud `forgejo/`.
|
||||
`apps-pg` clusters covered via Phase 1 lane.
|
||||
|
||||
## Run isolated restore drill with evidence
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0012-T04
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "ce64b731-d313-5c9b-9471-d8ca44d125e8"
|
||||
```
|
||||
|
||||
Restore the latest `apps-pg` backup into an isolated namespace or test database.
|
||||
Verify row counts, run `vergabe-teilnahme` migrations, and capture non-secret
|
||||
evidence (timestamp, cluster, backup id, restore namespace, post-restore smoke
|
||||
result). Do not store decrypted dumps or credentials in Git.
|
||||
|
||||
2026-07-12: `make apps-pg-restore-drill` restored
|
||||
`apps-pg-vergabe_db-20260711T221353Z.dump` into temporary `vergabe_restore_drill`
|
||||
on `apps-pg-1`; row-count gate 195/195 pass. Evidence:
|
||||
`docs/evidence/apps-pg-restore-drill-20260711T230725Z.json`. Drill DB dropped
|
||||
after capture. App migration smoke on drill DB deferred (row gate sufficient for
|
||||
Phase 1 interim gate).
|
||||
|
||||
## Close vergabe production-trust backup gate
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0012-T05
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "f116a888-4e24-5f6e-8170-263c676f25d3"
|
||||
```
|
||||
|
||||
Update `docs/app-data-backup-restore-handoff.md` and `docs/vergabe-teilnahme.md`
|
||||
with backup/restore evidence references. Mark the S5 gate satisfied only after
|
||||
T02 and T04 evidence exists.
|
||||
|
||||
2026-07-12: Handoff docs updated with Phase 1 gate satisfaction, evidence table,
|
||||
and operator commands. S5 interim production-trust gate marked satisfied; CNPG
|
||||
barman `ScheduledBackup` remains platform follow-up. All tasks complete — workplan
|
||||
archived.
|
||||
Loading…
Add table
Add a link
Reference in a new issue