From 9a5a977387d51e0ef64efa03a3effeec44ad30d9 Mon Sep 17 00:00:00 2001 From: Sidney Gomes Date: Tue, 21 Jul 2026 21:06:58 -0300 Subject: [PATCH] docs: save Asaas webhook configurations --- gemini.md | 2 +- memory.md | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gemini.md b/gemini.md index 6a783f8..8240867 100644 --- a/gemini.md +++ b/gemini.md @@ -154,7 +154,7 @@ Passos executados: | **Armazenamento da API Key** | Banco de dados isolado no Servidor | **Alto** | Chave do Asaas mantida no backend e **nunca exposta ao navegador do aluno**. Acesso restrito a rotas protegidas por JWT Admin. | | **Criptografia em Trânsito** | HTTPS / TLS 1.3 (Traefik + Let's Encrypt) | **Alto** | 100% do tráfego entre navegador, painel admin e APIs é criptografado com SSL/TLS de ponta a ponta. | | **Isolamento de Banco de Dados** | Docker Container (`postgres-microtecflix`) | **Alto** | Instância PostgreSQL dedicada rodando na porta interna `5435`, isolada do ambiente host e acessível apenas pelos containers da rede Swarm. | -| **Segurança do Webhook** | Token `asaas-token` no Header | **Alto** | Notificações de pagamento sem o token configurado são rejeitadas imediatamente com **HTTP 401 Unauthorized**. | +| **Segurança do Webhook** | Token `asaas-token` no Header | **Alto** | Notificações de pagamento sem o token configurado são rejeitadas imediatamente com **HTTP 401 Unauthorized**. O payload de erro retorna o token esperado vs recebido para facilitar o debug pelo administrador dentro do painel do Asaas. | | **Proteção Anti-Carding** | Middleware Rate Limiting | **Alto** | Limita o número de tentativas de pagamento por IP no checkout para evitar testes automatizados por bots. | | **Proteção Anti-Crash (DOM)** | React `ErrorBoundary` + Encapsulamento `` | **Alto** | Previne travamentos de tela branca causados por extensões do navegador ou tradução automática do Google Chrome. | diff --git a/memory.md b/memory.md index 46d228c..6d3af68 100644 --- a/memory.md +++ b/memory.md @@ -57,5 +57,7 @@ O **MicrotecFlix** é uma plataforma EAD / Streaming de cursos de informática e ## 4. Diretrizes para Futuras Edições 1. **Preservação da Autenticação JWT**: O token JWT é armazenado em `localStorage` sob a chave `devflix_token`. Qualquer nova rota de API restrita deve utilizar o middleware `authenticateToken`. -2. **Isolamento de Banco de Dados**: O container `postgres-microtecflix` roda na porta 5435 do host para garantir que não haja conflitos de porta com o banco PostgreSQL de outros projetos (ex: AgendaPRO na porta 5432). -3. **Deploy**: O arquivo `docker-stack.yml` deve ser atualizado sempre que novas variáveis de ambiente ou volumes forem necessários para a stack do Portainer. +2. **Segurança do Webhook (Asaas)**: A rota `/api/webhooks/asaas` exige validação do header `asaas-access-token` contra a chave `asaasWebhookSecret` salva nas Configurações Globais. Caso as chaves divirjam, a requisição sofre rejeição com **HTTP 401 Unauthorized** e um payload detalhando qual token foi recebido e qual era o esperado. +3. **Liberação de Cursos/Assinaturas**: Webhooks com status de confirmação (`PAYMENT_CONFIRMED`, `PAYMENT_RECEIVED`) atualizam automaticamente o status da assinatura ou liberam o curso no array `unlockedCourses` se a validação de segurança passar. +4. **Isolamento de Banco de Dados**: O container `postgres-microtecflix` roda na porta 5435 do host para garantir que não haja conflitos de porta com o banco PostgreSQL de outros projetos (ex: AgendaPRO na porta 5432). +5. **Deploy**: O arquivo `docker-stack.yml` deve ser atualizado sempre que novas variáveis de ambiente ou volumes forem necessários para a stack do Portainer.