disaster-control/TestEvidence/README.md
tegwick 9ca741908e
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
DISCTL-WP-0004: adopt the NetKingdom identity backup lane
Register backup-netkingdom-identity (LLDAP, privacyIDEA DB/token
material/audit, KeyCape client registry archive) as a T0 backup stream:
daily 03:45 UTC age-encrypted upload to one off-host provider (Storage
Share), hourly on-host health check with a 25h freshness bound, RPO 24h.
Activation evidence net-kingdom NK-WP-0049-T14 (2026-10-16).

Record accepted residual risks G1 (single off-host provider) and G2
(on-host-only freshness detection, watchdog owed by
RAPP-TELEMETRY-WP-0001-T04) until 2027-01-31, and the quarterly
isolated identity restore drill (net-kingdom NK-WP-0053, first due by
2027-01-31) in BackupPolicy, RTO-RPO matrix and TestEvidence cadence.

Requested by net-kingdom (hub message ef2bf2a9); founder decision
e4c288d9 resolved 2026-10-23.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 696317@bnt-lap001
Assistant-Session: bab9e511-0915-45b3-926a-2fab552edff6
2026-10-23 06:56:59 +02:00

63 lines
No EOL
2.3 KiB
Markdown

# Test Evidence
Dated restore-drill reports proving RTO/RPO targets in `RTO-RPO-Matrix.md` are
actually met — not just documented.
## Naming convention
```text
TestEvidence/restore-drill-YYYY-MM-DD-<system>.md
```
Examples: `restore-drill-2026-07-04-forgejo.md`
## Required fields
Every evidence file must include:
| Field | Description |
| --- | --- |
| Date | Drill execution date (UTC) |
| System | What was restored (register ID or system name) |
| Backup artifact | Filename, size, timestamp, source (manual/automated) |
| Target environment | Isolated namespace, staging host, clean VM, etc. |
| Operator | Who ran the drill |
| Result | `success` / `partial` / `failed` |
| RPO achieved | Actual recovery point (how stale was the backup?) |
| RTO achieved | Wall-clock time from start to validated service |
| Checks performed | API calls, smoke tests, representative workflow |
| Issues found | Anything that blocked or degraded restore |
| Follow-up actions | Workplan items, pickup queue refs, register updates |
| Canonical evidence | Link to owner-repo evidence if drill ran elsewhere |
## Drill cadence
| Tier | Minimum cadence | Owner |
| --- | --- | --- |
| T1 irreplaceable source of truth | Quarterly | Bernd |
| T0 identity / trust | Quarterly (cold decrypt included) | Bernd |
| T2 runtime platforms | Semi-annual | Bernd |
Quarterly Forgejo drill gate: re-run `forgejo-restore-drill.sh` from an
**automated** Nextcloud artifact once daily backups are wired (promotion gate
in `BackupPolicy.md` §7).
## Next untested targets
Completed drills:
- 2026-07-04 — Forgejo manual isolated restore
- 2026-07-07 — Forgejo automated backup decrypt + validate
Next targets:
1. **Forgejo from Nextcloud only** — promotion gate (`BackupPolicy.md` §7)
2. **S2 k3s runtime** — decrypt `railiance-backup-s2` on railiance01
3. **Dev workstation cold restore** — password-manager key only
4. **Gitea dump** — before next migration wave
5. **Secret vault cold decrypt** — SOPS/age recovery material (R5)
6. **NetKingdom identity isolated restore** — quarterly, first due by
2027-01-31; run by `net-kingdom` NK-WP-0053 per
`net-kingdom/docs/identity-restore-drill.md`. Canonical evidence lives under
`net-kingdom/docs/evidence/<date>-identity-restore-drill/`; link it here as
`restore-drill-<date>-netkingdom-identity.md` (DISCTL-WP-0004-T03).