# Backup e recuperação (DB + assets)

| Campo | Valor |
|---|---|
| **Prioridade** | **Promovido a escopo** (deixou de ser backlog) |
| **Status** | **Promovido em 2026-10-19 → F6.I2** (plano 15 §3) |
| **Origem** | Conversa 2026-10-14 |
| **ADR provável** | ADR-007 (§custos), ADR-030 (storage), [ADR-042](../adr/ADR-042-sem-retrocompatibilidade-conteudo-migrado-a-mao.md) |
| **Relaciona** | plano 15, ADR-019, ADR-017, F6.I2 (`task_01wedy29`) |

## Objetivo

Garantir que **banco e assets** possam ser recuperados com integridade após falha humana,
corrupção ou desastre — com RPO/RTO definidos. É o único item de backlog classificado como
**prioritário**, a ser resolvido **antes da entrada em produção**.

> **Promovido:** a ADR-042 fixou que **não há migração do legado** (base nova) — logo, recuperação do
> banco **do V7** é requisito de produção, não backlog. O escopo abaixo é executado em **F6.I2**
> (`task_01wedy29` → `task_01e0cyc2`, `task_01jy6h6i`, `task_01ohn9qn`) e no runbook de operação
> (F6.I1.T3). Este arquivo fica como **registro da origem**; o plano vivo é
> `wiki/plan/15-cicd-deploy-legado.md` §3.

## Escopo (o que fazer)

- [ ] Definir **RPO/RTO** por tipo (DB, mídia, exportações de dados abertos).
- [ ] `pg_dump -Fc` **cifrado**, offsite e versionado (retenção por prazo).
- [ ] Espelhamento/versionamento de **assets** (uploads/mídia/JSON exportado).
- [ ] **Drills de restore** periódicos (com evidência de tempo e integridade).
- [ ] Retenção e descarte alinhados à LGPD (ADR-019); legal hold respeitado.
- [ ] Automatizar (Scheduler/cron) e **alertar** em falha de backup.

## Fora de escopo

- Alta disponibilidade multi-AZ (single-tenant/container atual).
- Backup da infraestrutura Docker em si (reproduzível por imagem).

## Dependências

- Acesso a storage offsite (S3-compatible) e chaves de cifra (ADR-020).
- PostgreSQL 18 em container (ADR-007) — `pg_dump`/`pg_restore` na mesma versão + backup do volume.

## Critérios de promoção (backlog → ADR/plano)

- [x] `kd write` da decisão — `decision_01ok0u63` (ADR-042: sem retrocompatibilidade, base nova).
- [x] Decidir: **extensão do plano 15** (§3 "Dados: base nova + recuperação"), sem ADR própria.
- [x] Plano com atividades/testes/DoD — `wiki/plan/15-cicd-deploy-legado.md` §4/§5/§6 e
      `wiki/implementation/06-deploy-migracao.md` (F6.I2).
- [ ] Atualizar `AGENTS.md` e remover este item.

## Notas

- ADR-017 proíbe `DROP` destrutivo; backup é a rede de segurança complementar.
