Inventário de Aplicações → Repositórios
Mapeamento das aplicações da frota ECS para os repositórios da org, feito pela imagem ECR de cada task definition ativa.
Data: 2026-08-31 · revisado em 2026-09-02 pela fase 0 do runbook da RFC-0009
Fonte: AWS ECS sa-east-1 (conta 025910518967), 19 clusters — mapeamento feito pela imagem ECR de cada task definition ativa, cruzada com os workflows de build de cada repositório da org quanthubbr.
O que a revisão de 2026-09-02 mudou. A fase 0 da RFC-0009 existe porque a tabela
STACKSvai carimbar label a partir daqui: item classificado errado vira label errado, e corrigir label já escrito é trabalho que não precisava existir. Foram corrigidos o repositório do Backoffice (A5), a seção "Plataforma nova" (A0), o balde "interno" (A1/A2) e a linha do Aviator binary — cada um com a evidência ao lado. O que não foi resolvido está marcado como pendência, nunca preenchido por suposição.
Stack padrão (roda em quase todo cliente)
| App | Serviço ECS | Imagem ECR | Repositório | Clusters |
|---|---|---|---|---|
| Backoffice | <cliente>-bsvc | directus | quanthubbr/paas-pipeline | 15 |
| Front do trader | <cliente>-fsvc | paas-front | quanthubbr/paas-front | 15 |
| Risk Engine | <cliente>-resvc | risk-engine-linux | quanthubbr/risk-engine-csharp | 13 |
| Risk Ops | <cliente>-riskopssvc | risk-ops-tool + risk-analysis-api + profit-split-engine | quanthubbr/risk-ops-tool | 10 |
| BI | <cliente>-bisvc | business-bi | quanthubbr/business-bi | 7 |
O serviço de Risk Ops sobe três containers na mesma task, todos construídos pelo mesmo repositório.
Risk Ops e BI SERÃO DESCONTINUADOS (dono da plataforma, 2026-09-10). Quem os substitui é o PropManager Admin, que passa a integrar a stack
prophub. Os dois seguem no catálogo e mantidos — há cliente usando. Detalhe e alcance na emenda da seção Plataforma e ferramentas internas.
Corrigido em 2026-09-02 (A5): a imagem
directusé buildada peloquanthubbr/paas-pipeline, não pelo forkquanthubbr/directus. Evidência:paas-pipeline/.github/workflows/ci.ymldeclaraECR_REPOSITORY: directus, builda e empurra a imagem, e o repositório temdirectus/na raiz mais os workflows que operam a frota (deploy-clusters.yml,client-drift-check.yml,rollback-client-db.yml,promote-to-staging.yml). Oquanthubbr/directusé o fork do Directus upstream — descrição e workflows são os do projeto original (changeset-check,cla,blackbox), e o último push foi em 2025-10-03. Ele não é o que roda em cliente nenhum.Consequência para o catálogo: o
source-repodo blocobackofficeé opaas-pipeline.
Conectores de corretora
Todos os conectores são construídos pelo repositório único quanthubbr/risk-engine-csharp, que publica
sete imagens ECR distintas a partir da mesma base de código. Seis delas estão na tabela abaixo; a
sétima (risk-engine-dashboard) saiu daqui em 2026-09-02 por não ser conector — ver A2, logo abaixo.
| App | Serviço ECS | Imagem ECR | Clusters |
|---|---|---|---|
| MT5 API | <cliente>-remt5apisvc | risk-engine-mt5-api | 5 |
| Rewin (Windows) | <cliente>-rewinsvc | risk-engine-win | 5 |
| Volumetrica | <cliente>-revolsvc | risk-engine-volumetrica | 2 |
| Nelogica Profit | <cliente>-re-nelo-profit-svc | risk-engine-neloprofit | 2 |
| Tron feed | dev-retronsvc | risk-engine-tron | 1 |
| Rithmic | dev-rerithsvc / dev-rerithapisvc | risk-engine-rithmic / risk-engine-rithmic-api | 1 |
A2 (2026-09-02): o RE Dashboard saiu desta tabela. O serviço é
re-dashboard-re-dashboardsvc— sem prefixo de cliente, ao contrário de todos os outros aqui. É singleton, logo aplicação interna e não conector por cliente. Foi para "Plataforma e ferramentas internas", abaixo.
Pendência — Rithmic (A5): as duas imagens Rithmic não aparecem nos workflows do clone local de
risk-engine-csharp, e o repositório que as constrói continua não confirmado. Em standby por
decisão do dono da plataforma (2026-09-02): o Rithmic ainda está em desenvolvimento. Isso mantém
a fase 3 da RFC-0009 (gateways) bloqueada de propósito, não por falta de investigação.
Atenção: o repositório quanthubbr/risk-engine (imagem risk-engine) é uma coisa diferente — é o motor de regras de risco e não tem serviço em ECS. Não confundir com risk-engine-csharp.
Plataforma e ferramentas internas
Aplicação interna aqui quer dizer: instância única, sem prefixo de cliente, operada pela própria
equipe. É o balde que vira a stack interno da RFC-0009.
| App | Serviço ECS | Imagem ECR | Repositório |
|---|---|---|---|
| DevOps Dashboard | devops-dashboardsvc | aws-dashboard | quanthubbr/devops-dashboard |
| RE Dashboard | re-dashboard-re-dashboardsvc | risk-engine-dashboard | quanthubbr/risk-engine-csharp |
| Billing | — | — | quanthubbr/billing-system |
Atenção: o repositório se chama devops-dashboard mas a imagem ECR se chama aws-dashboard. Os nomes divergem — vale lembrar na hora de buscar.
RE Dashboard é o monitoramento interno do Risk Engine (A2). Fica no ECS em standby por decisão do
dono da plataforma; quando migrar, migra como aplicação normal da plataforma — categoria do
devops-dashboard, não bloco de tenant. A config dele é fan-in (Mt5RestApi__Hosts__<tenant>,
uma entrada por tenant), e o resolvedor derives do scaffolder só faz fan-out: não é coberto pela
RFC-0008.
Billing é tooling, confirmado pelo dono da plataforma em 2026-09-02 (A5): não tem serviço nem
imagem, e sai do balde de deploy. Fica listado aqui como repositório, não como aplicação.
Pipeline PaaS saiu desta seção (A5, 2026-09-02). Ele não é ferramenta interna: paas-pipeline é
onde o Directus mora — o repositório que builda a imagem directus do bloco backoffice e que
opera o deploy da frota de clientes. Está no "Stack padrão", na linha do Backoffice, com a evidência.
Movidos daqui para "opcionais por cliente" (A1)
Os dois itens abaixo estavam neste balde e não são internos: o nome do serviço traz prefixo de
cliente, logo são por-tenant. Na RFC-0009 pertencem à stack prophub como blocos opcionais.
| App | Serviço ECS | Imagem ECR | Repositório | Evidência de que é por-cliente |
|---|---|---|---|---|
| PropManager Admin | <cliente>-pradmsvc | propmanager-admin | quanthubbr/propmanager-admin | 4 ambientes (dev, demo, euro, blueberry); substitui Risk Ops e BI ⇒ virou excludes no catálogo, e desde 2026-09-10 passa a integrar a stack prophub (emenda abaixo) |
| OMS | <cliente>-omssvc | oms-win | quanthubbr/quanthub-oms | prefixo de cliente no serviço |
Medido em 2026-09-02, e muda o que se sabia dos dois:
Nenhum dos dois roda hoje.
desiredCount: 0no OMS nos 2 clusters que o têm (euro,5p) — e, fora desta tabela, o mesmo vale para o BI: 0 em todos os 7. O inventário os contava como "2 clusters" e "7 clusters" porque contava existência de serviço, não execução. O BI não está descontinuado, e o motivo importa: os 7 tenants foram clientes que degustaram a ferramenta (dono da plataforma, 2026-09-03). O zero é fim de avaliação, não desativação — é um bloco que se liga por cliente quando vendido. Ler esses zeros como "serviço morto" levaria a tirá-lo do catálogo, e o próximo cliente que comprar BI recomeçaria do zero.EMENDA (2026-09-10, dono da plataforma) — o BI E o Risk Ops SERÃO DESCONTINUADOS. Quem os substitui é o PropManager Admin, e ele passa a fazer parte da stack
prophub. O parágrafo acima fica REVOGADO quanto ao status: as medições seguem válidas (0/7 no BI), mas a conclusão "é um bloco que se liga por cliente quando vendido" não — não há cliente novo para ligar.Três coisas que esta emenda NÃO diz, e que importam mais que ela:
- Não é remoção do catálogo. Há cliente usando: o Risk Ops roda
1/1em 8 dos 10 tenants que o declaram (medido 2026-09-03). Os blocos continuam no catálogo, continuam compondo e continuam mantidos. Descontinuado aqui significa não entra em cliente novo e tem substituto definido — não pode sair. A razão do parágrafo acima (tirar do catálogo faria o próximo cliente recomeçar do zero) continua valendo com força maior para quem JÁ usa.- "Risk Ops" é o serviço inteiro, ou seja os três containers do
risk-ops-tool: os blocosrisk-opserisk-analysis-api, mais oprofit-split-engine(medido em 2026-09-03 emdemoedev, deliberadamente nunca modelado). Orisk-analysis-apinão tem consumidor fora dorisk-ops, então vai junto por construção.- A varredura de consumidores externos do
risk-apinunca terminou — parou em 5 de 18 clusters quando a credencial SSO expirou. Descontinuar não fecha essa pendência: ela é o que diz se alguém de FORA chama a API, e a resposta muda o plano de desligamento, não o de catálogo.Esse estado passou a ser exprimível com
replicas: 0na formaapi(PR #236).scaling.mincontinua emminimum: 1: HPA comminReplicas: 0exige o feature gateHPAScaleToZero.O bloqueio do OMS não é o "IP fixo". Ele aponta para
172.31.6.238no QuestDB (porta 9000 HTTP e 8812 pg wire) e no Postgres. Um Service do Kubernetes resolveria o endereço sem esforço — o problema real era que o QuestDB não estava no cluster: roda no hosttrading-hub-01, em Docker Compose. É migração de banco de série temporal, não troca de string.Metade desse bloqueio caiu em 2026-09-04 (RFC-0010 §8.1, PR #249): o
QuestDBInstanceexiste como XRD, com Composition emitindo StatefulSet + Service + ConfigMap, e aparece no catálogo ao lado de Postgres e Redis. A outra metade continua de pé, e é a que importa para ooms: nenhuma instância foi provisionada, e não deve ser até o time do OMS responder se algum fluxo de operação cruza valores declient(RFC-0010 §9.1) — é essa resposta que decide entre uma instância por tenant e uma compartilhada por namespace, e partir errado esvazia a visão de admin em silêncio. Faltam também retenção por tabelaoms_*(§9.2) e backup (§9.4), que são entradas obrigatórias antes da primeira provisão. O blocoomsem si (§8.3) e a migração (§8.4) seguem sem aval.EMENDA (2026-09-10, dono da plataforma): o OMS SAIU DA FILA — "não vai ser mais usada por ora". A consequência prática é que a pergunta do §9.1 deixa de ser ação pendente: ela existia para escolher o escopo antes da primeira provisão, e não há primeira provisão no horizonte. O mesmo vale para retenção (§9.2) e backup (§9.4). Nada disso fica resolvido — fica estacionado, e volta junto com o OMS se ele voltar. O
QuestDBInstancepermanece no catálogo (ADR-0021) e agora sem consumidor, o que é estado deliberado e não dívida: a decisão de 2026-09-03 foi oferecê-lo "como o Postgres e Redis", independente do OMS.O do Risk Ops também não é o que parecia. São 2 containers (
risk-ops-tool:5000+risk-analysis-api:5001) falando porURL_RISK_API=http://localhost:5001/..., e um Pod do Kubernetes faz exatamente isso — olocalhostcontinuaria funcionando sem tocar em env var nenhuma. O que falta é quespec.placement.imageé um{repository, tag}, e é esse o campo que a promoção patcha: duas imagens numa Colocação mexem no caminho de promoção de toda a plataforma. Some a isso que as duas imagens rodam:latest, que os charts recusam por princípio. É o bloco mais VIVO dos quatro (8 de 10 tenants).
Tron
| App | Serviço ECS | Imagem ECR = Repositório |
|---|---|---|
| TronCharts backend | tron-bsvc | tron-charts-backend |
| TronCharts frontend | tron-fsvc | tron-charts |
| TronCharts website | tron-websvc | tron-charts-website |
| Aviator frontend | tron-avisvc | tron-aviator |
| Aviator backend | tron-avibsvc | tron-aviator-backend |
| Aviator binary | tron-aviator-binary | tron-aviator-binary (ver abaixo) |
O
aviator-binaryé serviço com porta, não artefato de build — pergunta aberta desde 2026-08-31, respondida em 2026-09-02 lendo a configuração da própria imagem no OCIR (prophub/tron-aviator-binary:11889aa, 11 camadas, 21,5 MiB):
Campo Valor ExposedPorts80/tcpEntrypoint/Cmd/docker-entrypoint.sh·nginx -g daemon off;Última camada COPY /app/apps/binary/dist /usr/share/nginx/htmlConfig COPY apps/binary/nginx.conf /etc/nginx/templates/default.conf.templateEnv BACKEND_HOST=127.0.0.1:8791,NGINX_ENVSUBST_FILTER=BACKEND_HOSTÉ um nginx servindo SPA estática e fazendo proxy para um backend. Duas consequências:
- A coluna "Imagem ECR = Repositório" mente nesta linha. Não existe repositório
quanthubbr/tron-aviator-binary(HTTP 404), e nenhum repo da org builda essa imagem:tron-aviatorbuildatron-aviatoretron-aviator-backendbuildatron-aviator-backend— conferido nosci.ymldos dois. OCOPY /app/apps/binary/e o build-argAPP=binarydenunciam um monorepo com layoutapps/<nome>, e otron-aviatornão é um (é Vite single-app, comsrc/eDockerfilena raiz). Origem não identificada — mesma família denuntius-bookkeeper,profit-split-engine,risk-analysis-apieaws-dashboard, cujos nomes de imagem também não resolvem em repositório da org.- NÃO é sidecar — medido na task definition
tron-aviator-binary:33em 2026-09-02, depois de a suspeita ter sido levantada pelo defaultBACKEND_HOST=127.0.0.1:8791da imagem. A task tem um container só, porta 80, target group próprio no ALB (tron-aviator-binary-tg),desiredCount: 1e 1 rodando. E a task definition não declara nenhuma env var — ou seja, oBACKEND_HOSTfica no default da imagem sem que exista nada em127.0.0.1:8791: é resíduo, não configuração. Não há o bloqueio dorisk-opsaqui; o que falta para tratá-lo como bloco é só saber quem o builda.
Fora do ECS — host trading-hub-01 (EC2, Docker Compose)
| App | Repositório | Observação |
|---|---|---|
| Nuntius | quanthubbr/nuntius | Pipeline de market data B3 (feed Cedro → Disruptor → NetMQ/QuestDB), 9 containers |
| Ignis | quanthubbr/ignis | Trading bridge C# (.NET 10): MT5 → ZeroMQ → FIX 4.4 → Cedro OMS, com dashboard Blazor |
| Ignis DeepLOB | quanthubbr/deeplob | Companion de pesquisa/treino em Python |
QuestDB e Caddy também rodam nesse host, mas são software de terceiros, sem repositório próprio.
Sites públicos
| App | Serviço ECS | Repositório |
|---|---|---|
| PropHub | prophub-web | quanthubbr/prophub-web |
| QuantHub | quanthub-web | quanthubbr/quanthub-web |
| Painel QuantHub | — | quanthubbr/quanthub-web-panel |
Plataforma nova (Kubernetes / OCI, RFC-0005)
A estrutura são DOIS repositórios — corrigido em 2026-09-02 (A0). Esta seção listava sete, e a fase 1 da RFC-0009 é sobre exatamente estes:
| Repositório | Papel |
|---|---|
plat-eng-platform | GitOps da plataforma (ArgoCD app-of-apps, componentes, building blocks Crossplane) e o código do scaffolder em tools/scaffolder/ — CLI, webhook, API e MCP server, absorvidos pela ADR-0012 |
plat-eng-bootstrap | Terraform de cluster, VCN, IAM e OCI Vault. É onde vivem as policies — inclusive a de leitura de segredo do scaffolder-api (ADR-0015) |
Os outros cinco plat-eng-* que esta seção listava não são estrutura, e é justamente por isso
que a fase 0 existe: cada um deles viraria uma linha errada na tabela STACKS.
| Repositório | Situação |
|---|---|
plat-eng-scaffolder | Descontinuado (ADR-0012) — absorvido em plat-eng-platform/tools/scaffolder/; repositório arquivado |
plat-eng-tenants | Descontinuado (ADR-0012) — tenant deixou de ser diretório versionado e virou TenantNamespace no cluster |
plat-eng-paas-infra | Legado (Terraform da plataforma antiga) |
plat-eng-defectdojo | Legado (Terraform do DefectDojo; scans pausados desde 2026-07-08) |
plat-eng-docs | Não é repo de estrutura — é APLICAÇÃO. Site de documentação (Fumadocs), com AppPlacement e HPA rodando no cluster, alimentado por .github/workflows/docs-sync.yml de plat-eng-platform. Ver a tabela abaixo |
Aplicações da plataforma nova (a stack interno)
O que roda no cluster OKE hoje, fora de tenant. É este conjunto que a fase 1 da RFC-0009 rotula
com prophub.tech/stack=interno — lido do cluster em 2026-09-02 e relido em 2026-09-11, quando
apareceram duas Colocações novas:
| Colocação | Repositório de origem | Promoção por CI |
|---|---|---|
scaffolder | plat-eng-platform (tools/scaffolder/) | automática (auto-deploy: true) |
scaffolder-api | plat-eng-platform (tools/scaffolder/, Dockerfile.web — serve também a SPA) | manual (auto-deploy: false, ADR-0013 decisão 3) |
plat-eng-docs | plat-eng-docs | automática |
devops-dashboard | devops-dashboard | automática |
oci-dashboard | oci-dashboard | automática — mas nunca exerceu (ver nota) |
sec-seal | sec-seal | automática |
O RE Dashboard pertence a este conjunto por natureza (A2), mas continua no ECS — não tem Colocação, e por isso não entra no backfill de label da fase 1.
As duas novas, registradas por
register()em 2026-09-08 (oci-dashboard) e 2026-09-09 (sec-seal). Ambas com o conjunto completo de labels,auto-deploy: true,deploy-branch: maine — o que importa — segredo pelo caminho certo (contract.env.fromSecret+secretKeys), não emplacement.env.vars. Ambas já nasceram com obuild-and-deploy.ymlda RFC-0011.Duas observações que só o cluster conta:
- O
sec-sealé formaapi(porta 8080, health/api/status), tem Postgres e Redis próprios, e já promoveu pelo caminho novo — tag de 7 caracteres ereason: promoção via CI … de build-and-deploy.- O
oci-dashboardé formaweb(porta 3000,/api/health) e nunca promoveu: a tag no ar é o SHA de 40 caracteres gravado no registro, comchanged-atigual aocreationTimestamp. Não é defeito — é que não houve push emmaindesde o onboarding. Consequência para quem conta: o runbook da RFC-0011 fala de "os quatro deployables", e já são seis.- Os
secretKeysdooci-dashboardincluemAUTH_ADMIN_PASSWORD_HASH, que é exatamente a chave do incidente dodevops-dashboardde 2026-08-25 (bcrypt de 60 chars vs base64/SHA-256 de 44;bcryptjsdevolvefalsesem lançar, e fica tudo verde com o admin sem entrar). Vale conferir o FORMATO do valor no Vault antes que alguém descubra pelo caminho difícil.
Lista canônica de tenants (A4)
A lista nominal não existia em lugar nenhum — o inventário contava clusters por aplicação (15 Backoffice, 15 Front, 13 Risk Engine, 10 Risk Ops, 7 BI) e o resumo da RFC-0008 falava em 16 tenants, mas ninguém nunca escreveu quais. É contra esta tabela que a tela de conformidade da RFC-0009 compara; sem ela a tela não tem o que mostrar. Levantada em 2026-09-02, nas duas plataformas.
No cluster OKE — a fonte da verdade são os TenantNamespace
Lido em 2026-09-02. Esta parte é canônica por construção: o objeto no cluster É a lista, não uma cópia dela.
| Slug | Domínio | Blocos | Datastores | Observação |
|---|---|---|---|---|
demo | prophub.tech | backoffice (demo-bsvc), portal (demo-fsvc), risk-engine (demo-resvc) | Postgres + Redis, Ready | Criado 2026-08-30. O demo-bsvc está em CrashLoopBackOff — o Directus sobe num banco sem as tabelas dele, e ninguém as cria. Em standby por decisão do dono da plataforma |
battletraders | prophub.tech | nenhum | Postgres (2 pods) + Redis, Ready, 2 PVs de 50Gi Bound | Criado 2026-09-02 16:28. Tenant provisionado sem nenhuma aplicação |
Tenant com datastore e zero aplicação é a forma que custa dinheiro em silêncio.
oci-bv-dataéreclaimPolicy: Retain: o block volume da OCI continua alocado mesmo depois de o PV sumir, e nada no ArgoCD ou no Crossplane sinaliza. Foi assim que 350 GiB ficaram alocados sem dono até 2026-08-31. Mostrar isto sem ninguém ir procurar é exatamente o que motivou a RFC-0009 — é a checagem 5 do runbook da fase 1.
No ECS — a lista nominal, enfim
Levantada em 2026-09-02 com aws ecs list-clusters + list-services na conta
025910518967 / sa-east-1, e o domínio lido do DIRECTUS_URL da task definition de cada -bsvc.
Nada aqui foi inferido de nome de serviço — foi essa inferência que produziu as 15 task defs
<tenant>-rd todas apontando para o Directus do blueberry.
São 18 clusters: 15 de tenant, 3 que não são (tron-ecs, re-dashboard-ecs, quanthub).
Os 11 clientes
| Slug | Domínio (DIRECTUS_URL) | B | F | RE | RO | BI | Também tem |
|---|---|---|---|---|---|---|---|
belive | backoffice.beliveprop.com | ✅ | ✅ | ✅ | ✅ | — | |
blueberry | admin.blueberryfutures.com | ✅ | ✅ | ✅ | ✅ | ✅ | PropManager Admin |
elliotplay | play-backoffice.elliot.com.br | ✅ | ✅ | — | — | — | só Backoffice + Front |
euro | backoffice.euroglobalprop.com | ✅ | ✅ | ✅ | ✅ | ✅ | PropManager Admin, OMS |
explorer | backoffice.explorerprop.com | ✅ | ✅ | ✅ | ✅ | ✅ | MT5 API, Rewin |
insider | backoffice.insiderinveste.com | ✅ | ✅ | ✅ | ✅ | ✅ | MT5 API, Rewin |
neoprop | backoffice.npfunded.com | ✅ | ✅ | ✅ | ✅ | — | MT5 API, Rewin, Nelogica Profit |
orbit | admin.orbitfunded.com | ✅ | ✅ | ✅ | ✅ | — | MT5 API, Rewin |
planet4funded | backoffice.planet4funded.com | ✅ | ✅ | ✅ | — | — | |
theflow | backoffice.flowpropfirm.com | ✅ | ✅ | ✅ | — | — | Volumetrica |
trademakers | backoffice.thetrademakers.com | ✅ | ✅ | ✅ | ✅ | ✅ | re2svc (segundo motor, mercado CME) |
5p | — | — | — | — | — | — | só OMS (5p-omssvc) |
Os 3 ambientes internos que têm forma de tenant
Domínio interno (quanth.uk / prophub.tech) é o que os separa dos clientes:
| Slug | Domínio | B | F | RE | RO | BI | Também tem |
|---|---|---|---|---|---|---|---|
dev | backoffice-dev.quanth.uk | ✅ | ✅ | ✅ | ✅ | — | PropManager Admin, os 7 conectores, OMS (engine + webapp) |
demo | demo-b.prophub.tech | ✅ | ✅ | ✅ | ✅ | ✅ | PropManager Admin |
demo-rd | backoffice-demo-rd.quanth.uk | ✅ | ✅ | ✅ | — | ✅ |
Cuidado com a colisão de nome: o
demodo ECS não é o tenantdemodo cluster OKE. São ambientes diferentes, em plataformas diferentes, com domínios diferentes (demo-b.prophub.tech×prophub.tech).
O que os números fecham — e o que não
As contagens do topo deste inventário batem exatamente, o que confirma o método: 13 Risk Engine,
10 Risk Ops, 7 BI, 4 PropManager Admin (dev, demo, euro, blueberry).
Duas divergências, ambas registradas em vez de ajustadas:
- Backoffice: contei 14 serviços
-bsvc, o inventário dizia 15. São 15 clusters de tenant, mas o5pnão tem Backoffice — só OMS. A leitura provável é que a contagem antiga tenha sido de clusters, não de serviços; não corrigi o número original sem confirmar. E o inventário falava em 19 clusters: hoje são 18, então um sumiu desde 2026-08-31. - "Dois tenants sem Risk Engine" era um, mais o cluster que sumiu. Hoje só o
elliotplaytem Backoffice sem Risk Engine (e sem Risk Ops e sem BI: é o tenant mais enxuto da frota).
PUBLIC_URL continua não derivável — e agora são três, não dois
Medido nos 14: 11 apontam para o host do Backoffice, e 3 para o do portal —
neoprop (dashboard.npfunded.com), orbit (dashboard.orbitfunded.com) e dev
(frontend-dev.quanth.uk). A RFC-0008 media 2 em 11; o terceiro apareceu ao cobrir a frota inteira.
Derivar PUBLIC_URL sobrescreveria a configuração de três ambientes em produção, com o sintoma
sendo link de e-mail apontando para o lugar errado — que ninguém vê num deploy verde.
Actions e tooling compartilhado
| Repositório | Papel |
|---|---|
actions-aws-ecs | Composite action de deploy nos clusters ECS |
actions-container-build | Build de container padronizado |
actions-security-scanners | Trivy, Snyk, Semgrep, Gitleaks, SBOM |
scripts-aws-ops-manager | Scripts de operação AWS |
scripts-database-manager | Scripts de banco |
tron-claude-config | Harness de enforcement do Claude Code nos repositórios |
Observabilidade e QA
| Ferramenta | Onde | Situação |
|---|---|---|
| Uptime Kuma | host apps-02 | 48 monitores ativos |
| DefectDojo | plat-eng-defectdojo | Scans pausados desde 2026-07-08 |
| oci-dashboard | cluster OKE (stack interno) | Somente leitura da Oracle Cloud. Era "local (~/Projetos/oci-dashboard)" até 2026-09-08, quando virou Colocação |
| qa-cypress / qa-playwright | CI | Testes de front |
Resumo
Cinco aplicações formavam o stack padrão de todo cliente novo: Backoffice, Front do trader, Risk Engine, Risk Ops e BI. Backoffice e Front estão nos 15 clusters de cliente; Risk Engine em 13.
Para cliente NOVO isso mudou em 2026-09-10: Risk Ops e BI saem da composição padrão e o
PropManager Admin entra na stack prophub no lugar dos dois. As contagens acima descrevem a
frota como ela está, não como o próximo cliente será montado — os dois blocos seguem no catálogo
porque há cliente usando (emenda na seção de ferramentas internas).
Dois repositórios concentram desproporcionalmente a operação: risk-engine-csharp (sete imagens, todos os conectores de corretora) e risk-ops-tool (três containers na mesma task). Mudança em qualquer um deles tem alcance amplo.
O que a fase 0 deixou em aberto
Nenhum destes foi preenchido por suposição — cada um espera um fato que ainda não existe:
| Pendência | O que destrava | Bloqueia |
|---|---|---|
Repositório do risk-engine-rithmic / -rithmic-api | o Rithmic sair de desenvolvimento | fase 3 (gateways) da RFC-0009 |
Repositório que builda tron-aviator-binary | achar o monorepo com layout apps/binary/ | tratar o Aviator como bloco |
Origem de nuntius-bookkeeper, profit-split-engine, risk-analysis-api, aws-dashboard | links do dono da plataforma | expansão do catálogo de blocos |