Commit Graph

493 Commits

Author SHA1 Message Date
deploy 1ac05a7425 feat(atm-escolinha): tela de login Athletic Map 2026-09-25 02:18:34 +00:00
deploy c900288ad0 feat(atm-plataforma): tela de login Athletic Map 2026-09-25 02:16:20 +00:00
deploy 6b13662cb9 chore(plataforma): tira o preco de teste de R$ 5 do bronze
A prova de ponta a ponta terminou. Com o bloco no ar, /planos devolvia bronze
mensal 5,00 contra anual 1.870,00 — e a landing page mostraria os dois lado a
lado.
2026-09-25 02:10:58 +00:00
deploy 0e94ef54e9 feat(plataforma): /api/public/contratacoes no Ingress
A contratacao pela landing page. Aqui nao ha catch-all: caminho que nao esta
escrito nao existe — o endpoint respondeu vazio com a imagem ja no ar porque o
servico tinha a rota e o Ingress nao.
2026-09-25 01:53:21 +00:00
deploy f507f14140 chore(plataforma): servico-captacao:3.1-autosservico 2026-09-25 01:51:22 +00:00
deploy c558cb0447 chore(plataforma): servico-captacao:3.0-autosservico 2026-09-25 01:42:52 +00:00
deploy 5fa7e40be5 chore: as copias .bak do gerador de tema saem do versionamento
Elas existem para o --rollback. Versionadas, deixavam a arvore suja e
derrubavam o pull --rebase do proprio gerador na publicacao seguinte.
2026-09-25 01:07:30 +00:00
deploy b01ea8a6de feat(atm-escolinha): tela de login Athletic Map 2026-09-25 01:06:42 +00:00
deploy 6382f9047d feat(atm-plataforma): tela de login Athletic Map 2026-09-25 01:04:19 +00:00
deploy c65e858fb6 feat(molde): o realm nasce em portugues do Brasil
internationalizationEnabled vem FALSE por padrao no Keycloak, e ai ele cai no
en — o e-mail sairia em ingles mesmo com o emailTheme certo. defaultLocale
pt-BR e supportedLocales so pt-BR: uma opcao so nao mostra seletor de idioma na
tela de login.
2026-09-25 00:48:23 +00:00
deploy 91920edff8 feat(escolinha): o Keycloak proprio monta o tema de e-mail
Ate agora o cliente deste tenant recebia o e-mail de fabrica em ingles,
enquanto os tenants novos ja recebiam o da marca.
2026-09-25 00:45:47 +00:00
deploy 39ba5f8b39 feat(plataforma): tema de e-mail Athletic Map 2026-09-25 00:45:08 +00:00
deploy 16af89868a fix(molde): os temas no REALM, e nao dentro do cliente
Minha insercao anterior casou por substring e caiu no objeto do cliente spa,
onde loginTheme e emailTheme nao querem dizer nada — entao um tenant novo
continuava nascendo com a tela de fabrica, e o commit anterior dizia o
contrario.

Refeito carregando o JSON, tirando as chaves de onde nao pertenciam e provando
que o resto do documento e identico antes de gravar.
2026-09-25 00:37:54 +00:00
deploy 690175d6cf feat(molde): o realm do tenant nasce com os temas de login e de e-mail
O loginTheme eu tinha editado so na copia local e nunca empurrado — um tenant
novo ainda nasceria com a tela de fabrica. Vai junto com o emailTheme.
2026-09-25 00:36:17 +00:00
deploy 16e805cc35 feat(plataforma): o Keycloak monta o tema de e-mail Athletic Map
Sao quatro arquivos em tres diretorios, e ConfigMap nao tem diretorio: as
chaves sao achatadas e o items[].path do volume remonta a hierarquia.
2026-09-25 00:33:40 +00:00
deploy f26f4a4559 feat(plataforma): tema de e-mail Athletic Map 2026-09-25 00:32:56 +00:00
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