Pular para conteúdo

Core — gateways, rotas e revisões

Owner: Core. Escopo: database do tenant, selecionada pela biblioteca de contexto Mongo. O modelo mantém identidade lógica separada das revisões. GatewayOrigin, respostas de Discovery e fullVersion são projeções, não novas collections.

Mapa de identidades e revisões

O piloto visual reúne gateways, routes, gateway_revisions e route_revisions. Cada seta parte do campo que guarda a referência e termina no identificador do documento referenciado, dentro da database do tenant.

Core: routes.gatewayId e gateway_revisions.gatewayId referenciam gateways._id; route_revisions referencia routes._id e gateway_revisions._id. Core: identidades de gateways e rotas relacionadas às suas revisões.
Collections em laranja. ID: identificador; REF: referência lógica; *: identidade obrigatória do documento MongoDB. As setas não representam foreign keys.

Explorar o modelo detalhado com zoom

As visões abaixo complementam o piloto com categorias e wizard. O dicionário desta página mantém todos os campos, regras de escrita e evidências.

Configuração e identidade

As setas abaixo são referências por ObjectId, sem foreign keys MongoDB. Categorias e rotas pertencem a um gateway; deleted permite exclusão lógica de suas raízes.

%%{init: {"theme":"base","themeVariables":{"fontFamily":"Arial, sans-serif","fontSize":"16px","lineColor":"#64748b","primaryTextColor":"#172b4d"},"flowchart":{"htmlLabels":true,"useMaxWidth":true,"nodeSpacing":28,"rankSpacing":38,"padding":14,"curve":"linear","subGraphTitleMargin":{"top":12,"bottom":16}},"sequence":{"useMaxWidth":true,"actorMargin":28,"width":145,"height":45,"diagramMarginX":32,"diagramMarginY":12,"messageMargin":24,"wrap":true,"mirrorActors":false},"themeCSS":".edgeLabel, .edgeLabel p {background-color:var(--diagram-surface)!important;color:var(--diagram-text)!important}\n.cluster rect {fill:var(--diagram-group)!important;stroke:var(--diagram-line)!important}\n.cluster-label span, .cluster-label text {color:var(--diagram-text)!important;fill:var(--diagram-text)!important}\n.flowchart-link, .actor-line {stroke:var(--diagram-line)!important}\nmarker path {fill:var(--diagram-line)!important;stroke:var(--diagram-line)!important}\n.actor {fill:var(--diagram-domain)!important;stroke:var(--diagram-domain-border)!important}\ntext.actor, .messageText, .loopText, .labelText {fill:var(--diagram-text)!important}\n.messageLine0, .messageLine1, .loopLine {stroke:var(--diagram-line)!important}\n.labelBox {fill:var(--diagram-surface)!important;stroke:var(--diagram-line)!important}\n.note {fill:var(--diagram-async)!important;stroke:var(--diagram-async-border)!important}\n.noteText {fill:var(--diagram-text)!important}\n.nodeLabel, .nodeLabel p, .nodeLabel span {color:var(--diagram-text)!important}\n.node .nodeLabel, .node .nodeLabel p {font-size:17px;font-weight:600;line-height:1.4;text-align:center}\n.nodeLabel small {display:inline-block;margin-top:4px;font-size:15px;font-weight:400;line-height:1.4;color:var(--diagram-description)!important}\ntext.actor, text.actor tspan {font-size:17px;font-weight:600}\n.node.entry rect, .node.entry polygon, .node.entry path, .node.entry circle {fill:var(--diagram-entry)!important;stroke:var(--diagram-entry-border)!important}\n.node.domain rect, .node.domain polygon, .node.domain path, .node.domain circle {fill:var(--diagram-domain)!important;stroke:var(--diagram-domain-border)!important}\n.node.security rect, .node.security polygon, .node.security path, .node.security circle {fill:var(--diagram-security)!important;stroke:var(--diagram-security-border)!important}\n.node.store rect, .node.store polygon, .node.store path, .node.store circle {fill:var(--diagram-store)!important;stroke:var(--diagram-store-border)!important}\n.node.async rect, .node.async polygon, .node.async path, .node.async circle {fill:var(--diagram-async)!important;stroke:var(--diagram-async-border)!important}\n.node.external rect, .node.external polygon, .node.external path, .node.external circle {fill:var(--diagram-external)!important;stroke:var(--diagram-external-border)!important}\n text.actor tspan, .loopText tspan, .labelText tspan, .messageText tspan, .noteText tspan {fill:var(--diagram-text)!important}\n\n"}}%%
flowchart TB
    routes["routes<br/><small>Identidade da rota</small>"]:::store
    gateways["gateways<br/><small>Identidade do gateway</small>"]:::store
    categories["categories<br/><small>Agrupamento de rotas</small>"]:::store
    routes -->|gatewayId| gateways
    routes -->|categoryId| categories
    categories -->|gatewayId| gateways
    classDef store stroke-width:1.5px;

Revisões e wizard

route_revisions.gatewayRevisionId associa a configuração da rota a uma revisão específica do gateway. Não basta relacionar apenas os IDs das raízes. O wizard também é vinculado à revisão, e o upgrade pode reservar um novo DRAFT sem alterar o ACTIVE.

%%{init: {"theme":"base","themeVariables":{"fontFamily":"Arial, sans-serif","fontSize":"16px","lineColor":"#64748b","primaryTextColor":"#172b4d"},"flowchart":{"htmlLabels":true,"useMaxWidth":true,"nodeSpacing":28,"rankSpacing":38,"padding":14,"curve":"linear","subGraphTitleMargin":{"top":12,"bottom":16}},"sequence":{"useMaxWidth":true,"actorMargin":28,"width":145,"height":45,"diagramMarginX":32,"diagramMarginY":12,"messageMargin":24,"wrap":true,"mirrorActors":false},"themeCSS":".edgeLabel, .edgeLabel p {background-color:var(--diagram-surface)!important;color:var(--diagram-text)!important}\n.cluster rect {fill:var(--diagram-group)!important;stroke:var(--diagram-line)!important}\n.cluster-label span, .cluster-label text {color:var(--diagram-text)!important;fill:var(--diagram-text)!important}\n.flowchart-link, .actor-line {stroke:var(--diagram-line)!important}\nmarker path {fill:var(--diagram-line)!important;stroke:var(--diagram-line)!important}\n.actor {fill:var(--diagram-domain)!important;stroke:var(--diagram-domain-border)!important}\ntext.actor, .messageText, .loopText, .labelText {fill:var(--diagram-text)!important}\n.messageLine0, .messageLine1, .loopLine {stroke:var(--diagram-line)!important}\n.labelBox {fill:var(--diagram-surface)!important;stroke:var(--diagram-line)!important}\n.note {fill:var(--diagram-async)!important;stroke:var(--diagram-async-border)!important}\n.noteText {fill:var(--diagram-text)!important}\n.nodeLabel, .nodeLabel p, .nodeLabel span {color:var(--diagram-text)!important}\n.node .nodeLabel, .node .nodeLabel p {font-size:17px;font-weight:600;line-height:1.4;text-align:center}\n.nodeLabel small {display:inline-block;margin-top:4px;font-size:15px;font-weight:400;line-height:1.4;color:var(--diagram-description)!important}\ntext.actor, text.actor tspan {font-size:17px;font-weight:600}\n.node.entry rect, .node.entry polygon, .node.entry path, .node.entry circle {fill:var(--diagram-entry)!important;stroke:var(--diagram-entry-border)!important}\n.node.domain rect, .node.domain polygon, .node.domain path, .node.domain circle {fill:var(--diagram-domain)!important;stroke:var(--diagram-domain-border)!important}\n.node.security rect, .node.security polygon, .node.security path, .node.security circle {fill:var(--diagram-security)!important;stroke:var(--diagram-security-border)!important}\n.node.store rect, .node.store polygon, .node.store path, .node.store circle {fill:var(--diagram-store)!important;stroke:var(--diagram-store-border)!important}\n.node.async rect, .node.async polygon, .node.async path, .node.async circle {fill:var(--diagram-async)!important;stroke:var(--diagram-async-border)!important}\n.node.external rect, .node.external polygon, .node.external path, .node.external circle {fill:var(--diagram-external)!important;stroke:var(--diagram-external-border)!important}\n text.actor tspan, .loopText tspan, .labelText tspan, .messageText tspan, .noteText tspan {fill:var(--diagram-text)!important}\n\n"}}%%
flowchart TB
    rr["route_revisions<br/><small>Configuração versionada</small>"]:::store
    gr["gateway_revisions<br/><small>Revisão do gateway</small>"]:::store
    route["routes<br/><small>ID lógico estável</small>"]:::store
    wizard["gateway_wizard<br/><small>Respostas de configuração</small>"]:::store
    rr -->|gatewayRevisionId| gr
    rr -->|routeId| route
    wizard -->|gatewayRevisionId| gr
    classDef store stroke-width:1.5px;
Collection Criação, alteração e exclusão / consultas principais
gateways Insert de raiz e replace por _id; nome, descrição, favorito, habilitação e expiração. Exclusão do gateway passa pela cascata do serviço, não por regra física Mongo
gateway_revisions Insert de novas revisões; replace de edição/estado. Busca por gateway/status, escolha de versão, promoção e rollback. Índice único parcial de um DRAFT por gateway
routes Raiz estável, com gatewayId e categoryId; replace e exclusão lógica. Metadados de origem Template somente são substituídos na promoção do upgrade
route_revisions Configuração HTTP, herança e políticas embutidas; consultas por rota, revisão do gateway e status. Contagem de vínculos de políticas e agregação de revisões ativas para Discovery
categories Nome/owner de agrupamento e flags de exclusão/origem; busca pelo gateway. Dados históricos de categorias são capturados em snapshots de proveniência
gateway_wizard Insert/replace por revisão; steps[] contém caminhos, requisitos, valores e conclusão. operationId correlaciona instanciação/upgrade. isConfigured() é @BsonIgnore, portanto não é campo persistido
catalog_item_state Favorito por catalogItemId, com upsert. Aquisição de catálogo é derivada das revisões do gateway, não de um campo acquired deste documento
outbox_events Eventos de publicação, exclusão e resolução de setups. Campos adicionais do Dispatcher e índices estão em Outbox/Inbox

Fontes: repositórios, cascata, consulta de revisões ativas, estado do catálogo, publicação de upgrade.

Índices e regras de escrita

Collection Índice declarado Finalidade
gateway_revisions idx_one_gateway_draft: {gatewayId: 1}, unique, parcial status = DRAFT Impedir DRAFTs concorrentes para o mesmo gateway. Criado por coleção sem a sessão transacional
catalog_item_state uk_catalog_item_id: {catalogItemId: 1}, unique Um estado de favorito por item no tenant
outbox_events Índices criados pelo Dispatcher Contrato compartilhado

As demais collections não declaram índices secundários no código próprio inspecionado. Não há TTL Mongo declarado para estes documentos. Expiração do gateway de teste é um processo agendado, não um índice TTL.

BaseEntity.addAt() define createdAt/updatedAt; setters e serviços atualizam timestamps. fromTemplate e deleted iniciam em false onde declarados. Revisões começam com versionNo = 0.1; documentationPath usa /doc quando ausente/vazio. Os construtores de rota inicializam referências de políticas a partir do gateway. Essas regras de construção são distintas dos valores Java anteriores à construção.

Fontes: índice DRAFT, teste de criação fora da transação, modelos. O versionamento detalha promoção, restauração e diferenças em relação aos Templates.

Referências e estruturas embutidas

client, resource, response, ipaasResource, ipPolicy e rateLimit de RouteRevision são documentos embutidos; authenticationId, rateLimitId e ipPolicyIds[] dentro deles são referências a outros domínios. response.responseConfig[] contém IDs de elementos embutidos, não documentos de uma collection de respostas.

templateState guarda owner, IDs da origem e mapas de IDs lógicos (routes, categories), snapshots routeMetadata/categoryMetadata e referências de revisões CUSTOM. templateUpgrade guarda baseline, operação, contextos de setup e pendências. Esses snapshots preservam história; não são joins físicos nem entidades independentes. Consulte relacionamentos e ownership.

Dicionário de documentos

Os nomes BSON abaixo respeitam @BsonId/@BsonProperty. A nulabilidade descreve o tipo Java, não uma validação de schema Mongo. Valores iniciais Java precedem os construtores e serviços; os defaults de criação e invariantes estão descritos acima. Referências anuláveis não significam que a API aceite omiti-las em todas as operações. Campos de mapas/documentos livres não possuem schema fechado no modelo.

Propriedades calculadas expostas por getters públicos são identificadas separadamente: fazem parte da superfície do codec POJO, não do estado independente da entidade. @BsonIgnore é respeitado. A representação UUID depende da configuração do codec; os tipos de transporte JSON não substituem os tipos BSON.

Collection / documento raiz Modelo
catalog_item_state CatalogItemState
categories Category
gateways Gateway
gateway_revisions GatewayRevision
gateway_wizard GatewayWizard
outbox_events OutboxEvent
routes Route
route_revisions RouteRevision

catalog_item_state — CatalogItemState

CatalogItemState.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
catalogItemId String string Referência anulável; inicial Java: null
favorite Boolean boolean Referência anulável; inicial Java: false

Exemplo de estrutura

Fragmento derivado dos campos do modelo vinculado acima, com valores substituídos por identificadores/textos sintéticos e data fixa. Não é um payload de criação nem um documento completo. ObjectId/data usam notação Extended JSON; nenhum dado de ambiente foi copiado.

{
  "_id": {
    "$oid": "000000000000000000000001"
  },
  "createdAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "updatedAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "catalogItemId": "exemplo-id"
}

categories — Category

Category.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
gatewayId ObjectId ObjectId Referência anulável; inicial Java: null
name String string Referência anulável; inicial Java: null
deleted boolean boolean Primitivo não nulo; inicial Java: false
fromTemplate Boolean boolean Referência anulável; inicial Java: false

Exemplo de estrutura

Fragmento derivado dos campos do modelo vinculado acima, com valores substituídos por identificadores/textos sintéticos e data fixa. Não é um payload de criação nem um documento completo. ObjectId/data usam notação Extended JSON; nenhum dado de ambiente foi copiado.

{
  "_id": {
    "$oid": "000000000000000000000001"
  },
  "createdAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "updatedAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "gatewayId": {
    "$oid": "000000000000000000000001"
  }
}

gateways — Gateway

Gateway.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
name String string Referência anulável; inicial Java: null
favorite Boolean boolean Referência anulável; inicial Java: null
enabled Boolean boolean Referência anulável; inicial Java: null
description String string Referência anulável; inicial Java: null
fromTemplate Boolean boolean Referência anulável; inicial Java: false
expirationDate Instant data/hora Referência anulável; inicial Java: null

Exemplo de estrutura

Fragmento derivado dos campos do modelo vinculado acima, com valores substituídos por identificadores/textos sintéticos e data fixa. Não é um payload de criação nem um documento completo. ObjectId/data usam notação Extended JSON; nenhum dado de ambiente foi copiado.

{
  "_id": {
    "$oid": "000000000000000000000001"
  },
  "createdAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "updatedAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "name": "exemplo-sanitizado"
}

gateway_revisions — GatewayRevision

GatewayRevision.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
gatewayId ObjectId ObjectId Referência anulável; inicial Java: null
sourceCatalogGatewayId ObjectId ObjectId Referência anulável; inicial Java: null
sourceVersionNo String string Referência anulável; inicial Java: null
templateState TemplateInstanceState documento embutido Referência anulável; inicial Java: null
templateUpgrade TemplateUpgradeState documento embutido Referência anulável; inicial Java: null
authenticationId ObjectId ObjectId Referência anulável; inicial Java: null
ipPolicyIds List<ObjectId> array Referência anulável; inicial Java: null
rateLimitId ObjectId ObjectId Referência anulável; inicial Java: null
basePath String string Referência anulável; inicial Java: null
versionNo String string Referência anulável; inicial Java: null
status GatewayRevisionStatus enum string Referência anulável; inicial Java: null
documentationPath String string Referência anulável; inicial Java: null
sourceTenantId String string Referência anulável; inicial Java: null
sourceAuthenticationId ObjectId ObjectId Referência anulável; inicial Java: null
sourceIpPolicyIds List<ObjectId> array Referência anulável; inicial Java: null

Exemplo de estrutura

Fragmento derivado dos campos do modelo vinculado acima, com valores substituídos por identificadores/textos sintéticos e data fixa. Não é um payload de criação nem um documento completo. ObjectId/data usam notação Extended JSON; nenhum dado de ambiente foi copiado.

{
  "_id": {
    "$oid": "000000000000000000000001"
  },
  "createdAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "updatedAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "gatewayId": {
    "$oid": "000000000000000000000001"
  }
}

gateway_wizard — GatewayWizard

GatewayWizard.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
gatewayRevisionId ObjectId ObjectId Referência anulável; inicial Java: null
steps List<WizardStep> array Referência anulável; inicial Java: null
versionNo String string Referência anulável; inicial Java: null
operationId String string Referência anulável; inicial Java: null

Exemplo de estrutura

Fragmento derivado dos campos do modelo vinculado acima, com valores substituídos por identificadores/textos sintéticos e data fixa. Não é um payload de criação nem um documento completo. ObjectId/data usam notação Extended JSON; nenhum dado de ambiente foi copiado.

{
  "_id": {
    "$oid": "000000000000000000000001"
  },
  "createdAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "updatedAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "gatewayRevisionId": {
    "$oid": "000000000000000000000001"
  }
}

outbox_events — OutboxEvent

OutboxEvent.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
eventId ObjectId ObjectId Referência anulável; inicial Java: null
routingKey String string Referência anulável; inicial Java: null
tenantId String string Referência anulável; inicial Java: null
payload Document documento / mapa Referência anulável; inicial Java: null
status OutboxEventStatus enum string Referência anulável; inicial Java: null
attempts Integer int32 Referência anulável; inicial Java: null
nextAttemptAt Instant data/hora Referência anulável; inicial Java: null
lastError String string Referência anulável; inicial Java: null

Exemplo de estrutura

Fragmento derivado dos campos do modelo vinculado acima, com valores substituídos por identificadores/textos sintéticos e data fixa. Não é um payload de criação nem um documento completo. ObjectId/data usam notação Extended JSON; nenhum dado de ambiente foi copiado.

{
  "_id": {
    "$oid": "000000000000000000000001"
  },
  "createdAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "updatedAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "eventId": {
    "$oid": "000000000000000000000001"
  }
}

routes — Route

Route.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
gatewayId ObjectId ObjectId Referência anulável; inicial Java: null
categoryId ObjectId ObjectId Referência anulável; inicial Java: null
name String string Referência anulável; inicial Java: null
favorite Boolean boolean Referência anulável; inicial Java: null
enabled Boolean boolean Referência anulável; inicial Java: null
description String string Referência anulável; inicial Java: null
deleted boolean boolean Primitivo não nulo; inicial Java: false
fromTemplate Boolean boolean Referência anulável; inicial Java: false

Exemplo de estrutura

Fragmento derivado dos campos do modelo vinculado acima, com valores substituídos por identificadores/textos sintéticos e data fixa. Não é um payload de criação nem um documento completo. ObjectId/data usam notação Extended JSON; nenhum dado de ambiente foi copiado.

{
  "_id": {
    "$oid": "000000000000000000000001"
  },
  "createdAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "updatedAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "gatewayId": {
    "$oid": "000000000000000000000001"
  }
}

route_revisions — RouteRevision

RouteRevision.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id (herdado) ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt (herdado) Instant data/hora Referência anulável; inicial Java: null
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
gatewayRevisionId ObjectId ObjectId Referência anulável; inicial Java: null
routeId ObjectId ObjectId Referência anulável; inicial Java: null
versionNo String string Referência anulável; inicial Java: null
status RouteRevisionStatus enum string Referência anulável; inicial Java: null
rateLimit RateLimit documento embutido Referência anulável; inicial Java: null
ipPolicy IpPolicy documento embutido Referência anulável; inicial Java: null
client ClientConfig documento embutido Referência anulável; inicial Java: null
resource ResourceConfig documento embutido Referência anulável; inicial Java: null
response ResponseDefinition documento embutido Referência anulável; inicial Java: null
ipaasResource IpaasResourceConfig documento embutido Referência anulável; inicial Java: null

Exemplo de estrutura

Fragmento derivado dos campos do modelo vinculado acima, com valores substituídos por identificadores/textos sintéticos e data fixa. Não é um payload de criação nem um documento completo. ObjectId/data usam notação Extended JSON; nenhum dado de ambiente foi copiado.

{
  "_id": {
    "$oid": "000000000000000000000001"
  },
  "createdAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "updatedAt": {
    "$date": "2026-10-13T00:00:00Z"
  },
  "gatewayRevisionId": {
    "$oid": "000000000000000000000001"
  }
}

Estruturas embutidas, herança e enums

Estes tipos não criam collections próprias. Quando uma entidade raiz aparece dentro de um snapshot, a mesma estrutura é embutida naquele caminho. Tipos de elementos de arrays e valores de mapas estão vinculados nas tabelas.

BaseEntity

entity/BaseEntity.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
createdAt Instant data/hora Referência anulável; inicial Java: null
updatedAt Instant data/hora Referência anulável; inicial Java: null

Authentication

entity/embedded/Authentication.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
authenticationId ObjectId ObjectId Referência anulável; inicial Java: null
type HeritageType enum string Referência anulável; inicial Java: null
sourceTenantId String string Referência anulável; inicial Java: null
sourceAuthenticationId ObjectId ObjectId Referência anulável; inicial Java: null

Body

entity/embedded/Body.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
type String string Referência anulável; inicial Java: null
content String string Referência anulável; inicial Java: null
example String string Referência anulável; inicial Java: null

ClientConfig

entity/embedded/ClientConfig.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
input InputConfig documento embutido Referência anulável; inicial Java: null
authentication Authentication documento embutido Referência anulável; inicial Java: null
path String string Referência anulável; inicial Java: null
method HttpMethod enum string Referência anulável; inicial Java: null

EmbeddedUpdatedAt

entity/embedded/EmbeddedUpdatedAt.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
updatedAt Instant data/hora Referência anulável; inicial Java: null

GeneralValueConfig

entity/embedded/GeneralValueConfig.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
key String string Referência anulável; inicial Java: null
value String string Referência anulável; inicial Java: null

IpPolicy

entity/embedded/IpPolicy.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
ipPolicyIds List<ObjectId> array Referência anulável; inicial Java: null
type HeritageType enum string Referência anulável; inicial Java: null
sourceTenantId String string Referência anulável; inicial Java: null
sourceIpPolicyIds List<ObjectId> array Referência anulável; inicial Java: null

IpaasResourceConfig

entity/embedded/IpaasResourceConfig.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
applicationId String string Referência anulável; inicial Java: null
serviceId String string Referência anulável; inicial Java: null
resourceId String string Referência anulável; inicial Java: null
environmentId String string Referência anulável; inicial Java: null
accountId String string Referência anulável; inicial Java: null
projectId String string Referência anulável; inicial Java: null
integrationId String string Referência anulável; inicial Java: null

PendingRoute

entity/embedded/TemplateUpgradeState.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
routeId String string Referência anulável; inicial Java: null
revisionId String string Referência anulável; inicial Java: null
status RouteRevisionStatus enum string Referência anulável; inicial Java: null

RateLimit

entity/embedded/RateLimit.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
type HeritageType enum string Referência anulável; inicial Java: null
rateLimitId ObjectId ObjectId Referência anulável; inicial Java: null

ResourceConfig

entity/embedded/ResourceConfig.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
transform Transform documento embutido Referência anulável; inicial Java: null

ResponseConfig

entity/embedded/ResponseConfig.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
_id ObjectId ObjectId Identificador BSON; tipo e geração conforme o ciclo de criação
originStatusCode String string Referência anulável; inicial Java: null
gatewayStatusCode String string Referência anulável; inicial Java: null
type ThroughType enum string Referência anulável; inicial Java: null
headers List<ResponseHeader> array Referência anulável; inicial Java: null
body Body documento embutido Referência anulável; inicial Java: null
empty boolean boolean Calculado por isEmpty(); propriedade derivada

ResponseDefinition

entity/embedded/ResponseDefinition.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
responseConfig List<ResponseConfig> array Referência anulável; inicial Java: null

TemplateInstanceState

entity/embedded/TemplateInstanceState.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
templateId String string Referência anulável; inicial Java: null
templateRevisionId String string Referência anulável; inicial Java: null
ownerTenantId String string Referência anulável; inicial Java: null
routes Map<String, String> documento / mapa Referência anulável; inicial Java: new LinkedHashMap<>()
categories Map<String, String> documento / mapa Referência anulável; inicial Java: new LinkedHashMap<>()
routeMetadata List<Route> array Referência anulável; inicial Java: List.of()
categoryMetadata List<Category> array Referência anulável; inicial Java: List.of()
customRouteRevisionIds List<String> array Referência anulável; inicial Java: List.of()

TemplateUpgradeState

entity/embedded/TemplateUpgradeState.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
operationId String string Referência anulável; inicial Java: null
baselineRevisionId String string Referência anulável; inicial Java: null
baselineState TemplateInstanceState documento embutido Referência anulável; inicial Java: null
complete boolean boolean Primitivo não nulo; inicial Java: false
setupContexts Map<String, IpaasResourceConfig> documento / mapa Referência anulável; inicial Java: Map.of()
pendingRoutes List<PendingRoute> array Referência anulável; inicial Java: List.of()

Transform

entity/embedded/Transform.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
headers List<GeneralValueConfig> array Referência anulável; inicial Java: null
queryParams List<GeneralValueConfig> array Referência anulável; inicial Java: null
pathParams List<GeneralValueConfig> array Referência anulável; inicial Java: null
body Body documento embutido Referência anulável; inicial Java: null
generated Boolean boolean Referência anulável; inicial Java: null

WizardStep

entity/embedded/WizardStep.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
targetObjectPath String string Referência anulável; inicial Java: null
required Boolean boolean Referência anulável; inicial Java: null
type WizardStepType enum string Referência anulável; inicial Java: null
defaultValue String string Referência anulável; inicial Java: null
value String string Referência anulável; inicial Java: null
completed Boolean boolean Referência anulável; inicial Java: null

InputBody

entity/embedded/input/InputBody.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
type String string Referência anulável; inicial Java: null
content String string Referência anulável; inicial Java: null
example String string Referência anulável; inicial Java: null

InputConfig

entity/embedded/input/InputConfig.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
headers List<InputHeader> array Referência anulável; inicial Java: null
queryParams List<InputQueryParam> array Referência anulável; inicial Java: null
pathParams List<InputPathParam> array Referência anulável; inicial Java: null
body InputBody documento embutido Referência anulável; inicial Java: null

InputHeader

entity/embedded/input/InputHeader.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
key String string Referência anulável; inicial Java: null
required Boolean boolean Referência anulável; inicial Java: null
description String string Referência anulável; inicial Java: null
example String string Referência anulável; inicial Java: null

InputPathParam

entity/embedded/input/InputPathParam.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
key String string Referência anulável; inicial Java: null
keyType String string Referência anulável; inicial Java: null
description String string Referência anulável; inicial Java: null
example String string Referência anulável; inicial Java: null

InputQueryParam

entity/embedded/input/InputQueryParam.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
key String string Referência anulável; inicial Java: null
keyType String string Referência anulável; inicial Java: null
required Boolean boolean Referência anulável; inicial Java: null
description String string Referência anulável; inicial Java: null
example String string Referência anulável; inicial Java: null

ResponseHeader

entity/embedded/response/ResponseHeader.java.

Campo BSON Tipo Java / estrutura Representação Nulabilidade / valor inicial
updatedAt (herdado) Instant data/hora Referência anulável; inicial Java: null
key String string Referência anulável; inicial Java: null
value String string Referência anulável; inicial Java: null
description String string Referência anulável; inicial Java: null
example String string Referência anulável; inicial Java: null

GatewayRevisionStatus

enums/GatewayRevisionStatus.java.

Valores: DRAFT, ACTIVE, DEPRECATED.

HeritageType

enums/HeritageType.java.

Valores: INHERITED, OVERWRITE, OWN, NONE.

HttpMethod

enums/HttpMethod.java.

Valores: GET, POST, PUT, PATCH, DELETE.

OutboxEventStatus

enums/OutboxEventStatus.java.

Valores: PENDING, SENT.

RouteRevisionStatus

enums/RouteRevisionStatus.java.

Valores: DRAFT, PUBLISHABLE, ACTIVE, DEPRECATED.

ThroughType

enums/ThroughType.java.

Valores: PASS_THROUGH, CONFIGURED_ONLY.

WizardStepType

enums/WizardStepType.java.

Valores: AUTHENTICATION_ALL, AUTHENTICATION_BASIC, AUTHENTICATION_API_KEY, IP_POLICY_ALL, IP_POLICY_ALLOW, IP_POLICY_DENY, APPLICATION_ENVIRONMENT, APPLICATION_ACCOUNT.