Commit Graph

477 Commits

Author SHA1 Message Date
deploy 62aa13bbb1 fix(molde): a SPA precisa do NOME COMPLETO dos servicos
O nginx roteia /bff e /api com proxy_pass de variavel, e ai resolve por
requisicao usando a diretiva resolver. O resolver do nginx nao le os dominios
de busca do /etc/resolv.conf: pergunta o nome cru ao CoreDNS, que responde
NXDOMAIN para servico-bff.

O sintoma engana: 502 com could not be resolved no log do nginx, enquanto
getent hosts servico-bff dentro do MESMO pod resolve — porque o getent usa o
search e o nginx nao. E por isso que o escolinha sempre usou FQDN aqui.
2026-09-24 23:50:28 +00:00
deploy 155ebbcd99 feat(tenant): os dois clientes pagos recebem o BFF, a cota nova e as imagens
Renderizado do molde consolidado. Sem o BFF a SPA abria vazia: /bff devolvia
502 e e ele quem a SPA chama para quase tudo.
2026-09-24 23:43:00 +00:00
deploy 935b6c65f0 feat(molde): o BFF, a cota que o comporta, o tema de login e as imagens do escolinha
O tenant provisionado subia com a tela de login de fabrica e o sistema vazio.
Quatro mudancas, medidas contra o escolinha que e o que funciona:

- 90-servico-bff.yaml: o quinto Deployment. A SPA chama o BFF para quase tudo;
  sem ele /bff devolve 502. As URLs apontam para os RUNTIMES, e nao para os
  treze servicos — e a diferenca deste molde para o do escolinha.
- a cota sobe para 10 pods e 2Gi: com quatro Deployments o tenant ja usava
  1232Mi de 1536Mi, e o BFF pede 256Mi. Caberia em repouso e estouraria no
  primeiro rollout.
- loginTheme athleticmap-v2 no realm, com o tema montado no Keycloak
  compartilhado.
- imagens alinhadas: frontend 2.67-csp-script e os runtimes 1.2-auditoria.

O que NAO mudou, e por que: ATM_API_URL continua no runtime-operacao e o
Ingress continua com uma rota. Os dois estao certos — o nginx da SPA roteia
/bff e /api por conta propria, e ATM_API_URL e o destino do que nao pertence a
grupo nenhum, hoje o webhook em /api/public. O cabecalho do molde ja dizia.
2026-09-24 23:42:16 +00:00
deploy d56a72ac5d feat(plataforma): o Keycloak compartilhado monta o tema Athletic Map
Vale para TODO tenant provisionado: eles nao tem Keycloak proprio, usam este,
um realm cada. O tema vem por ConfigMap e nao por imagem porque o login.ftl traz
as imagens em data URI — o ConfigMap e montado read-only sobre o diretorio e nao
sobra resources/ para o Keycloak servir.
2026-09-24 23:36:37 +00:00
deploy 8798cb85c1 feat(atm-plataforma): tela de login Athletic Map 2026-09-24 23:34:07 +00:00
deploy 51072c153e feat(molde): frontendUrl no realm do tenant
Sem ele o Keycloak monta os links e o iss com o KC_HOSTNAME global
(auth-plataforma), e os runtimes do tenant validam contra ATM_ISSUER, que o
molde define como auth.athleticmap.com. Os dois tem de bater.

Nao da para resolver so no KC_HOSTNAME porque ele e um so e a plataforma
depende do valor antigo. Dai o frontendUrl por realm, que e para isto.
2026-09-24 23:10:49 +00:00
deploy 7090f2a1b3 feat(plataforma): auth.athleticmap.com, o host de autenticacao DOS TENANTS
O molde do tenant ja apontava para ca — a SPA em ATM_KC_URL e os tres runtimes
em ATM_ISSUER — e o host nao existia. O navegador batia em
ERR_CERT_AUTHORITY_INVALID e, passando por cima, em 404 do Traefik.

Nao e auth-plataforma para o cliente: o endereco aparece na barra dele durante
o login, e o nome do nosso tenant interno nao tem o que fazer ali.
2026-09-24 23:08:19 +00:00
deploy bb5e650d7a fix(plataforma): 8 tentativas por etapa, e nao 5
A etapa BANCO_CRIADO reinicia o PgBouncer e espera ele voltar. Com 5, o backoff
da 155s — menos do que o pod novo levou nas tres medicoes de hoje, e os dois
clientes pagos precisaram de retomada a mao. Com 8 da 515s, dentro da janela.
2026-09-24 22:57:38 +00:00
deploy 4e977df8b7 fix(plataforma): KC_HOSTNAME vira URL COMPLETA, senao o e-mail leva link quebrado
So o hostname faz o Keycloak resolver esquema e porta a partir da requisicao.
O provisionamento chama a Admin API por dentro (http://keycloak:8080), e o link
do convite saiu http://auth-plataforma.athleticmap.com:8080 — o cliente clicava
e dava ERR_CONNECTION_TIMED_OUT.
2026-09-24 22:54:55 +00:00
deploy 298a7678ac feat(plataforma): saida para o SMTP na 587, so para quem manda e-mail
O deny-cross-tenant libera 443 para a internet e nada mais. O Keycloak batia em
Network is unreachable na 587, e o erro que chegava ao provisionamento era
Failed to send execute actions email — que manda procurar no SMTP, nao na rede.
2026-09-24 22:45:15 +00:00
deploy dc510205d1 feat(tenant): Role por tenant para os dois Secrets que o provisionamento le
db-credentials (a senha do papel) e <tenant>-tls (so a existencia, que e como a
etapa DNS_PUBLICADO sabe que o cert-manager terminou). Por tenant porque o nome
do TLS depende dele e resourceNames nao aceita curinga — e dar get em qualquer
Secret do namespace deixaria o provisionamento ler a chave Asaas DO CLIENTE.
2026-09-24 22:39:50 +00:00
provisionamento Athletic Map 9b95eb2ae0 feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste-2
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 22:34:42 +00:00
provisionamento Athletic Map df249c9516 feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste-2
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 22:33:46 +00:00
provisionamento Athletic Map e2ec11b311 feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste-2
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 22:33:09 +00:00
provisionamento Athletic Map b9344c10d3 feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste-2
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 22:32:49 +00:00
provisionamento Athletic Map 82307bd2c4 feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste-2
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 22:32:30 +00:00
provisionamento Athletic Map 0b185f3a09 feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 22:29:03 +00:00
provisionamento Athletic Map 51baeb9341 feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 22:28:40 +00:00
provisionamento Athletic Map 6118eb5142 feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 22:28:17 +00:00
deploy bf882f0824 chore(plataforma): servico-captacao:2.9-corrigir-papel 2026-09-24 22:27:03 +00:00
deploy 3e1d9c4ec1 chore(plataforma): servico-captacao:2.8-userlist-senha 2026-09-24 22:22:18 +00:00
provisionamento Athletic Map f0b0a9191a feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 21:53:25 +00:00
deploy 9c29f8c347 chore(plataforma): servico-captacao:2.7-pool-recarrega 2026-09-24 21:52:23 +00:00
deploy 298b3d13fb feat(plataforma): a etapa BANCO_CRIADO pode recarregar o PgBouncer
Le o ConfigMap pgbouncer-conf (para saber se o Argo ja aplicou) e reinicia o
Deployment pgbouncer. Os dois amarrados por resourceNames.
2026-09-24 21:52:19 +00:00
provisionamento Athletic Map 6009f98113 feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste-2
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 21:42:12 +00:00
provisionamento Athletic Map f08d1341c6 feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste-2
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 21:41:21 +00:00
provisionamento Athletic Map c3f14f77ea feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste-2
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 21:40:50 +00:00
provisionamento Athletic Map 71f6822e2a feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste-2
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 21:40:28 +00:00
provisionamento Athletic Map 264a2dcdb6 feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste-2
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 21:40:11 +00:00
provisionamento Athletic Map 76e11b9aca feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 21:39:54 +00:00
provisionamento Athletic Map 3f965f07d5 feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 21:39:03 +00:00
provisionamento Athletic Map 88aab7d17d feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 21:38:30 +00:00
provisionamento Athletic Map 96888649bc feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 21:38:09 +00:00
provisionamento Athletic Map bcc7de951b feat(plataforma): PgBouncer passa a servir o tenant escolinha-de-teste
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-24 21:37:53 +00:00
deploy 754475e94d chore(plataforma): servico-captacao:2.6-banco-do-tenant 2026-09-24 21:36:36 +00:00
deploy 85ee182b43 feat(plataforma): infraestrutura da etapa BANCO_CRIADO
RBAC amarrado por resourceNames (db-credentials nos tenants, pgbouncer-userlist
so aqui), netpol do PgBouncer por ROTULO em vez de por nome, e a credencial de
administracao do Postgres compartilhado para o servico-captacao.
2026-09-24 21:36:33 +00:00
deploy 642e091641 chore(plataforma): servico-captacao:2.5-cadastro-do-cliente 2026-09-24 21:15:28 +00:00
provisionamento Athletic Map b51778076f feat(tenant): provisiona escolinha-de-teste
Cliente: Escolinha de Teste
Assinatura: sub_h2dtdvlbt83iq2lg
Plano: (nao informado)
Realm: athleticmap-6

Gerado pelo provisionamento automatico (P5.2/P5.3) a partir do molde
consolidado de P4.9. O ApplicationSet cria a Application sozinho pelo
gerador de diretorio sobre tenants/*.
2026-09-24 21:03:10 +00:00
deploy 466c70fb25 chore(plataforma): servico-captacao:2.4-retomar-relogio 2026-09-24 21:01:51 +00:00
deploy 5e5c618273 chore(plataforma): servico-captacao:2.3-retomar 2026-09-24 20:51:32 +00:00
deploy c3e821ba90 chore(plataforma): servico-captacao:2.2-smtp-hostinger 2026-09-24 20:38:12 +00:00
deploy d68cf37493 feat(plataforma): SMTP pela Hostinger, e o molde do realm no repositorio
O dominio athleticmap.com tem MX na Hostinger e SPF que so autoriza a
Hostinger. A credencial foi medida: aceita em smtp.hostinger.com:587,
recusada com 535 no Gmail e no Titan.

O molde do realm nunca tinha sido empurrado — PROVISIONAMENTO_REALM_TEMPLATE
estava vazio, e a etapa REALM_CRIADO teria parado nele logo depois do SMTP.
2026-09-24 20:38:05 +00:00
deploy 5a60e81b1f chore(plataforma): rotaciona o token do Gitea do provisionador
O anterior apareceu num output de printenv em 2026-09-24. A senha do Keycloak
no mesmo Secret nao foi exposta e foi reselada sem mudar.
2026-09-24 20:26:36 +00:00
provisionamento Athletic Map 3e9bc6c370 feat(tenant): provisiona escolinha-de-teste-2
Cliente: (sem nome no pedido)
Assinatura: sub_60id65hukv48tshu
Plano: (nao informado)
Realm: athleticmap-7

Gerado pelo provisionamento automatico (P5.2/P5.3) a partir do molde
consolidado de P4.9. O ApplicationSet cria a Application sozinho pelo
gerador de diretorio sobre tenants/*.
2026-09-24 20:05:10 +00:00
deploy fef8108cd7 chore(plataforma): servico-captacao:2.1-plano-opcional 2026-09-24 20:03:54 +00:00
deploy 6733faea2c chore(plataforma): servico-captacao:2.0-nome-por-documento 2026-09-24 19:56:34 +00:00
provisionamento Athletic Map 101fa8108d feat(tenant): provisiona escolinha-de-teste
Cliente: Escolinha de Teste
Assinatura: sub_h2dtdvlbt83iq2lg
Plano: (nao informado)
Realm: athleticmap-6

Gerado pelo provisionamento automatico (P5.2/P5.3) a partir do molde
consolidado de P4.9. O ApplicationSet cria a Application sozinho pelo
gerador de diretorio sobre tenants/*.
2026-09-24 18:58:52 +00:00
deploy e9281b22cd chore(plataforma): servico-captacao:1.9-selar-cert-vazio 2026-09-24 18:56:37 +00:00
deploy 18bae612fe chore(plataforma): servico-captacao:1.8-causa-no-log 2026-09-24 18:41:26 +00:00
deploy 90fbb681c7 chore(plataforma): servico-captacao:1.7-nome-do-lead 2026-09-24 18:09:41 +00:00