Pular para conteúdo

Atlas dos diagramas de dados

A mesma ferramenta do Core representa os modelos MongoDB e, em visões separadas, as relações entre domínios, eventos e contratos de cache. Cada domínio possui uma visão simplificada em sua página e um visualizador de detalhes. O inventário de persistência cobre também os serviços sem documentos próprios.

Explorar o modelo consolidado da plataforma

Domínio / visualizador Visões (incluindo resumos) Collections / modelos Mongo representados
Core 8 gateway_revisions, gateways, route_revisions, routes
Template Service 14 gateway_template_revisions, gateway_templates, operations, outbox_events, route_template_categories, route_template_revisions, route_templates
Global Registry 3 catalog, tenant-aliases
Security 2 authorizations
IP Policy 2 IpPolicy
Rate Limit 2 RateLimit
Importer 2 gateway_import, gateway_import_status
Object Storage 2 global_file_registry, object_storage
Scheduler 4 http_calls_activities, rate_limit_activities, scheduler_reconciliation_checkpoints
OpenAPI Doc 2 gateway_openapi, inbox_processed
Tunnel 2 tunnels
Relações entre domínios 9 IpPolicy, RateLimit, authorizations, catalog, categories, gateway_import, gateway_import_status, gateway_revisions, gateway_template_revisions, gateway_templates, gateway_wizard, gateways, global_file_registry, object_storage, operations, rate_limit_activities, routes
Outbox, Inbox e projeções 6 gateway_openapi, gateway_templates, gateways, inbox_processed, operations, outbox_events
Redis e invalidação 8 Contratos de cache e contadores; sem collections Mongo

IP Policy e Rate Limit usam nomes lógicos de modelos: o nome físico é delegado à biblioteca. As visões transversais reutilizam recortes, não criam novas collections. Cache Invalidator participa das visões de Redis; não possui coleção de domínio própria.

Como ler os modelos

  • Laranja: collection ou contrato de cache, conforme o cabeçalho. Verde: objeto embutido. Roxo: snapshot embutido. Cinza: componente consumidor/escritor, sem schema de documento naquele quadro.
  • ID: identificador. REF: referência por ID. CALC: propriedade calculada pelo codec. KEY: chave Redis. *: identidade obrigatória da collection; não implica obrigatoriedade de campos na API.
  • Contínua: referência por identificador. Pontilhada: objeto/array embutido. Tracejada: snapshot, materialização ou relação lógica, sempre distinguida pelo label ou pela descrição da visão.
  • A seta de referência parte do campo armazenado e chega ao identificador de destino. As setas de snapshots descrevem cópias históricas; não sincronizam automaticamente documentos vivos.
  • Campos e tipos são os declarados no modelo Java/Go; Array<T> representa List<T>. Enums e valores iniciais aparecem nos tooltips. Objetos livres (Document, Map<String,Object>, JSON em String) mantêm seu caráter aberto.
  • Os desenhos não acrescentam foreign keys, constraints nem cardinalidades de MongoDB. ID escalar, array e mapa são distinguidos pelo tipo. _id gerado pelo Mongo, mas não declarado no modelo de aplicação, não é inventado como campo Java.
  • Cabeçalhos indicam escopo global, tenant ou banco configurado. Campos selecionados e descrições de recortes identificam projeções visuais; o dicionário mantém o documento completo.
  • Nas visões Redis, as linhas chave, valor e TTL descrevem o contrato do cache; não são atributos armazenados dentro do valor e não são collections Mongo.

Cobertura e atualização

A expansão cobre os dez outros proprietários Mongo: Template Service, Global Registry, Security, IP Policy, Rate Limit, Importer, Object Storage, Scheduler, OpenAPI Doc e Tunnel. Outbox Dispatcher acessa a outbox existente; seu contrato Go é mostrado separadamente do produtor Java na mesma collection. Redis cobre invalidação, políticas, aliases, quotas, concorrência e tokens; OIDC/JWK e locks permanecem no inventário de caches.

O piloto Core foi preservado. O novo modelo de relações inclui recortes do Core para explicar seus vínculos com os outros owners, sem substituir seus diagramas detalhados.

Fontes versionadas: tools/data-diagrams/models.json registra os domínios; cada JSON contém campos, visões, referências e hashes das fontes. generate.mjs é o único renderer. DOT e SVG são derivados, com versões fixadas conforme o procedimento de geração.

Limites da modelagem

JobRunr, Keycloak, Cloudflare, GCS/MinIO e Elasticsearch são documentados nos limites de integração implementados pelos serviços Gateway. Não se inventam schemas internos desses provedores. As collections globais não comprovam autorização entre tenants; a resolução de owner está na documentação de multi-tenancy.