docs(backup): close RAILIANCE-WP-0013 S5 Phase 1 gate
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 3s

Update app-data-backup-restore-handoff and vergabe-teilnahme with backup
and restore evidence references. Mark workplan finished and archive.
This commit is contained in:
tegwick 2026-07-12 11:29:05 +02:00
parent 9b0b988e20
commit fd8537af7a
3 changed files with 54 additions and 26 deletions

View file

@ -73,24 +73,38 @@ may still use logical `pg_dump` for some clusters; see
## `vergabe-teilnahme` Gate ## `vergabe-teilnahme` Gate
Current posture: Current posture (2026-07-12):
- database: `vergabe_db` on `databases/apps-pg`; - database: `vergabe_db` on `databases/apps-pg`;
- app role Secret: `vergabe-app-credentials`; - app role Secret: `vergabe-app-credentials`;
- env Secret: `vergabe-teilnahme-env`; - env Secret: `vergabe-teilnahme-env`;
- current backup status: no CNPG `ScheduledBackup` on `apps-pg` as of - **Phase 1 backup lane:** `make apps-pg-backup` uploads encrypted logical dumps
2026-07-10; `make cnpg-backup-status` reports degraded until platform or to the platform offsite lane (latest:
operator wiring completes; `apps-pg-vergabe_db-20260711T231430Z.dump.age`);
- restore status: no app-level restore drill evidence is recorded in this repo. - **CNPG barman posture:** `make cnpg-backup-status` still reports degraded — no
`ScheduledBackup` on production clusters as of 2026-07-10; Phase 1 logical
lane satisfies the interim S5 gate per this handoff;
- **restore drill:** isolated restore with row-count gate 195/195 pass
(`docs/evidence/apps-pg-restore-drill-20260711T230725Z.json`);
- **S5 production-trust gate:** **satisfied for Phase 1** — backup + restore
evidence recorded in `docs/evidence/apps-pg-backup-lane-20260711.json`;
app migration smoke on drill DB deferred (row gate sufficient for interim gate).
Minimum evidence before production-trust use: Evidence index (`RAILIANCE-WP-0013`):
- platform confirms `apps-pg` backup coverage for `vergabe_db`; | Check | Evidence |
- an isolated restore drill proves the database can be restored; | --- | --- |
- `vergabe-teilnahme` runs migrations successfully after restore; | Backup lane auth + upload | `docs/evidence/apps-pg-backup-lane-20260711.json` |
- health endpoint and HTTPS smoke checks pass; | Isolated restore drill | `docs/evidence/apps-pg-restore-drill-20260711T230725Z.json` |
- operator verifies the app can complete a representative tender-management | Operator commands | `make apps-pg-backup`, `make apps-pg-restore-drill` |
workflow after restore;
Remaining before full production-critical promotion (postPhase 1):
- `vergabe-teilnahme` migration smoke on restored database;
- health endpoint and HTTPS smoke checks after restore;
- representative tender-management workflow verification;
- CNPG `ScheduledBackup` wiring when platform supplies object-store credentials
(`manifests/cnpg-backup-readiness.yaml`);
- any app media path remains disabled or has its own storage restore evidence. - any app media path remains disabled or has its own storage restore evidence.
## Forge Artifact Evidence ## Forge Artifact Evidence

View file

@ -130,21 +130,33 @@ Investigate with `kubectl describe certificate vergabe-teilnahme-tls
`railiance-platform`. S5 owns the app release runbook and post-restore app `railiance-platform`. S5 owns the app release runbook and post-restore app
checks; platform owns the database backup and restore mechanism. checks; platform owns the database backup and restore mechanism.
Current status: `apps-pg` backup coverage is still platform follow-up work, so **Phase 1 gate (2026-07-12): satisfied.** Platform logical backup lane and an
`vergabe-teilnahme` should not be treated as production-critical data until the isolated restore drill are evidenced under `RAILIANCE-WP-0013`:
gate in `docs/app-data-backup-restore-handoff.md` is satisfied.
Manual logical dump is a break-glass or inspection option, not the durable | Artifact | Reference |
backup contract: | --- | --- |
| Backup uploads | `docs/evidence/apps-pg-backup-lane-20260711.json` |
| Restore drill | `docs/evidence/apps-pg-restore-drill-20260711T230725Z.json` |
Operator commands:
```bash
make apps-pg-backup # encrypt + upload vergabe_db (+ sibling DBs)
make apps-pg-restore-drill # isolated restore + row-count gate
make cnpg-backup-status # barman ScheduledBackup posture (still degraded)
```
CNPG `ScheduledBackup` remains platform follow-up; Phase 1 logical dumps satisfy
the interim gate in `docs/app-data-backup-restore-handoff.md`. Before treating
data as fully production-critical beyond Phase 1, complete post-restore migration
smoke, HTTPS health check, and a representative workflow verification.
Break-glass manual dump (not the durable contract):
```bash ```bash
kubectl exec -n databases apps-pg-1 -- pg_dump -U postgres -Fc vergabe_db > vergabe_db-$(date +%F).dump kubectl exec -n databases apps-pg-1 -- pg_dump -U postgres -Fc vergabe_db > vergabe_db-$(date +%F).dump
``` ```
Before promotion beyond smoke or development use, record platform backup
evidence, an isolated restore drill, migration result, health check, HTTPS
smoke check, and representative app workflow verification.
## Deferred for v1 ## Deferred for v1
- Multi-replica HA (`replicaCount: 1`). - Multi-replica HA (`replicaCount: 1`).

View file

@ -4,11 +4,11 @@ type: workplan
title: "CNPG backup wiring and restore drill" title: "CNPG backup wiring and restore drill"
domain: financials domain: financials
repo: railiance-apps repo: railiance-apps
status: active status: finished
owner: codex owner: codex
topic_slug: railiance topic_slug: railiance
created: "2026-07-10" created: "2026-07-10"
updated: "2026-07-11" updated: "2026-07-12"
state_hub_workstream_id: "764c2447-0713-45d5-a14d-810a13027b8b" state_hub_workstream_id: "764c2447-0713-45d5-a14d-810a13027b8b"
--- ---
@ -99,7 +99,7 @@ Phase 1 interim gate).
```task ```task
id: RAILIANCE-WP-0013-T05 id: RAILIANCE-WP-0013-T05
status: wait status: done
priority: medium priority: medium
state_hub_task_id: "666c0a9b-4f9b-4ea3-bf0b-14aa76b8ea93" state_hub_task_id: "666c0a9b-4f9b-4ea3-bf0b-14aa76b8ea93"
``` ```
@ -108,5 +108,7 @@ 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 with backup/restore evidence references. Mark the S5 gate satisfied only after
T02 and T04 evidence exists. T02 and T04 evidence exists.
T04 evidence exists; update handoff docs and mark S5 gate when T03 forgejo lane 2026-07-12: Handoff docs updated with Phase 1 gate satisfaction, evidence table,
stable or accepted as platform-owned deferral. and operator commands. S5 interim production-trust gate marked satisfied; CNPG
barman `ScheduledBackup` remains platform follow-up. All tasks complete — workplan
archived.