PITR Browser — Point-in-Time Restore
Cosmos tem continuous backup (7d ou 30d) mas o restore só roda via az-cli ou portal. UI dedicada com timeline visual do horizonte, validator do restore plan, gerador do comando `az cosmosdb restore` com todos os parâmetros + opção de executar via host shell. Para DR drill, para recovery de bug em prod, para criar sandbox do WHAT-IF Lab.
Onde ele fica no app: Tools → Cosmos DB → PITR — Point-in-Time Restore
O que ele faz
- Timeline visual da janela de continuous-backup (7 dias default ou 30 dias).
- Plan validator: timestamp dentro do horizonte, nome da target account único, region válida.
- Generator do comando `az cosmosdb restore` com source/target/restorePoint/region.
- Botão "Run via host shell" para executar via IPC (precisa az-cli logado).
- Audit trail (na v2, expõe a lista dos restores disparados pelo app).
Passo a passo
- 1
Abra o PITR Browser
Tools → Cosmos DB → PITR — Point-in-Time Restore. Atalho pelo submenu.
- 2
Selecione a source account + tipo de backup
Coloque o nome do Cosmos account de origem + tipo (continuous-7d / continuous-30d / periodic).
- 3
Escolha o restore timestamp
Formato ISO-8601 (ex.: 2026-05-24T12:34:56Z). Tem que estar dentro do horizonte mostrado na timeline.
- 4
Defina o target account name
Nome da nova Cosmos account onde o snapshot vai virar account live. Auto-sugere "<source>-restored-<timestamp>".
- 5
Validate plan
Botão "Validate plan" — checa: timestamp dentro do horizonte, não no futuro, account name único. Banner de success/error.
- 6
Execute (CLI ou shell)
Modo recomendado: "Copy CLI" para executar em shell privilegiado externo. Modo conveniente: "Run via host shell" usa Electron IPC se a sessão az-cli está ativa.
az cosmosdb restore \ --target-database-account-name my-cosmos-restored-1234567 \ --account-name my-cosmos-account \ --resource-group my-rg \ --restore-timestamp 2026-05-24T12:34:56Z \ --location eastus
- 7
Acompanhe no portal
O restore demora de 30 min a 24h dependendo do dataset. O portal mostra o progresso no resource group.
Casos de uso reais
Migração ruim em prod
Time fez migration `dropIndex` errada que apagou índice crítico. Rollback via PITR para 2h antes — sem perda de dados pós-recovery (mergeados via Change Feed).
Drill de compliance
SOC 2 audit pede demo de PITR. DBA roda restore para account sandbox em 30 min via UI. Auditor satisfeito.