Commit Graph

122 Commits

Author SHA1 Message Date
ATM Platform 97e0aeecd4 feat(P0.9): fase issuer - o issuer passa para athleticmap.com 2026-09-23 12:30:41 +00:00
ATM Platform eeda1e90da Revert "feat(P0.9): fase issuer - o issuer passa para athleticmap.com"
This reverts commit f4747712ad.
2026-09-23 12:22:02 +00:00
ATM Platform f4747712ad feat(P0.9): fase issuer - o issuer passa para athleticmap.com 2026-09-23 12:21:47 +00:00
ATM Platform 5e1bf3a00b feat(P0.9): fase realm - o realm passa a aceitar os dois dominios 2026-09-23 12:14:17 +00:00
deploy 440ade90f5 feat(P0.9): fase HOSTS — os cinco tenants passam a atender os DOIS dominios
Aditiva de proposito: nenhum endereco antigo sai. Quem esta usando
<tenant>.athleticmap.influxdigital.com.br continua entrando, e o cert-manager
passa a emitir tambem o certificado de <tenant>.athleticmap.com.

Foi possivel porque o dono criou o curinga hoje: *.athleticmap.com resolve para
187.77.37.184, conferido com um nome ALEATORIO — demo. ou www. responderiam
mesmo sem curinga, e a conferencia passaria por engano.

9 arquivos, 28 trocas, 317 insercoes e 4 remocoes. As 4 sao as linhas de TLS em
fluxo, reescritas com os dois dominios na mesma lista.

Cada regra de Ingress foi DUPLICADA com os mesmos paths, e nao trocada: uma
regra com host: X so atende X.

`platform/` (ArgoCD e Grafana) fica FORA: mexer no Ingress do ArgoCD no meio de
uma migracao de dominio e perder o instrumento de rollback.

Conferido antes de aplicar: YAML valido em todos os Ingress, e ZERO host sem
entrada de TLS.

O que NAO muda aqui: ATM_ISSUER, ATM_KC_URL e as URLs do Garmin. Ninguem e
deslogado nesta fase.
2026-09-23 11:35:48 +00:00
deploy 4c338c0eda feat(piloto,acme,escolinha): o Ingress simplificado, como no demo (P4.6)
Mesma mudanca do commit anterior, agora nos tres restantes. O demo foi primeiro
e ficou conferido de fora: os 13 contextos em 200, /bff em 200, /inicio e
/lp-escolinhas em 200, e — o que mais importava — /api/nao-mapeado continua
devolvendo 401, como antes. O comportamento visivel nao mudou.

Catorze linhas saem de cada um. O destino do /api passa de backend (o legado)
para frontend-spa; a decisao "401 ou 404" segue aberta e intacta.
2026-09-22 19:54:40 +00:00
deploy 1dda8d518d 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.
2026-09-22 15:02:05 +00:00
deploy a6d1f36d67 fix(tenants): o roteamento interno do nginx precisa de FQDN, e nunca funcionou
Ao conferir o P4.6, o nginx do frontend devolveu 502 em TODOS os caminhos
internos, inclusive /bff. O log diz o porque:

    servico-bff could not be resolved (3: Host not found)
    runtime-saude could not be resolved (3: Host not found)

O "resolver" do nginx NAO aplica os "search" do /etc/resolv.conf: ele consulta o
nome exatamente como esta escrito. O comando "getent hosts servico-bff", de
dentro do MESMO pod, resolve — porque usa o resolv.conf, que tem
"search escolinha-prod.svc.cluster.local ...". O nginx nao usa.

Isso e PREEXISTENTE e estava invisivel: o Ingress roteia /bff e as treze linhas
de /api/<contexto> direto para os Services, entao o nginx nunca foi exercitado
nesses caminhos. Quem removesse as linhas do Ingress — que e exatamente o que
P4.6 quer — derrubaria os treze contextos E o /bff de uma vez, com 502 e nenhuma
pista no Ingress para explicar.

As cinco variaveis passam a usar FQDN. Conferido depois, batendo no nginx por
dentro (sem passar pelo Ingress): os 13 contextos respondem 200, e o /bff
tambem. De fora, os quatro tenants seguem em 200 — nada regrediu.
2026-09-22 13:53:06 +00:00
deploy 6dd1fbc24e feat(tenants): o roteamento interno do nginx, por grupo de contextos (P4.6)
As tres variaveis estavam VAZIAS nos quatro tenants, e render-config.sh faz toda
ausente cair em ATM_API_URL, que cai em http://servico-bff. O nginx mandaria
/api/cadastro para o BFF, que responde 401 em vez da resposta do contexto.

Nada quebrava porque o INGRESS atende antes, com uma linha por contexto — e sao
justamente essas linhas que P4.6 quer remover. Sem isto, remove-las quebraria os
treze caminhos de uma vez.

Aditivo: enquanto o Ingress existir, o trafego nem chega a este nginx.
2026-09-22 13:49:10 +00:00
deploy a2d8644595 chore(tenants): frontend-spa:2.67-csp-script 2026-09-22 12:17:44 +00:00
deploy 6faa9c8ab7 fix(tenants): ATM_PLANO=institucional (sem ele a barreira cai em bronze e os modulos pagos dao 403) 2026-09-22 11:06:05 +00:00
deploy 76fd9fd270 chore(tenants): frontend-spa:2.66-lp-css 2026-09-22 01:49:39 +00:00
deploy e666b8e045 feat(backup): envio para fora do servidor (atm-pg-backup:1.2 com rclone) 2026-09-21 23:15:59 +00:00
deploy 5cae175d97 feat(backup): envio para fora do servidor (atm-pg-backup:1.2 com rclone) 2026-09-21 23:13:35 +00:00
deploy 07682c2859 chore(tenants): servico-bff:2.0-exportacao 2026-09-21 22:31:53 +00:00
deploy 5e467f768a chore(tenants): runtime-operacao:1.2-auditoria 2026-09-21 22:24:14 +00:00
deploy b0374ac0a0 chore(tenants): runtime-core:1.2-auditoria 2026-09-21 22:18:05 +00:00
deploy 8a84598042 fix(tenants): ATM_PLANO=institucional (sem ele a barreira cai em bronze e os modulos pagos dao 403) 2026-09-21 21:44:09 +00:00
deploy 69db0586f9 fix(tenants): ATM_PLANO=institucional (sem ele a barreira cai em bronze e os modulos pagos dao 403) 2026-09-21 21:37:08 +00:00
deploy 329790c7ac feat(acme): BFF e frontend novos (P4.3-P4.9) 2026-09-21 11:31:16 +00:00
deploy 1ed00120c0 feat(plataforma,tenants): coleta de metricas e permissao do provisionamento 2026-09-21 02:30:31 +00:00
deploy aec24e06c3 feat(acme): runtimes consolidados ao lado dos servicos (P4.3-P4.9) 2026-09-20 19:20:38 +00:00
deploy 1807581840 feat(acme): BFF e frontend novos (P4.3-P4.9) 2026-09-19 19:36:38 +00:00
deploy d13940f04e feat(acme): contextos do runtime-saude passam a responder por ele (P4.3-P4.9) 2026-09-19 19:35:47 +00:00
deploy e152c80215 feat(acme): runtime-saude no ar (P4.3-P4.9) 2026-09-19 19:35:44 +00:00
deploy 4f23ce124e feat(acme): contextos do runtime-operacao passam a responder por ele (P4.3-P4.9) 2026-09-19 19:34:32 +00:00
deploy 9048823f5f feat(acme): runtime-operacao no ar (P4.3-P4.9) 2026-09-19 19:34:29 +00:00
deploy ea2bfb8e47 feat(acme): contextos do runtime-core passam a responder por ele (P4.3-P4.9) 2026-09-19 19:33:58 +00:00
deploy 15bcfcdce4 feat(acme): runtimes consolidados ao lado dos servicos (P4.3-P4.9) 2026-09-19 19:32:48 +00:00
deploy 8a1c933427 feat(acme): servicos passam a usar o Postgres compartilhado (P4.7) 2026-09-19 19:30:44 +00:00
deploy 42fc90c2d3 chore(acme): servicos parados para a copia ao compartilhado (P4.7) 2026-09-19 19:30:12 +00:00
deploy 83787e0cbc fix(acme): egress para o PgBouncer do compartilhado (P4.7) 2026-09-19 19:29:48 +00:00
deploy 3d495a2cad feat(acme): senha do role no compartilhado 2026-09-19 19:29:47 +00:00
atmadmin e23063e45d fix(tls): garmin-public deixa de disputar o cert; ingress principal e unico dono (2 hosts)
Corrige escolinha-tls que saiu com 1 host (faltava auth-escolinha), servindo TRAEFIK DEFAULT CERT no Keycloak.
Remove cert-manager annotation dos 96-ingress-garmin-public dos 4 tenants (o cert e emitido pelo ingress principal com [tenant, auth-tenant]).
2026-07-28 16:47:55 +00:00
atmadmin c2db5f2c17 perf(tenants): reduz CPU requests dos servicos (150m/100m->50m, keycloak 250m->150m) nos 4 tenants
Libera CPU no no unico para acomodar o 4o silo (escolinha) sem hardware novo.
Limits preservados (burst inalterado); apenas o gate de scheduling foi ajustado.
2026-07-28 15:54:21 +00:00
atmadmin 35339b9767 feat(tenants): replica Garmin/Apple Watch e nivela financeiro 1.4 em piloto/acme/demo
- piloto+acme: saude 1.88-garmin, bff 1.87-garmin, frontend 1.90-garmin + ingress publico Garmin + env GARMIN_* (redirect por tenant)
- garmin-oauth secret criado em piloto-prod/acme-prod (fora do GitOps, como no demo)
- financeiro nivelado para 1.4 em demo e acme (piloto ja estava)
2026-07-28 15:17:49 +00:00
cacadeko 0ba8e910de feat(saude): checklists multi-select estruturados (ansiedade/estresse) na ficha de Psicologia - saude 1.6 + frontend-spa 1.74 2026-06-25 13:17:07 +00:00
cacadeko 75834379a4 feat(saude): expoe Psicologia no Inicio + ficha rica de anamnese esportiva (legado) - frontend-spa 1.73 2026-06-25 12:59:03 +00:00
cacadeko c9773c17dc feat(nutricao): modal de visualizacao do alimento (ficha TACO completa) - frontend-spa 1.72 2026-06-25 12:42:56 +00:00
cacadeko 90875f8ebd deploy: servico-nutricao 1.9 (composicao TACO no catalogo de alimentos) + frontend-spa 1.71 2026-06-25 11:50:22 +00:00
ATM Platform ddd3b6b194 fix(spa): adiciona <base href=/> no index.html (corrige tela vazia no refresh de rota profunda) - 1.64 2026-06-23 00:32:46 +00:00
ATM Platform a120096570 fix(ui): form de atleta no painel claro (neutraliza card navy + labels escuros) - 1.63 2026-06-23 00:24:16 +00:00
ATM Platform afd024811b feat(ui): shell de modulo (sidebar) + Atletas na tabela rica clara (DataTable reutilizavel) - frontend-spa:1.62 2026-06-23 00:18:01 +00:00
ATM Platform f60f1233ac feat(inicio): dashboard claro/laranja com dominios+contextos (modulos Lovable) + topbar laranja (frontend-spa:1.61) 2026-06-22 23:58:11 +00:00
ATM Platform e7b373e801 feat(inicio): topbar enxuta (so marca) + dashboard no tema escuro (frontend-spa:1.60) 2026-06-22 23:14:38 +00:00
ATM Platform eceb75f898 feat(inicio): dashboard de modulos por dominio pos-login (frontend-spa:1.59) 2026-06-22 22:53:09 +00:00
ATM Platform 6a5e4af4c9 feat(agenda): integracao clinica - Agendar retorno em Saude/Nutricao + deep-link (frontend-spa:1.58) 2026-06-22 22:05:10 +00:00
ATM Platform 8786f6fc0a feat(agenda): visao de calendario (semana) no frontend (frontend-spa:1.57) 2026-06-22 21:49:31 +00:00
ATM Platform 9be499b037 feat(agenda): v1.1 bloqueio de conflito de horario do profissional (agenda:1.1) 2026-06-22 21:33:32 +00:00
ATM Platform ed9c0e9bda feat(agenda): novo contexto Agenda (agenda:1.0) + bff:1.33 + frontend-spa:1.56
- servico-agenda: agendamento de compromissos (consulta/avaliacao/retorno/treino/reuniao)
  CRUD + transicoes confirmar/realizar/cancelar/falta; schema agenda; /api/agenda
- ingress /api/agenda + ATM_AGENDA_URL no bff nos 3 tenants
2026-06-22 20:57:54 +00:00