Última revisão: 24 de julho de 2026.
- confirmar que a branch pertence a uma issue e que o PR descreve o impacto;
- revisar migrations e executar
npx supabase db push --dry-run; - criar backup lógico antes de qualquer mudança destrutiva;
- executar
npm run lint,npm testenpm run build; - confirmar que nenhum
.env, token, log ou credencial está rastreado; - revisar variáveis e bindings no Worker sem revelar valores;
- conferir o checklist em
docs/security-checklist.md.
- aplicar migrations compatíveis com a versão anterior do código;
- fazer merge do PR em
main; - aguardar o deploy automático do Cloudflare;
- conferir a versão em Workers & Pages → voha-lab → Deployments;
- executar smoke test público e autenticado;
- monitorar logs por pelo menos 15 minutos.
Migrations devem ser expansivas sempre que possível: adicionar antes de usar, deixar o código antigo funcionando e remover estruturas somente em uma entrega posterior.
GET /login,/privacidadee/exclusao-de-dadosretornam200;POST /api/internal/publications/runsem segredo retorna401;- login da Larissa carrega clientes, calendário e uso real de armazenamento;
- upload pequeno conclui e pode ser excluído;
- rascunho pode ser salvo, aberto e excluído;
- conexão do Instagram aparece ativa;
- um post descartável pode ser agendado sem duplicação;
- sino e e-mail exibem um alerta controlado.
Não publique conteúdo real apenas para testar um deploy. Use mídia e conta de teste aprovadas para esse fim.
- abra Cloudflare → Workers & Pages → voha-lab → Deployments;
- identifique o último deployment saudável;
- use Rollback para promover a versão anterior;
- confirme
/logine o endpoint interno; - registre horário, versão e motivo na issue;
- investigue na branch sem alterar dados reais.
Não reverta uma migration automaticamente. Se o código anterior não for compatível com o banco atual, publique uma correção compatível ou uma migration de avanço.
Conferir status do Supabase, pausa do projeto, códigos 402, 540, 544 e
546, variáveis públicas e políticas RLS. Não contornar RLS usando chave
administrativa no navegador.
Conferir R2, CORS, credenciais, limite interno de 8 GB e linhas uploading com
mais de 24 horas. A manutenção diária tenta remover objetos abandonados.
Filtrar instagram_publication_failed pelo postId e attemptId. Se
publish_dispatched já ocorreu, verificar primeiro o Instagram: repetir a chamada
pode duplicar o post.
Filtrar operational_cron_failed, operational_scheduled_handler_failed e
notification_email_failed. Conferir VOHA_CRON_SECRET, binding EMAIL,
remetente e destino verificado.
Revogar no provedor, atualizar o Worker, validar o deploy e revisar logs. Para a chave de criptografia da Meta, desconectar e reconectar todas as contas.
- revisar erros e consumo diariamente na primeira semana;
- conferir Supabase, Workers e R2 semanalmente no primeiro mês;
- testar restauração de backup antes de depender dele;
- revisar permissões Meta e vencimento de tokens;
- atualizar custos, limites e este runbook após todo incidente.