2026-07-07 19:58:21 +02:00
|
|
|
# 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
|
|
|
|
|
|
2026-07-07 20:57:12 +02:00
|
|
|
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)
|