Procedure: dr-restore-drill.md. Cadence: quarterly.
<slug> (plan: <starter|growth|enterprise>)<uuid from scripts/dr-drill.js output>| Field | Value |
|---|---|
| Backup picked | <backup_id> |
Backup created_at |
<iso> |
| Observed RPO (now − created_at) | <HH:MM:SS> |
| Target | ≤ 24h |
| Pass? | <✅ / ❌> |
Wall-clock from POST /cp/backups/:id/restore-token to ledger-row match in the restored Postgres.
| Phase | Started | Finished | Duration | Notes |
|---|---|---|---|---|
| A — manifest fetch | ||||
| B — restore-token mint | ||||
| C — cipher-byte download | ||||
| D — decrypt (KMS / AES-GCM) | ||||
| E — untar | ||||
| F — Postgres + ledger sanity | ||||
| Total RTO | Target ≤ 60m |
Pass? <✅ / ❌>
key_source: <kms | static><success | failure (Sev-1)><success | mismatch (Sev-1)>key_fingerprint matches org config: <yes | no>| Field | Live cluster | Restored cluster | Match? |
|---|---|---|---|
| Row id | |||
| customer_id | |||
| timestamp | |||
| cost_usd | |||
| tokens_in / tokens_out |
<bullets — process gaps, surprises, infra friction. Open incidents/Linear issues with the action items below.>
| # | Action | Owner | Due | Tracker |
|---|