Campos do catálogo
Esta página lista os campos dos arquivos do catálogo, os valores que cada um aceita e o que a plataforma faz com ele. Use-a ao escrever ou revisar uma entrada do catálogo: um campo que determina algo muda recursos reais assim que o seu merge request é mesclado, e um campo marcado como projetado é aceito, ou previsto, mas nada age sobre ele ainda.
A página do catálogo explica os arquivos em si e por que a intenção mora neles. Os exemplos vêm de uma organização de demonstração, uma loja on-line fictícia.
Como ler uma linha
Seção intitulada “Como ler uma linha”Cada linha é um campo, com quatro informações:
- Obrigatório: se um arquivo precisa tê-lo, e o seu valor padrão quando pode ser omitido.
- Valores: o que as verificações do catálogo aceitam. Os JSON Schemas do catálogo e o seu lint recusam qualquer outra coisa, incluindo qualquer campo que o esquema não defina (aplicado: o pipeline do catálogo roda o lint em cada merge request).
- O que determina: o que a plataforma constrói ou decide a partir dele, e qual parte da plataforma faz isso.
- Fonte: os arquivos que definem o campo e o código que o lê.
As tabelas descrevem a plataforma na versão da plataforma 2026.10.01-1, como estão em 2026-10-01 os esquemas do catálogo, o seu lint e o código que lê cada campo. Uma linha marcada como projetado é um campo que os contratos da plataforma especificam e que nada lê ainda, ou, nos quatro últimos campos de produto, um que o esquema ainda não aceita.
Produto
Seção intitulada “Produto”O arquivo de um produto é products/<journey>.<domain>.<context>.<product>.yaml.
product
- Obrigatório
- Sim.
- Valores
- Um slug de 2 a 10 caracteres: letras minúsculas e dígitos, palavras unidas por hifens simples, começando com uma letra. É a última parte do nome do arquivo, único dentro do seu domínio, e nunca um nome que o domínio aposentou.
- O que determina
- A identidade do produto em toda parte: o caminho do seu repositório, os identificadores dos seus dois projetos, o seu grupo de usuários, os seus prefixos de estado e o seu nome de host.
- Fonte
- catalog
schema/common.schema.json,scripts/lint.mjs,docs/derivations.md
journey
- Obrigatório
- Sim.
- Valores
- O slug de uma jornada, de 3 a 10 letras minúsculas, listado em
catalog.yaml. É a primeira parte do nome do arquivo. - O que determina
- O primeiro nível do caminho do produto, e a zona DNS onde ficam os seus nomes de host,
<journey>.projectairframe.dev. - Fonte
- catalog
scripts/lint.mjs; landing-zoneroots/network/edge.tf
domain
- Obrigatório
- Sim.
- Valores
- O slug de um domínio, de 3 a 8 letras minúsculas. É a segunda parte do nome do arquivo, e o par
<journey>/<domain>está listado emcatalog.yaml. - O que determina
- Os identificadores dos projetos,
lk-<domain>-<product>, e qual raiz de fábrica de projetos de domínio cria os projetos e qual raiz de GitLab de domínio cria o repositório. - Fonte
- catalog
scripts/lint.mjs; landing-zoneroots/project-factory/
context
- Obrigatório
- Sim.
- Valores
- Um slug de 3 a 12 caracteres. É a terceira parte do nome do arquivo, e o seu arquivo de contexto precisa existir.
- O que determina
- O grupo do GitLab do contexto, que guarda o repositório, e a pasta do contexto, que guarda os projetos.
- Fonte
- catalog
scripts/lint.mjs; landing-zoneroots/project-factory/
team
- Obrigatório
- Sim.
- Valores
- O slug de um time. O time precisa existir e morar no contexto do produto, e pelo menos uma pessoa que pode mesclar, entre os desenvolvedores e o líder do time e os líderes acima do produto, precisa ter uma conta no GitLab.
- O que determina
- Quem aprova e quem pode mesclar, junto com os líderes do contexto, do domínio e da jornada; os membros do grupo de usuários do produto; o acesso de leitura do grupo do time aos projetos; o rótulo
team; o time no Grafana. - Fonte
- catalog
scripts/lint.mjs; landing-zoneroots/groups/main.tf,roots/project-factory/; control-planegate/src/core/ownership.ts
lifecycle
- Obrigatório
- Não. Padrão
{ status: active }. - Valores
statuséactive,retiringouremoved.retire_after, uma data, é obrigatório para os dois últimos.removedvem só depois deretiring, e só quando essa data já passou.- O que determina
- A aposentadoria tira os serviços do produto da borda compartilhada e mantém cada recurso. A remoção apaga os seus projetos, o seu grupo de usuários e o seu repositório, e exige uma lápide para que o nome nunca seja reutilizado. Uma mudança de estado precisa do rótulo
lifecyclee de duas aprovações: uma do time e outra de um líder do domínio ou do time de plataforma. - Fonte
- catalog
scripts/lint.mjs,scripts/lifecycle-check.mjs; control-planegate/src/core/ownership.ts; golden-pathmodules/cloud-run-service/main.tf
criticality
- Obrigatório
- Sim.
- Valores
1,2ou3; 1 é o mais crítico.- O que determina
- O rótulo
criticality; o nível do banco de dados de produção e, com 1, a sua disponibilidade regional; o limite de instâncias de cada serviço; se a produção espera o apply do sandbox (1 e 2). Com 1 ou 2 o time precisa de dois membros de plantão, e com 1 de horário de plantãoalways. - Fonte
- golden-path
modules/cloud-sql/main.tf,modules/cloud-run-service/main.tf,template/.gitlab-ci.yml.jinja; catalogscripts/lint.mjs
data_classification
- Obrigatório
- Sim.
- Valores
public,internal,confidentialourestricted.restrictedexigeinner_source: false.- O que determina
- O rótulo
data_classificationnos recursos do produto. - Fonte
- golden-path
modules/airframe-context/main.tf; catalogscripts/lint.mjs
rto, rpo
- Obrigatório
- Sim.
- Valores
- Um número inteiro positivo seguido de
m,houd, como1hou15m; o lint verifica isso pararpo. Umrpomenor que5mprecisa de criticidade 1. - O que determina
- A recuperação do banco de dados de produção: um
rpomenor que um dia liga a recuperação a um ponto no tempo, e o módulo de Cloud SQL do golden path recusa um objetivo que não consegue cumprir. - Fonte
- catalog
scripts/lint.mjs; golden-pathmodules/cloud-sql/main.tf
monthly_budget
- Obrigatório
- Sim.
- Valores
- Dólares americanos inteiros, pelo menos 1. A soma dos orçamentos de produtos e playgrounds não pode passar do orçamento da pasta em
catalog.yaml. - O que determina
- Um orçamento do Google Cloud em cada projeto faturado, 70 por cento produção e 30 por cento não produção, com alertas em 80 e 100 por cento. A verificação de custo do Airframe recusa uma mudança cujos planos com preço passam dele. Aumentá-lo precisa de um líder do domínio.
- Fonte
- landing-zone
roots/project-factory/; control-planepolicy/airframe/cost.rego,gate/src/core/ownership.ts; catalogscripts/lint.mjs
template
- Obrigatório
- Sim.
- Valores
fullstackounone.noneexigesource_repoourepos.- O que determina
- Se o job de renderização escreve o primeiro commit do repositório a partir do template do golden path. Com
none, o repositório que a plataforma cria fica vazio. - Fonte
- control-plane
lifecycle/render.sh; catalogscripts/lint.mjs
stack
- Obrigatório
- Não. Padrão
node. - Valores
node,python-fastapioujava-spring.- O que determina
- A aplicação que o template renderiza. O job injetado de build e testes é escolhido depois pelos arquivos que essa pilha deixa no repositório.
- Fonte
- catalog
schema/product.schema.json; control-planetemplates/build-test/template.yml
slo
- Obrigatório
- Sim.
- Valores
availability, uma porcentagem de 90 a 99.99, elatency_p95_ms, um número inteiro de milissegundos.- O que determina
- Os objetivos do painel de SLO do produto e a sua regra de alerta de orçamento de erro no Grafana.
- Fonte
- operations
roots/grafana/pack.tf
quality
- Obrigatório
- Não. Padrão: cobertura de 80, sem catraca, achados nunca falham.
- Valores
minimum_coverage, de 0 a 100;coverage_ratchet, true ou false;block_on_quality, um deoff,info,minor,major,criticaloublocker.- O que determina
- O job injetado
build:qualityo lê do catálogo na hora da execução e falha abaixo da cobertura, abaixo da cobertura da main quando a catraca está ligada, ou diante de achados dessa gravidade ou maior. Uma mudança precisa de um líder do time ou de um líder do domínio. - Fonte
- control-plane
templates/build-test/template.yml,gate/src/core/ownership.ts
external_ingressprojetado
- Obrigatório
- Não. Padrão
false. - Valores
trueoufalse.- O que determina
- Pensado para deixar uma rota que o produto declara pública sem login único. O golden path o passa para os módulos do produto, mas todo backend de produto continua com login único, e o pacote de políticas recusa um sem ele: a peça para uma rota pública não está construída.
- Fonte
- golden-path
modules/service-project/main.tf,modules/cloud-run-service/main.tf; control-planepolicy/airframe/cloud_run.rego
inner_source
- Obrigatório
- Não. Padrão
true. - Valores
trueoufalse.- O que determina
- Com
false, num domínio que tem um grupo restrito, o repositório vai para lá e é privado. Nos outros casos o repositório é público. - Fonte
- control-plane
modules/product-repositories/main.tf; landing-zoneroots/project-factory/
agentic_opsprojetado
- Obrigatório
- Não. Padrão
diagnose. - Valores
diagnose,act,autooupropose.- O que determina
- Até onde o agente de operações pode agir sobre o produto. Nada o lê: esse agente não está construído.
- Fonte
- catalog
schema/product.schema.json; landing-zonedocs/contracts.md1.4
preview_concurrency
- Obrigatório
- Não. Padrão
2. - Valores
- De 1 a 16.
- O que determina
- O tamanho da instância compartilhada de banco de dados das prévias, quando
preview_dbéshared. - Fonte
- golden-path
modules/preview-substrate/variables.tf,template/infra/np/main.tf.jinja
preview_db
- Obrigatório
- Não. Padrão
sidecar. - Valores
sidecaroushared.- O que determina
- Como uma prévia obtém o seu banco de dados: um contêiner de PostgreSQL ao lado do serviço da prévia, ou um banco de dados próprio numa instância compartilhada de Cloud SQL por produto.
- Fonte
- golden-path
modules/preview-substrate/variables.tf,template/infra/eph/main.tf.jinja
preview_ttl_hours
- Obrigatório
- Não. Padrão
72. - Valores
- De 1 a 168.
- O que determina
- Quanto tempo uma prévia vive depois do seu último apply, levado como o rótulo
expiresnos seus serviços; depois disso ela é destruída. - Fonte
- golden-path
modules/preview-substrate/variables.tf,modules/cloud-run-service/main.tf
previewprojetado
- Obrigatório
- Não. Padrão
standard. - Valores
standardoucustom.- O que determina
- Se o produto traz o seu próprio componente de prévia. Nada o lê; toda prévia usa o roteador padrão.
- Fonte
- catalog
schema/product.schema.json; landing-zonedocs/contracts.md1.4
conformance_levelprojetado
- Obrigatório
- Não.
- Valores
1,2ou3.- O que determina
- Quanto o produto já avançou na escada de adoção. Nada o lê ainda.
- Fonte
- catalog
schema/product.schema.json; landing-zonedocs/contracts.md1.4
residency_profileprojetado
- Obrigatório
- Não. Padrão
default. - Valores
- Só
default. - O que determina
- Onde os dados do produto podem ficar. Só existe um perfil, e nada lê o campo.
- Fonte
- catalog
schema/product.schema.json; landing-zonedocs/contracts.md1.4
componentsprojetado
- Obrigatório
- Não.
- Valores
- Uma lista de
name, comcriticalityedata_classificationopcionais. O nome do produto, um hífen e o nome do componente somam no máximo 10 caracteres. - O que determina
- Projetos separados para uma parte do produto com um perfil diferente. Nenhuma fábrica de projetos os cria ainda.
- Fonte
- catalog
schema/product.schema.json,scripts/lint.mjs; landing-zoneroots/project-factory/
database
- Obrigatório
- Não.
- Valores
tier, o nome de um nível do Cloud SQL que começa comdb-.- O que determina
- O nível das instâncias de Cloud SQL do produto, no lugar do padrão do módulo: o menor fora da produção, o da criticidade na produção.
- Fonte
- catalog
schema/product.schema.json; golden-pathtemplate/infra/prod/main.tf.jinja,template/infra/np/main.tf.jinja
services
- Obrigatório
- Não.
- Valores
- Nomes de arquivos em
services/do catálogo, cada um um serviço do Google Cloud que a plataforma aprovou. - O que determina
- A API de cada serviço é habilitada nos projetos faturados do produto e os seus papéis são concedidos às identidades de apply do produto. Adicionar um precisa de um líder do domínio.
- Fonte
- catalog
scripts/lint.mjs; landing-zoneroots/project-factory/; control-planegate/src/core/ownership.ts
sandbox
- Obrigatório
- Não. Padrão
false. - Valores
true, outiercom o nome de um nível do Cloud SQL. Obrigatório quando outro produto consome os eventos deste produto ou o chama.- O que determina
- Um ambiente permanente com a versão da main no projeto de não produção, com o seu próprio banco de dados no menor nível ou no indicado, para outros produtos testarem contra ele.
- Fonte
- catalog
scripts/lint.mjs; golden-pathtemplate/infra/sandbox/main.tf.jinja
egress
- Obrigatório
- Não.
- Valores
- Nomes de host, sem curingas e sem endereços.
- O que determina
- As regras de permissão do proxy de saída para os serviços do produto. O proxy vem desligado porque custa dinheiro mesmo parado, e enquanto está desligado um produto que declara
egressnão consegue fazer deploy. - Fonte
- landing-zone
roots/network/egress.tf
egress_tcpprojetado
- Obrigatório
- Não.
- Valores
- Uma lista de
name,cidrseport. - O que determina
- Conexões de saída que não são requisições web, para faixas de endereços com nome. Nada o lê ainda.
- Fonte
- catalog
schema/product.schema.json; landing-zoneroots/network/variables.tf
consumes
- Obrigatório
- Não.
- Valores
- Uma lista de
topic, o caminho e o evento do publicador como<journey>/<domain>/<context>/<product>/<event>, esubscription, único no produto. O publicador precisa declarar o evento. - O que determina
- Adicionar um precisa da aprovação dos responsáveis pelo publicador, a não ser que o evento esteja marcado como
inner_source. O evento aparece como recebido na página do produto no catálogo de arquitetura. Nenhum módulo cria a assinatura ainda, então essa parte é projetada. - Fonte
- catalog
scripts/lint.mjs; control-planegate/src/core/ownership.ts,cli/fragment.py
topics
- Obrigatório
- Não.
- Valores
- Uma lista de
event, duas palavras minúsculas unidas por um ponto comoorder.placed;schema, um caminho no repositório do produto; einner_source, padrãofalse. - O que determina
- Os eventos que outros produtos podem consumir, e as suas páginas no catálogo de arquitetura. Nenhum módulo cria o tópico do Pub/Sub ainda, então essa parte é projetada.
- Fonte
- catalog
scripts/lint.mjs; control-planecli/fragment.py
calls
- Obrigatório
- Não.
- Valores
- Caminhos de produtos,
<journey>/<domain>/<context>/<product>, nunca o próprio produto. - O que determina
- Adicionar uma precisa da aprovação dos responsáveis pelo produto chamado, e o produto chamado precisa ter um sandbox. A chamada aparece no catálogo de arquitetura.
- Fonte
- catalog
scripts/lint.mjs; control-planegate/src/core/ownership.ts,cli/fragment.py
iap_accessprojetado
- Obrigatório
- Não.
- Valores
- Uma lista de
teamougroup. - O que determina
- Quem mais pode chegar ao produto atrás do login único. Nada o lê ainda: o grupo de usuários do produto tem os membros do próprio time.
- Fonte
- catalog
schema/product.schema.json; landing-zoneroots/groups/main.tf
source_repoprojetado
- Obrigatório
- Não.
- Valores
- O endereço do único repositório em que um sistema existente vive hoje. Só com
template: none. - O que determina
- Nada o lê ainda: o repositório que a plataforma cria fica vazio.
- Fonte
- catalog
scripts/lint.mjs; control-planelifecycle/render.sh
reposprojetado
- Obrigatório
- Não.
- Valores
- Uma lista de
nameerole, sendo o papelinfra,service,worker,migrationoufrontend. Só comtemplate: none. - O que determina
- Um produto espalhado por vários repositórios. Nada o lê ainda.
- Fonte
- catalog
schema/product.schema.json; landing-zonedocs/adr/0017-multi-repository-products-and-adoption-by-moving-the-group.md
runtimeprojetado
- Obrigatório
- Ainda não é aceito.
- Valores
cloud-runougke, nos contratos.- O que determina
- Onde o produto roda: Cloud Run, ou namespaces num cluster GKE compartilhado. O esquema ainda não aceita o campo, então o lint recusa uma entrada que o use.
- Fonte
- landing-zone
docs/contracts.md1.4; catalogschema/product.schema.json
source_groupprojetado
- Obrigatório
- Ainda não é aceito.
- Valores
- O caminho de um grupo do GitLab, nos contratos.
- O que determina
- O grupo em que os repositórios de um produto adotado vivem antes de passar para o caminho da plataforma. Hoje o lint o recusa.
- Fonte
- landing-zone
docs/contracts.md1.4; catalogschema/product.schema.json
hostnamesprojetado
- Obrigatório
- Ainda não é aceito.
- Valores
- Nomes de host sob uma zona que a organização detém, nos contratos.
- O que determina
- Os nomes de host com que um produto adotado chega, que a borda compartilhada serviria como apelidos dos seus. Hoje o lint o recusa.
- Fonte
- landing-zone
docs/contracts.md1.4 e 8; catalogschema/product.schema.json
dependenciesprojetado
- Obrigatório
- Ainda não é aceito.
- Valores
- Uma lista de
name,kind,hosteport, nos contratos. - O que determina
- Um armazenamento de dados ou um serviço que o produto continua operando fora da plataforma; a rede abriria o caminho até ele. Hoje o lint o recusa.
- Fonte
- landing-zone
docs/contracts.md1.4; catalogschema/product.schema.json
Segredos nunca ficam no catálogo. O repositório de um produto os lista por nome no seu próprio arquivo de segredos, sem valores.
O arquivo de um time é teams/<team>.yaml.
team
- Obrigatório
- Sim.
- Valores
- Um slug, igual ao nome do arquivo.
- O que determina
- O grupo do time,
lk-team-<team>@, que tem acesso de leitura aos projetos dos produtos do time, e o time, o seu ponto de contato e o roteamento dos seus alertas no Grafana. - Fonte
- catalog
scripts/lint.mjs; landing-zoneroots/groups/main.tf,roots/project-factory/; operationsroots/grafana/
context
- Obrigatório
- Sim.
- Valores
- O caminho do contexto onde o time mora,
<journey>/<domain>/<context>, ouplatform. - O que determina
- Quais produtos o time pode gerenciar: o time de um produto precisa morar no contexto do produto.
- Fonte
- catalog
scripts/lint.mjs
lead
- Obrigatório
- Sim.
- Valores
- Uma pessoa que é membro com o papel
team_lead. - O que determina
- O contato principal do time, na sua página do catálogo de arquitetura. O líder do time de plataforma administra a organização do Grafana.
- Fonte
- catalog
scripts/lint.mjs; control-planecli/fragment.py; operationsroots/grafana/members.tf
timezone
- Obrigatório
- Não. Padrão
Etc/UTC. - Valores
- O nome de um fuso horário, como
Europe/Lisbon. - O que determina
- Aparece na página do time no catálogo de arquitetura. Nada mais o lê ainda.
- Fonte
- catalog
schema/team.schema.json; control-planecli/fragment.py
members
- Obrigatório
- Sim, pelo menos um.
- Valores
- Uma lista de
personeroles; os papéis sãodeveloper,team_lead,oncalleoncall-secondary. Um membro está ativo ou pendente, nunca desligado. - O que determina
- Cada membro pode aprovar mudanças nos produtos do time; os desenvolvedores e os líderes do time também podem mesclá-las. Os membros ativos entram no grupo do time, nos grupos de usuários dos produtos do time e no time do Grafana.
- Fonte
- catalog
scripts/lint.mjs,ownership/protected-paths.yaml; landing-zoneroots/groups/main.tf
oncallprojetado
- Obrigatório
- Não. O time de um produto de criticidade 1 precisa dele.
- Valores
rotation,weeklyoudaily;layers, os papéis de plantão;hours,businessoualways. Um produto de criticidade 1 precisa dealways.- O que determina
- A escala de plantão do time, que não está construída. Hoje os valores só aparecem na página do time no catálogo de arquitetura.
- Fonte
- catalog
scripts/lint.mjs; control-planecli/fragment.py
O arquivo de uma pessoa é people/<person>.yaml.
person
- Obrigatório
- Sim.
- Valores
- A parte local do endereço de e-mail, como
sam.okafor, igual ao nome do arquivo. - O que determina
- A identidade da pessoa em cada time, lista de líderes e aprovação.
- Fonte
- catalog
schema/common.schema.json,scripts/lint.mjs
email
- Obrigatório
- Sim.
- Valores
- Um endereço no domínio da organização,
projectairframe.dev. - O que determina
- As participações em grupos: a raiz de grupos adiciona cada pessoa ativa aos seus grupos por este endereço.
- Fonte
- catalog
schema/common.schema.json; landing-zoneroots/groups/main.tf
name
- Obrigatório
- Sim.
- Valores
- Qualquer texto.
- O que determina
- A página da pessoa no catálogo de arquitetura.
- Fonte
- control-plane
cli/fragment.py
status
- Obrigatório
- Sim.
- Valores
active,pendingoudeparted.- O que determina
- Só pessoas ativas entram em grupos. Uma pessoa pendente, ainda sem conta, mantém os seus papéis e as suas posições de líder. O lint recusa uma pessoa desligada num time ou numa lista de líderes.
- Fonte
- catalog
scripts/lint.mjs; landing-zoneroots/groups/main.tf
gitlab_username
- Obrigatório
- Não.
- Valores
- Um nome de usuário do GitLab.
- O que determina
- As participações e as permissões de mesclagem no GitLab, e os aprovadores nomeados da política de aprovação: só contam pessoas ativas com um nome de usuário.
- Fonte
- catalog
scripts/lint.mjs; security-policiesscripts/approvers.py; control-planeroots/gitlab/
grafana_username
- Obrigatório
- Não.
- Valores
- O login da pessoa no Grafana Cloud, depois que o login único criou a conta.
- O que determina
- A participação na organização do Grafana e nos times da pessoa lá.
- Fonte
- operations
roots/grafana/members.tf
profile
- Obrigatório
- Não.
- Valores
about,expertise,linksehours. Uma mudança precisa da pessoa: da sua aprovação, ou de um merge request que ela abriu só com commits seus.- O que determina
- A página da pessoa no catálogo de arquitetura.
- Fonte
- catalog
ownership/protected-paths.yaml; control-planegate/src/core/ownership.ts,cli/fragment.py
Jornada
Seção intitulada “Jornada”O arquivo de uma jornada é journeys/<journey>.yaml.
journey
- Obrigatório
- Sim.
- Valores
- De 3 a 10 letras minúsculas, igual ao nome do arquivo e listado em
catalog.yaml. - O que determina
- A pasta da jornada, o seu grupo do GitLab e a sua zona DNS,
<journey>.projectairframe.dev. - Fonte
- catalog
scripts/lint.mjs,docs/derivations.md
leads
- Obrigatório
- Sim, pelo menos um.
- Valores
- Pessoas; a primeira é o contato principal. Nenhuma pode estar desligada.
- O que determina
- O grupo
lk-journey-<journey>-leads@. Os líderes da jornada podem mesclar em cada produto abaixo dela. - Fonte
- catalog
schema/journey.schema.json,scripts/lint.mjs; landing-zoneroots/groups/main.tf
description
- Obrigatório
- Sim.
- Valores
- Texto.
- O que determina
- A página da jornada no catálogo de arquitetura.
- Fonte
- control-plane
cli/fragment.py
Domínio
Seção intitulada “Domínio”O arquivo de um domínio é domains/<journey>.<domain>.yaml.
domain
- Obrigatório
- Sim.
- Valores
- De 3 a 8 letras minúsculas, igual à segunda parte do nome do arquivo e listado como
<journey>/<domain>emcatalog.yaml. - O que determina
- A pasta do domínio, o seu grupo de líderes e as suas duas sub-redes em cada rede saem do catálogo. Os seus grupos do GitLab, a sua raiz de fábrica de projetos e a sua raiz de GitLab de domínio são mudanças na própria plataforma.
- Fonte
- landing-zone
roots/folders/,roots/groups/,roots/network/; control-planeroots/gitlab/
journey
- Obrigatório
- Sim.
- Valores
- A jornada a que pertence, igual à primeira parte do nome do arquivo. O arquivo da jornada precisa existir.
- O que determina
- Onde o domínio fica, sob a pasta e o grupo da jornada.
- Fonte
- catalog
scripts/lint.mjs
leads
- Obrigatório
- Sim, pelo menos um.
- Valores
- Pessoas, como numa jornada.
- O que determina
- O grupo
lk-<journey>-<domain>-leads@. Os líderes do domínio podem mesclar em cada produto abaixo dele e aprovar as suas entradas; um deles precisa aprovar um orçamento maior ou um serviço novo, e um líder do domínio ou o time de plataforma dá uma das duas aprovações de que uma mudança de ciclo de vida precisa. - Fonte
- landing-zone
roots/groups/main.tf; control-planegate/src/core/ownership.ts
description
- Obrigatório
- Sim.
- Valores
- Texto, de no máximo 200 caracteres.
- O que determina
- A página do domínio no catálogo de arquitetura.
- Fonte
- catalog
schema/domain.schema.json; control-planecli/fragment.py
restricted_subtree
- Obrigatório
- Não. Padrão
false. - Valores
trueoufalse.- O que determina
- Um grupo restrito dentro do grupo do GitLab do domínio, onde os produtos com
inner_source: falserecebem repositórios privados. - Fonte
- control-plane
roots/gitlab/groups.tf,modules/product-repositories/main.tf
Contexto
Seção intitulada “Contexto”O arquivo de um contexto é contexts/<journey>.<domain>.<context>.yaml. Um domínio pequeno ainda declara um contexto, com o nome do domínio.
context
- Obrigatório
- Sim.
- Valores
- Um slug de 3 a 12 caracteres, igual à terceira parte do nome do arquivo.
- O que determina
- A pasta do contexto, e o seu grupo do GitLab, que guarda os repositórios dos seus produtos.
- Fonte
- catalog
scripts/lint.mjs; landing-zoneroots/folders/; control-planeroots/gitlab/
domain
- Obrigatório
- Sim.
- Valores
- O seu domínio, igual à segunda parte do nome do arquivo. O arquivo do domínio precisa existir.
- O que determina
- Onde o contexto fica, sob a pasta e o grupo do domínio.
- Fonte
- catalog
scripts/lint.mjs
journey
- Obrigatório
- Sim.
- Valores
- A sua jornada, igual à primeira parte do nome do arquivo.
- O que determina
- Onde o contexto fica.
- Fonte
- catalog
scripts/lint.mjs
leads
- Obrigatório
- Sim, pelo menos um.
- Valores
- Pessoas, como numa jornada.
- O que determina
- O grupo
lk-<journey>-<domain>-<context>-leads@. Os líderes do contexto podem mesclar em cada produto do contexto e aprovar as suas entradas. - Fonte
- landing-zone
roots/groups/main.tf; catalogownership/protected-paths.yaml
description
- Obrigatório
- Sim.
- Valores
- Texto.
- O que determina
- Aparece com o contexto na página do seu domínio no catálogo de arquitetura.
- Fonte
- control-plane
cli/fragment.py
Onde fica
No repositório catalog:
- schema/: os JSON Schemas contra os quais cada arquivo é verificado
- scripts/lint.mjs: as verificações de coerência do catálogo
- docs/derivations.md: o que cada campo determina
No repositório landing-zone:
