Appearance
Resposta a Incidentes
Tipos de incidente
1. Sistema fora do ar
Sintomas: Frontend inacessível, API retorna 5xx, Traefik retorna 502/503.
Passos:
- Verificar containers:
docker ps | grep crm-galdix - Ver logs do backend:
docker logs crm-galdix-backend-1 --tail 100 - Ver logs do Traefik:
docker logs traefik --tail 20 - Se container morreu:
bash deploy.sh --restart - Se precisa rebuild:
bash deploy.sh
Regra: NUNCA usar docker compose up diretamente — ver deploy.
2. Comprometimento de credenciais
Se um secret foi exposto (token, API key, senha):
- Revogar imediatamente no serviço correspondente
- Gerar novo secret e atualizar no Azure Key Vault
- Fazer redeploy para propagar:
bash deploy.sh - Verificar logs de auditoria do período de exposição
- Notificar usuários/parceiros afetados conforme LGPD (se dados pessoais envolvidos)
Secrets críticos e onde revogar:
| Secret | Onde revogar |
|---|---|
| Clerk Secret Key | Dashboard Clerk → API Keys |
| Token WhatsApp | Meta Business Manager → Configurações |
| Azure credentials | Portal Azure → Registros de aplicativos |
| Internal API Key | Gerar novo, atualizar Key Vault, redeploy |
3. Vazamento de dados pessoais
Protocolo LGPD (Lei Geral de Proteção de Dados):
- Isolar: Identificar exatamente quais dados foram expostos e para quem
- Documentar: Registrar: hora do incidente, dados afetados, quantas pessoas, causa
- Corrigir: Fechar a vulnerabilidade antes de comunicar
- Notificar ANPD: Em até 72 horas se o incidente oferecer "risco ou dano relevante"
- Notificar titulares: Se o risco for alto, comunicar diretamente os afetados
- Registrar: Documentar o incidente e as medidas tomadas
Dados pessoais no sistema:
- Nome, email, telefone de clientes
- CPF (armazenado apenas como hash)
- Histórico de compras
- Histórico de conversas (via Chatwoot)
Contato para notificação: daniel.galdencio2560@gmail.com
4. Acesso não autorizado
Se suspeitar de acesso indevido:
- Ver log de auditoria:
GET /audit/logscom filtros de data e userId - Verificar logins no Clerk Dashboard → Users → Sessions
- Revogar sessões do usuário suspeito:
POST /users/:id/reset-password - Se necessário, deletar usuário:
DELETE /users/:id - Revisar permissões do papel do usuário
5. Campanha enviada para audiência errada
Se uma campanha foi disparada incorretamente:
- Não há como cancelar mensagens já entregues (Meta não oferece "unsend")
- Verificar quantas mensagens foram enviadas:
GET /campaigns/:id - Se a campanha ainda está em fila:
DELETE /campaigns/:idcancela jobs pendentes - Comunicar internamente o ocorrido
- Se clientes reclamarem: tratar individualmente
6. ERP sync com dados corrompidos
Se dados do Millennium chegaram incorretos:
- Verificar logs de sync:
GET /erp/sync/history - Identificar o range de datas afetado
- Corrigir na fonte (Millennium) se possível
- Re-executar sync para o período:
POST /erp/sync/triggercomstartDate/endDate - Se necessário:
POST /rfm/recomputepara recalcular RFM
Contatos de emergência
| Responsável | Papel | Contato |
|---|---|---|
| Admin principal | Acesso ao Azure Key Vault e servidor | daniel.galdencio2560@gmail.com |
Onde encontrar logs
bash
# Logs do backend em tempo real
docker logs crm-galdix-backend-1 -f
# Logs do frontend
docker logs crm-galdix-frontend-1 -f
# Logs salvos
ls /home/crm/logs/backend/
# Auditoria via API
GET /audit/logs?startDate=2026-05-20&endDate=2026-05-24
# Jobs com falha
POST /admin/queue/retry-failed