Commit Graph

146 Commits

Author SHA1 Message Date
deploy 0a723e8d38 feat(plataforma): o visual novo para todo tenant 2026-09-25 21:37:43 +00:00
deploy 5c6e5c7c3c feat(plataforma): cartao por plano, abaixo da faixa 2026-09-25 21:21:27 +00:00
deploy 421af4298e feat(plataforma): os paineis na identidade do escolinha 2026-09-25 21:17:47 +00:00
deploy 07701d829f feat(plataforma): enderecos limpos: /minha-conta e /painel-do-dono 2026-09-25 21:03:53 +00:00
deploy 5b3f17da1d feat(plataforma): enderecos limpos: /minha-conta e /painel-do-dono 2026-09-25 21:00:52 +00:00
deploy 5a29bf87bf chore(plataforma): servico-captacao:4.3-endereco-limpo 2026-09-25 21:00:28 +00:00
deploy 74a4265603 fix(plataforma): as rotas do painel do comprador e do dono chegam ao captacao 2026-09-25 20:56:44 +00:00
deploy 75019eb090 feat(atm-plataforma): tela de login Athletic Map 2026-09-25 20:48:04 +00:00
deploy cbf943f9cc chore(plataforma): servico-captacao:4.2-convite 2026-09-25 20:37:17 +00:00
deploy 02b4d9926d feat(plataforma): liga o painel do comprador (minha-conta.html no ar) 2026-09-25 20:32:49 +00:00
deploy e12b7e7207 feat(plataforma): o painel do comprador 2026-09-25 20:32:04 +00:00
deploy 0cc8324521 chore(plataforma): servico-captacao:4.1-minha-conta 2026-09-25 20:29:20 +00:00
deploy eacbafcbee feat(plataforma): OIDC do painel do comprador no captacao (reconciliador desligado) 2026-09-25 20:27:46 +00:00
deploy 0dc6bbed26 feat(plataforma): o painel do dono 2026-09-25 16:17:33 +00:00
deploy 4cb3920542 chore(plataforma): servico-captacao:4.0-painel-instant 2026-09-25 16:14:33 +00:00
deploy f3872c836f chore(plataforma): servico-captacao:3.9-painel-liberado 2026-09-25 16:10:25 +00:00
deploy df14259f03 chore(plataforma): servico-captacao:3.8-painel 2026-09-25 16:05:22 +00:00
deploy debe8e4a45 chore(plataforma): servico-captacao:3.7-plano-chega 2026-09-25 15:52:58 +00:00
deploy 4d87d5c287 chore(plataforma): servico-captacao:3.6-subpath 2026-09-25 15:44:59 +00:00
provisionamento Athletic Map 1aebf8983c feat(plataforma): PgBouncer passa a servir o tenant teste5
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-25 15:28:13 +00:00
deploy 7b67bf810e feat(plataforma): o botao de teste responde onde se clica 2026-09-25 15:18:50 +00:00
deploy 11a786a6d5 chore(plataforma): liga o plano de teste (R$ 5.00) 2026-09-25 13:49:29 +00:00
deploy 4660804da7 feat(plataforma): botao de teste, atras de ?teste=1 2026-09-25 13:45:16 +00:00
deploy 123c54c0b2 chore(plataforma): servico-captacao:3.5-plano-de-teste 2026-09-25 13:42:01 +00:00
deploy 16ee8332a9 chore(plataforma): servico-captacao:3.4-pool-recarrega 2026-09-25 13:25:47 +00:00
deploy 5633bd42ba revert(rbac): a permissao de namespaces nao serve, e nao fica
Pedi get/list em namespaces para a etapa ARGO_SINCRONIZADO provar que o
Argo aplicou. NAO FUNCIONA: o ClusterRole e ligado a conta por
RoleBinding POR TENANT, e RoleBinding so concede DENTRO do seu
namespace. `namespaces` e recurso de cluster, entao a resposta continua
negada -- e o que resolveria e um ClusterRoleBinding, porta bem mais
larga do que a pergunta.

A etapa passou a provar pelo Secret db-credentials do tenant, que
responde a mesma coisa e um pouco mais: para ele ser legivel o Argo teve
de criar namespace, Role, RoleBinding e SealedSecret, e o controlador
teve de abri-lo. Permissao que ninguem usa nao se pede.
2026-09-25 13:24:14 +00:00
deploy 532a95138a feat(rbac): o provisionamento passa a enxergar namespaces
A etapa ARGO_SINCRONIZADO concluia no `git push`, que e outra coisa:
entre empurrar e aplicar esta o ciclo do gerador de diretorio do
ApplicationSet. A etapa seguinte encontrava o namespace inexistente e
recebia 403 -- sem permissao dentro dele, a API nao diz "nao existe",
diz "nao pode" -- e queimava tentativas esperando por algo que nao era
trabalho dela.

get e list, so em namespaces. O que isto revela e o NOME dos namespaces,
para um servico que e justamente quem os cria.
2026-09-25 13:18:53 +00:00
provisionamento Athletic Map a83c287bdf feat(plataforma): PgBouncer passa a servir o tenant zico-0
Escrito pela etapa BANCO_CRIADO do provisionamento.
2026-09-25 13:02:03 +00:00
deploy 64aeb53cb2 chore(plataforma): servico-captacao:3.3-remetente 2026-09-25 12:37:27 +00:00
deploy 97e7f9ebc8 feat(plataforma): a landing page leva direto ao pagamento 2026-09-25 12:21:57 +00:00
deploy f5e6dee168 chore(plataforma): servico-captacao:3.2-checkout-direto 2026-09-25 12:18:37 +00:00
deploy 50112c69e4 chore(plataforma): rotaciona a senha de aplicativo do SMTP 2026-09-25 10:47:54 +00:00
deploy ca028cf46a revert(plataforma): o selo do SMTP volta ao anterior
O script de rotacao usou `bash -s` com o roteiro E a senha no mesmo stdin: o
`read` consumiu linha do proprio roteiro, e o Secret foi selado com lixo (54
caracteres). O pod nao tinha reiniciado, entao o e-mail continuava funcionando
pela variavel ja carregada — mas o proximo restart quebraria.

Volta ao selo que funciona. A senha nova sera aplicada pelo script corrigido.
2026-09-25 02:45:43 +00:00
deploy 7aca13ea4e chore(plataforma): rotaciona a senha de aplicativo do SMTP 2026-09-25 02:43:13 +00:00
deploy 8d28bdf418 feat(plataforma): a landing page com planos e contratacao 2026-09-25 02:29:18 +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 6382f9047d feat(atm-plataforma): tela de login Athletic Map 2026-09-25 01:04:19 +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 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 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