From 2a4b387e3797f1ac91468ba2ddf02d07e9498a17 Mon Sep 17 00:00:00 2001 From: deploy Date: Tue, 22 Sep 2026 14:56:43 +0000 Subject: [PATCH] feat(plataforma): duas rotas publicas que existiam no codigo e nao no Ingress MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O Ingress do plataforma nao tem catch-all, por desenho: rota publica nova precisa ser acrescentada a mao, ou devolve 404. Duas estavam faltando, as duas achadas por scripts/conferir_rotas_publicas.py. /api/public/conta (P5.8) — a tela de espera depois do pagamento. Quem acabou de pagar AINDA NAO TEM CONTA, logo nao tem token. O controlador existia (EstadoDaContaController) e a cadeia ja liberava (permitAll), mas o Ingress devolvia 404: a tela que existe para tranquilizar quem pagou nao respondia. /api/public/webhooks/assinatura (P5.1) — e outra coisa do webhooks/asaas que ja estava la: aquele avisa que uma COBRANCA de cliente foi paga e vai para o financeiro do tenant; este avisa que alguem assinou a Athletic Map, e dispara o provisionamento de um tenant NOVO. Contas diferentes no Asaas, servicos diferentes aqui. Sem esta linha, alguem assinaria, pagaria, e nenhum tenant seria criado — sem erro em lugar nenhum do nosso lado. --- tenants/plataforma/30-ingress.yaml | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tenants/plataforma/30-ingress.yaml b/tenants/plataforma/30-ingress.yaml index e00cdd6..a508ee1 100644 --- a/tenants/plataforma/30-ingress.yaml +++ b/tenants/plataforma/30-ingress.yaml @@ -72,6 +72,37 @@ spec: # reordene sem perceber. - { path: /api/public/leads, pathType: Prefix, backend: { service: { name: servico-captacao, port: { number: 80 } } } } + # PUBLICA — a tela de espera depois do pagamento (P5.8). Quem acabou de + # pagar AINDA NAO TEM CONTA, logo nao tem token: se esta rota exigisse + # um, a tela que existe para tranquilizar quem pagou seria a primeira a + # recusa-lo. + # + # O que ela entrega e deliberadamente pouco: se a conta ficou pronta e + # o endereco do tenant. Nem nome, nem e-mail, nem plano, nem realm — o + # id da assinatura na URL e a unica "credencial" da tela, e ha teste + # guardando esse limite. Acrescentar um campo aqui e acrescentar o que + # um link vazado entrega. + # + # Estava PREPARADA e nao publicada desde 2026-09-19: o controlador + # existe (`EstadoDaContaController`) e a cadeia ja a liberava + # (`SecurityConfig`, permitAll), mas sem esta linha o Ingress devolvia + # 404 — nao ha catch-all aqui, por desenho. + - { path: /api/public/conta, pathType: Prefix, backend: { service: { name: servico-captacao, port: { number: 80 } } } } + + # PUBLICA — o aviso de ASSINATURA do Asaas (P5.1), que e outra coisa do + # `/api/public/webhooks/asaas` logo abaixo: aquele avisa que uma COBRANCA + # de cliente foi paga e vai para o financeiro do tenant; este avisa que + # alguem assinou a Athletic Map, e e o que dispara o provisionamento de + # um tenant NOVO. Contas diferentes no Asaas, servicos diferentes aqui. + # + # Chega da internet sem token nosso; quem autentica e o + # `PLATAFORMA_WEBHOOK_TOKEN`, conferido no `WebhookDeAssinatura`. Sem o + # segredo selado, o endpoint RECUSA tudo de proposito, e o log diz isso. + # + # Sem esta linha o Ingress devolvia 404: alguem assinaria, pagaria, e + # nenhum tenant seria criado — sem erro em lugar nenhum do nosso lado. + - { path: /api/public/webhooks/assinatura, pathType: Prefix, backend: { service: { name: servico-captacao, port: { number: 80 } } } } + # PUBLICA — o aviso de pagamento do Asaas, que chega da internet sem # token nenhum (P3.3). NAO casa com /api/financeiro: o controlador # atende em /api/public/webhooks/asaas, e como aqui nao ha catch-all,