apiVersion: devrunbook.io/v1alpha1 kind: Playbook metadata: id: release-operations.backup-restore-validation slug: backup-restore-validation version: 1.0.0 title: Backup and Restore Validation summary: Test that application data, artifacts, configuration and encryption-key dependencies can be backed up and restored. category: release-operations tags: - backup - restore - recovery lifecycle: reviewed riskTier: high authors: - name: DevRunbook Core Team license: MIT package: files: - path: prompt.md role: template digest: true exportByDefault: false - path: README.md role: documentation digest: true exportByDefault: false - path: CHANGELOG.md role: changelog digest: true exportByDefault: false - path: examples/minimal.yaml role: example digest: true exportByDefault: false - path: evaluations/static-structure.yaml role: evaluation digest: true exportByDefault: false spec: type: run-pack intent: problem: Development work around backup and restore validation is often underspecified, inconsistently executed or reported without enough evidence. outcome: Test that application data, artifacts, configuration and encryption-key dependencies can be backed up and restored. whenToUse: - Use this playbook when the repository needs a bounded backup and restore validation task with explicit evidence and completion criteria. - Use it when Codex should follow a repeatable workflow rather than improvise from a one-line request. whenNotToUse: - Do not use it when the desired outcome or authority boundaries are still materially undecided. - Do not use it to access unavailable production credentials, bypass safeguards or claim validation that cannot be performed. modes: - guided - execute - recovery defaultMode: execute autonomy: min: implement max: repair default: verify inputs: - key: deploymentTarget label: Deployment target description: Describe the deployment environment and packaging model to assess. type: enum required: true sensitive: false includeInOutput: true default: docker-compose options: - docker-compose - unraid - linux-host - managed-container-platform - other - key: recoveryObjectives label: Recovery objectives description: Describe acceptable data loss, recovery time and artifacts that must survive restore. type: multiline required: true sensitive: false includeInOutput: true compatibility: repositoryRequired: true languages: [] frameworks: [] packageManagers: [] databases: [] deploymentTypes: [] requiredProfileCapabilities: [] incompatibleConditions: [] guardrails: - id: guardrail-1 severity: blocking text: Never test restore against the only production copy of data. - id: guardrail-2 severity: blocking text: Do not include plaintext encryption keys or integration secrets in ordinary backup archives. - id: guardrail-3 severity: blocking text: Verify restored data and artifacts, not only command exit codes. workflow: - id: define-objectives title: Define recovery objectives instruction: List protected records, artifacts, configuration, key dependencies and acceptable loss/time. required: true - id: inventory-data title: Inventory backup scope instruction: Map database, artifact, content, configuration and encryption-key responsibilities. required: true - id: create-backup title: Create test backup instruction: Generate a versioned backup with checksums from a controlled environment. required: true - id: prepare-empty-target title: Prepare empty target instruction: Deploy a compatible clean target isolated from the source. required: true - id: restore title: Restore components instruction: Restore database and files in documented order with correct key versions. required: true - id: verify-integrity title: Verify integrity instruction: Check counts, digests, historical runs, downloads, health and one integration connection. required: true - id: exercise-failure title: Exercise failure cases instruction: Test missing artifacts, wrong key and incompatible version behavior safely. required: true - id: document title: Document recovery instruction: Record commands, duration, limitations, rollback and operator responsibilities. required: true validation: commandRoles: - migration-status - smoke-test checks: - id: check-1 type: assertion description: A restored empty target reproduces selected records and artifact digests. blocking: true evidence: Referenced files, command results or explicit review notes. - id: check-2 type: assertion description: Encryption-key and version dependencies are proven and documented. blocking: true evidence: Referenced files, command results or explicit review notes. - id: command-migration-status type: command description: Run the resolved migration-status command when the repository profile provides it and record the result. blocking: true evidence: Resolved command, exit status and concise result summary. - id: command-smoke-test type: command description: Run the resolved smoke-test command when the repository profile provides it and record the result. blocking: true evidence: Resolved command, exit status and concise result summary. completion: criteria: - Restore is performed in an isolated target and verified. - Unrecoverable secret/key dependencies are documented. - Validation evidence and unresolved limitations are reported honestly. failurePolicy: onValidationFailure: Investigate failures caused by the current work, repair them when they remain within scope, rerun affected validation and report any genuine blocker without claiming success. onAmbiguity: Use repository evidence and existing conventions for minor reversible choices. Preserve current behavior and stop before any material irreversible decision that the specification does not resolve. onMissingContext: Inspect the repository for missing non-sensitive context. Never invent commands, credentials, production behavior or validation results; report what remains unavailable. onOutOfScopeCause: Explain the evidenced out-of-scope cause, avoid unrelated changes and provide the smallest safe follow-up recommendation. onExternalDependencyUnavailable: Use an approved local substitute or fixture only when it preserves the behavior under test. Otherwise record the blocked validation and do not claim the external path succeeded. onUnableToReproduce: Record attempted reproduction, environment and observed evidence. Do not apply speculative production changes; provide the narrowest next diagnostic action. reporting: sections: - id: outcome title: Outcome required: true description: State the delivered result or audit conclusion without overstating evidence. - id: evidence title: Evidence and scope required: true description: List inspected or changed areas and the evidence supporting the result. - id: validation title: Validation required: true description: Report commands, manual checks and their actual outcomes. - id: risks title: Risks and limitations required: true description: State residual risk, inaccessible evidence and untested conditions. - id: follow-up title: Recommended follow-up required: true description: List the smallest useful next actions or state None. template: main: prompt.md partials: [] exports: prompt: true markdown: true runPack: true agentsSuggestion: false quality: reviewStatus: editorial-reviewed testedStacks: [] knownLimitations: - Repository-specific effectiveness depends on the accuracy of the selected profile and the evidence available to Codex. evaluationCaseIds: - backup-restore-validation.static-structure