Record the isolated vergabe_demo_company restore and app restart.
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Assistant: grok
Assistant-Session: 01a0d25d-d358-7e13-b84a-d007fbb7e34f
This commit is contained in:
tegwick 2026-09-25 02:06:02 +02:00
parent 03105b5016
commit 1857fe7f4f
2 changed files with 57 additions and 3 deletions

View file

@ -0,0 +1,43 @@
# vergabe_demo_company restore proof — 2026-09-25
Founder request: rehearse recovery of the invited-company database without
touching the live database. Authority for the app restart:
`ADMINISTER @ realm:kubernetes/railiance01`, `activation=APPROVED`.
## PostgreSQL
| Item | Value |
|---|---|
| Cluster | `databases/apps-pg`, primary `apps-pg-1` |
| Source | `vergabe_demo_company` |
| Artifact | `apps-pg-vergabe_demo_company-20260925T000349Z.dump.age` (160K plain dump, age-encrypted) |
| Upload | not run; the OpenBao offsite lane was not logged in |
| Scratch database | `vergabe_demo_restore_20260925`, created and dropped |
| Restore time | 2 seconds |
| Tables | 39 live, 39 restored |
| Rows | 212 live, 212 restored |
| Checksum of `schema.table:count` | `32ead8ffca3b2f917c7d163bb6948b243b2106690ad39612b68408f5601a6048` |
| Gate | pass |
| Left in place | `vergabe_demo_company` and historical `vergabe_db` |
No row contents were written into this record. The drill used
`tools/apps-pg-backup-dry-run.sh` at railiance-apps `03105b5` and `pg_restore`
into the scratch database. Backup owner remains `railiance-platform`; the
documented cadence is the daily 02:30 UTC Option A logical dump. This artifact
is a manual workstation copy, not that upload.
## Files
`/app/media` and `/app/.issue-facade` are mounted from the local-path claims
`vergabe-teilnahme-media` (5Gi) and `vergabe-teilnahme-app-state` (1Gi). Both
contained zero files. An in-pod copy of those trees matched the empty checksum
`e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855`, and the
scratch copy was removed. These claims are not an off-host backup and do not
survive loss of the node.
## App restart
`vergabe-teilnahme` was recreated at 00:04:38 UTC and Ready at 00:04:57 UTC.
`https://vergabe-teilnahme.coulomb.social/demo-company/health/` returned 503
during the recreate and then 200 five times. Login, a second user, and a
document workflow were not part of this rehearsal.

View file

@ -9,7 +9,7 @@ flavor: implementation
owner: the-custodian
topic_slug: railiance
created: "2026-09-11"
updated: "2026-09-12"
updated: "2026-09-25"
related: [VERGABE-WP-0019, VERGABE-WP-0018, HFACT-WP-0001, CUST-WP-0071]
state_hub_workstream_id: "c7fdaa7e-cab8-5d1d-86c2-f1aad7927c57"
---
@ -185,11 +185,11 @@ Evidence: railiance-apps/docs/evidence/2026-09-12-demo-company-sso-live.md.
```task
id: RAPPS-WP-0014-T03
status: wait
status: progress
priority: high
assignee: the-custodian
depends_on: [RAPPS-WP-0014-T02]
blocking_reason: "Placement and data binding are live; verify product account onboarding and run the coherent restart/restore rehearsal before pilot admission."
blocking_reason: "Database restore and app restart are proved. Two-user collaboration and a document round-trip are still open."
state_hub_task_id: "dd069c6d-fcc1-5bac-b233-976f2f0d5cd1"
```
@ -207,3 +207,14 @@ single-writer Recreate release has a short service interruption; do not promise
HA. Return evidence to VERGABE-WP-0019-T03/T04 before customer invitations.
Native factory-produced delivery remains VERGABE-WP-0018/HFACT-WP-0001's separate
claim. Pricing and shared-app tenancy are outside this invited-pilot milestone.
2026-09-25 restore rehearsal. `vergabe_demo_company` was dumped, restored into
scratch database `vergabe_demo_restore_20260925` in 2 seconds, and matched on
39 tables and 212 rows (checksum
`32ead8ffca3b2f917c7d163bb6948b243b2106690ad39612b68408f5601a6048`). The scratch
database was dropped. `vergabe_db` was not restored over. Media and issue-facade
claims are mounted and empty; they are local-path and not an off-host backup.
The app pod was recreated and `/demo-company/health/` returned 200. The age
file stayed on the workstation; the Nextcloud upload was not run. Two-user
collaboration and a document round-trip remain. Evidence:
`docs/evidence/2026-09-25-vergabe-demo-company-restore.md`.