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.
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¶
| 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¶
| 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¶
| 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¶
| 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¶
| 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¶
| 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¶
| 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¶
| 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¶
| 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¶
| 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¶
Valores: INHERITED, OVERWRITE, OWN, NONE.
HttpMethod¶
Valores: GET, POST, PUT, PATCH, DELETE.
OutboxEventStatus¶
Valores: PENDING, SENT.
RouteRevisionStatus¶
enums/RouteRevisionStatus.java.
Valores: DRAFT, PUBLISHABLE, ACTIVE, DEPRECATED.
ThroughType¶
Valores: PASS_THROUGH, CONFIGURED_ONLY.
WizardStepType¶
Valores: AUTHENTICATION_ALL, AUTHENTICATION_BASIC, AUTHENTICATION_API_KEY, IP_POLICY_ALL, IP_POLICY_ALLOW, IP_POLICY_DENY, APPLICATION_ENVIRONMENT, APPLICATION_ACCOUNT.