fix(tenants): o webhook de PAGAMENTO do Asaas morria no BFF
O arquivo 96-ingress-garmin-public.yaml foi criado para o callback do Garmin e leva TODO o /api/public para o servico-bff. O BFF relaya o Garmin de proposito (GarminBffController), mas NAO tem controlador para /api/public/webhooks/asaas — so o financeiro tem (WebhookAsaasController). Resultado nos quatro tenants: o aviso de pagamento do Asaas chegava ao BFF e parava ali. O sintoma seria o pior possivel — a cobranca e paga e NUNCA baixada, sem erro nenhum do nosso lado; o provedor so registra uma entrega recusada. Esta dormente hoje porque nenhum dos quatro tem asaas-credentials (cada cliente traz a propria chave, decisao de 19/09). Passaria a morder no primeiro cliente que ligasse a cobranca — e o diagnostico comecaria pelo lado errado, olhando o financeiro, que nunca recebeu nada. O Traefik ordena por TAMANHO do prefixo, entao a rota nova vence a generica sozinha; fica escrita primeiro mesmo assim, para ninguem reordenar sem perceber. Achado a partir do scripts/conferir_rotas_publicas.py, que acusou o piloto. A acusacao estava certa no problema e errada no alcance: ele le a copia PARCIAL do monorepo, que nao tem o Ingress de nenhum dos quatro, e concluiu sobre um. Medido no cluster, os quatro eram identicos e os quatro estavam quebrados.
This commit is contained in:
@@ -15,6 +15,30 @@ spec:
|
||||
- host: acme.athleticmap.influxdigital.com.br
|
||||
http:
|
||||
paths:
|
||||
# O webhook de PAGAMENTO do Asaas, ANTES do /api/public generico.
|
||||
#
|
||||
# Aquele manda tudo de /api/public para o `servico-bff`, e o BFF NAO tem
|
||||
# controlador para esta rota — so o financeiro tem
|
||||
# (`WebhookAsaasController`). O BFF relaya o Garmin de proposito; o Asaas,
|
||||
# nao. Sem esta linha o aviso de pagamento morre no BFF, e o sintoma e o
|
||||
# pior possivel: **a cobranca e paga e nunca baixada**, sem erro do nosso
|
||||
# lado — o provedor so registra uma entrega recusada.
|
||||
#
|
||||
# O Traefik ordena por TAMANHO do prefixo, entao esta (26 caracteres) vence
|
||||
# `/api/public` (11) sozinha. Fica escrita primeiro mesmo assim, para
|
||||
# ninguem reordenar sem perceber.
|
||||
#
|
||||
# `servico-financeiro` e o Service; num tenant consolidado ele aponta para
|
||||
# o `runtime-operacao`, que e onde o financeiro roda de verdade.
|
||||
#
|
||||
# Quem autentica e o cabecalho `asaas-access-token`, no controlador.
|
||||
- path: /api/public/webhooks/asaas
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: servico-financeiro
|
||||
port:
|
||||
number: 80
|
||||
- path: /api/public
|
||||
pathType: Prefix
|
||||
backend:
|
||||
|
||||
@@ -15,6 +15,30 @@ spec:
|
||||
- host: demo.athleticmap.influxdigital.com.br
|
||||
http:
|
||||
paths:
|
||||
# O webhook de PAGAMENTO do Asaas, ANTES do /api/public generico.
|
||||
#
|
||||
# Aquele manda tudo de /api/public para o `servico-bff`, e o BFF NAO tem
|
||||
# controlador para esta rota — so o financeiro tem
|
||||
# (`WebhookAsaasController`). O BFF relaya o Garmin de proposito; o Asaas,
|
||||
# nao. Sem esta linha o aviso de pagamento morre no BFF, e o sintoma e o
|
||||
# pior possivel: **a cobranca e paga e nunca baixada**, sem erro do nosso
|
||||
# lado — o provedor so registra uma entrega recusada.
|
||||
#
|
||||
# O Traefik ordena por TAMANHO do prefixo, entao esta (26 caracteres) vence
|
||||
# `/api/public` (11) sozinha. Fica escrita primeiro mesmo assim, para
|
||||
# ninguem reordenar sem perceber.
|
||||
#
|
||||
# `servico-financeiro` e o Service; num tenant consolidado ele aponta para
|
||||
# o `runtime-operacao`, que e onde o financeiro roda de verdade.
|
||||
#
|
||||
# Quem autentica e o cabecalho `asaas-access-token`, no controlador.
|
||||
- path: /api/public/webhooks/asaas
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: servico-financeiro
|
||||
port:
|
||||
number: 80
|
||||
- path: /api/public
|
||||
pathType: Prefix
|
||||
backend:
|
||||
|
||||
@@ -15,6 +15,30 @@ spec:
|
||||
- host: escolinha.athleticmap.influxdigital.com.br
|
||||
http:
|
||||
paths:
|
||||
# O webhook de PAGAMENTO do Asaas, ANTES do /api/public generico.
|
||||
#
|
||||
# Aquele manda tudo de /api/public para o `servico-bff`, e o BFF NAO tem
|
||||
# controlador para esta rota — so o financeiro tem
|
||||
# (`WebhookAsaasController`). O BFF relaya o Garmin de proposito; o Asaas,
|
||||
# nao. Sem esta linha o aviso de pagamento morre no BFF, e o sintoma e o
|
||||
# pior possivel: **a cobranca e paga e nunca baixada**, sem erro do nosso
|
||||
# lado — o provedor so registra uma entrega recusada.
|
||||
#
|
||||
# O Traefik ordena por TAMANHO do prefixo, entao esta (26 caracteres) vence
|
||||
# `/api/public` (11) sozinha. Fica escrita primeiro mesmo assim, para
|
||||
# ninguem reordenar sem perceber.
|
||||
#
|
||||
# `servico-financeiro` e o Service; num tenant consolidado ele aponta para
|
||||
# o `runtime-operacao`, que e onde o financeiro roda de verdade.
|
||||
#
|
||||
# Quem autentica e o cabecalho `asaas-access-token`, no controlador.
|
||||
- path: /api/public/webhooks/asaas
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: servico-financeiro
|
||||
port:
|
||||
number: 80
|
||||
- path: /api/public
|
||||
pathType: Prefix
|
||||
backend:
|
||||
|
||||
@@ -15,6 +15,30 @@ spec:
|
||||
- host: piloto.athleticmap.influxdigital.com.br
|
||||
http:
|
||||
paths:
|
||||
# O webhook de PAGAMENTO do Asaas, ANTES do /api/public generico.
|
||||
#
|
||||
# Aquele manda tudo de /api/public para o `servico-bff`, e o BFF NAO tem
|
||||
# controlador para esta rota — so o financeiro tem
|
||||
# (`WebhookAsaasController`). O BFF relaya o Garmin de proposito; o Asaas,
|
||||
# nao. Sem esta linha o aviso de pagamento morre no BFF, e o sintoma e o
|
||||
# pior possivel: **a cobranca e paga e nunca baixada**, sem erro do nosso
|
||||
# lado — o provedor so registra uma entrega recusada.
|
||||
#
|
||||
# O Traefik ordena por TAMANHO do prefixo, entao esta (26 caracteres) vence
|
||||
# `/api/public` (11) sozinha. Fica escrita primeiro mesmo assim, para
|
||||
# ninguem reordenar sem perceber.
|
||||
#
|
||||
# `servico-financeiro` e o Service; num tenant consolidado ele aponta para
|
||||
# o `runtime-operacao`, que e onde o financeiro roda de verdade.
|
||||
#
|
||||
# Quem autentica e o cabecalho `asaas-access-token`, no controlador.
|
||||
- path: /api/public/webhooks/asaas
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: servico-financeiro
|
||||
port:
|
||||
number: 80
|
||||
- path: /api/public
|
||||
pathType: Prefix
|
||||
backend:
|
||||
|
||||
Reference in New Issue
Block a user