Campos del catálogo
Esta página enumera los campos de los archivos del catálogo, los valores que acepta cada uno y lo que la plataforma hace con él. Úsala al escribir o revisar una entrada del catálogo: un campo que determina algo cambia recursos reales en cuanto se fusiona su merge request, y un campo marcado como diseñado se acepta, o está previsto, pero todavía nada actúa sobre él.
La página del catálogo explica los archivos en sí y por qué la intención vive en ellos. Los ejemplos vienen de una organización de demostración, una tienda en línea ficticia.
Cómo leer una fila
Sección titulada «Cómo leer una fila»Cada fila es un campo, con cuatro datos:
- Obligatorio: si un archivo debe tenerlo, y su valor por defecto cuando puede omitirse.
- Valores: lo que aceptan las comprobaciones del catálogo. Los JSON Schemas del catálogo y su lint rechazan cualquier otra cosa, incluido cualquier campo que el esquema no defina (aplicado: el pipeline del catálogo ejecuta el lint en cada merge request).
- Qué determina: lo que la plataforma construye o decide a partir de él, y qué parte de la plataforma lo hace.
- Fuente: los archivos que definen el campo y el código que lo lee.
Las tablas describen la plataforma en la versión de la plataforma 2026.10.01-1, tal como están el 2026-10-01 los esquemas del catálogo, su lint y el código que lee cada campo. Una fila marcada como diseñado es un campo que los contratos de la plataforma especifican y que nada lee todavía, o, en los cuatro últimos campos de producto, uno que el esquema todavía no acepta.
Producto
Sección titulada «Producto»El archivo de un producto es products/<journey>.<domain>.<context>.<product>.yaml.
product
- Obligatorio
- Sí.
- Valores
- Un slug de 2 a 10 caracteres: letras minúsculas y dígitos, palabras unidas por guiones simples, que empieza con una letra. Es la última parte del nombre del archivo, único dentro de su dominio, y nunca un nombre que el dominio haya retirado.
- Qué determina
- La identidad del producto en todas partes: la ruta de su repositorio, los identificadores de sus dos proyectos, su grupo de usuarios, sus prefijos de estado y su nombre de host.
- Fuente
- catalog
schema/common.schema.json,scripts/lint.mjs,docs/derivations.md
journey
- Obligatorio
- Sí.
- Valores
- El slug de un recorrido, de 3 a 10 letras minúsculas, listado en
catalog.yaml. Es la primera parte del nombre del archivo. - Qué determina
- El primer nivel de la ruta del producto, y la zona DNS donde están sus nombres de host,
<journey>.projectairframe.dev. - Fuente
- catalog
scripts/lint.mjs; landing-zoneroots/network/edge.tf
domain
- Obligatorio
- Sí.
- Valores
- El slug de un dominio, de 3 a 8 letras minúsculas. Es la segunda parte del nombre del archivo, y el par
<journey>/<domain>está listado encatalog.yaml. - Qué determina
- Los identificadores de los proyectos,
lk-<domain>-<product>, y qué raíz de fábrica de proyectos de dominio crea los proyectos y qué raíz de GitLab de dominio crea el repositorio. - Fuente
- catalog
scripts/lint.mjs; landing-zoneroots/project-factory/
context
- Obligatorio
- Sí.
- Valores
- Un slug de 3 a 12 caracteres. Es la tercera parte del nombre del archivo, y su archivo de contexto debe existir.
- Qué determina
- El grupo de GitLab del contexto, que contiene el repositorio, y la carpeta del contexto, que contiene los proyectos.
- Fuente
- catalog
scripts/lint.mjs; landing-zoneroots/project-factory/
team
- Obligatorio
- Sí.
- Valores
- El slug de un equipo. El equipo debe existir y vivir en el contexto del producto, y al menos una persona que pueda fusionar, entre los desarrolladores y el líder del equipo y los líderes por encima del producto, debe tener una cuenta de GitLab.
- Qué determina
- Quién aprueba y quién puede fusionar, junto con los líderes del contexto, el dominio y el recorrido; los miembros del grupo de usuarios del producto; el acceso de lectura del grupo del equipo a los proyectos; la etiqueta
team; el equipo de Grafana. - Fuente
- catalog
scripts/lint.mjs; landing-zoneroots/groups/main.tf,roots/project-factory/; control-planegate/src/core/ownership.ts
lifecycle
- Obligatorio
- No. Por defecto
{ status: active }. - Valores
statusesactive,retiringoremoved.retire_after, una fecha, es obligatorio para los dos últimos.removedllega solo después deretiring, y solo una vez pasada esa fecha.- Qué determina
- El retiro saca los servicios del producto del borde compartido y conserva cada recurso. La eliminación borra sus proyectos, su grupo de usuarios y su repositorio, y exige una lápida para que el nombre no se reutilice nunca. Un cambio de estado necesita la etiqueta
lifecycley dos aprobaciones: una del equipo y otra de un líder del dominio o del equipo de plataforma. - Fuente
- catalog
scripts/lint.mjs,scripts/lifecycle-check.mjs; control-planegate/src/core/ownership.ts; golden-pathmodules/cloud-run-service/main.tf
criticality
- Obligatorio
- Sí.
- Valores
1,2o3; 1 es el más crítico.- Qué determina
- La etiqueta
criticality; el nivel de la base de datos de producción y, con 1, su disponibilidad regional; el límite de instancias de cada servicio; si producción espera el apply del sandbox (1 y 2). Con 1 o 2 el equipo necesita dos miembros de guardia, y con 1 un horario de guardiaalways. - Fuente
- golden-path
modules/cloud-sql/main.tf,modules/cloud-run-service/main.tf,template/.gitlab-ci.yml.jinja; catalogscripts/lint.mjs
data_classification
- Obligatorio
- Sí.
- Valores
public,internal,confidentialorestricted.restrictedexigeinner_source: false.- Qué determina
- La etiqueta
data_classificationen los recursos del producto. - Fuente
- golden-path
modules/airframe-context/main.tf; catalogscripts/lint.mjs
rto, rpo
- Obligatorio
- Sí.
- Valores
- Un número entero positivo seguido de
m,hod, como1ho15m; el lint lo comprueba pararpo. Unrpomenor que5mnecesita criticidad 1. - Qué determina
- La recuperación de la base de datos de producción: un
rpomenor que un día activa la recuperación a un punto en el tiempo, y el módulo de Cloud SQL del golden path rechaza un objetivo que no puede cumplir. - Fuente
- catalog
scripts/lint.mjs; golden-pathmodules/cloud-sql/main.tf
monthly_budget
- Obligatorio
- Sí.
- Valores
- Dólares estadounidenses enteros, al menos 1. La suma de los presupuestos de productos y playgrounds no puede superar el presupuesto de la carpeta en
catalog.yaml. - Qué determina
- Un presupuesto de Google Cloud en cada proyecto facturado, 70 por ciento producción y 30 por ciento no producción, con alertas al 80 y al 100 por ciento. La comprobación de costo de Airframe rechaza un cambio cuyos planes con precio lo superan. Subirlo necesita un líder del dominio.
- Fuente
- landing-zone
roots/project-factory/; control-planepolicy/airframe/cost.rego,gate/src/core/ownership.ts; catalogscripts/lint.mjs
template
- Obligatorio
- Sí.
- Valores
fullstackonone.noneexigesource_repoorepos.- Qué determina
- Si el job de generación escribe el primer commit del repositorio a partir del template del golden path. Con
none, el repositorio que crea la plataforma queda vacío. - Fuente
- control-plane
lifecycle/render.sh; catalogscripts/lint.mjs
stack
- Obligatorio
- No. Por defecto
node. - Valores
node,python-fastapiojava-spring.- Qué determina
- La aplicación que genera el template. El job inyectado de compilación y pruebas se elige luego según los archivos que esa pila deja en el repositorio.
- Fuente
- catalog
schema/product.schema.json; control-planetemplates/build-test/template.yml
slo
- Obligatorio
- Sí.
- Valores
availability, un porcentaje de 90 a 99.99, ylatency_p95_ms, un número entero de milisegundos.- Qué determina
- Los objetivos del tablero de SLO del producto y su regla de alerta de presupuesto de error en Grafana.
- Fuente
- operations
roots/grafana/pack.tf
quality
- Obligatorio
- No. Por defecto: cobertura de 80, sin trinquete, los hallazgos nunca fallan.
- Valores
minimum_coverage, de 0 a 100;coverage_ratchet, true o false;block_on_quality, uno deoff,info,minor,major,criticaloblocker.- Qué determina
- El job inyectado
build:qualitylo lee del catálogo al ejecutarse y falla por debajo de la cobertura, por debajo de la cobertura de main cuando el trinquete está activo, o ante hallazgos de esa gravedad o mayor. Un cambio necesita un líder del equipo o un líder del dominio. - Fuente
- control-plane
templates/build-test/template.yml,gate/src/core/ownership.ts
external_ingressdiseñado
- Obligatorio
- No. Por defecto
false. - Valores
trueofalse.- Qué determina
- Pensado para que una ruta que el producto declara pública no pase por el inicio de sesión único. El golden path lo pasa a los módulos del producto, pero cada backend de producto sigue teniendo inicio de sesión único, y el paquete de políticas rechaza uno sin él: la pieza para una ruta pública no está construida.
- Fuente
- golden-path
modules/service-project/main.tf,modules/cloud-run-service/main.tf; control-planepolicy/airframe/cloud_run.rego
inner_source
- Obligatorio
- No. Por defecto
true. - Valores
trueofalse.- Qué determina
- Con
false, en un dominio que tiene un grupo restringido, el repositorio va allí y es privado. En los demás casos el repositorio es público. - Fuente
- control-plane
modules/product-repositories/main.tf; landing-zoneroots/project-factory/
agentic_opsdiseñado
- Obligatorio
- No. Por defecto
diagnose. - Valores
diagnose,act,autoopropose.- Qué determina
- Hasta dónde puede actuar sobre el producto el agente de operaciones. Nada lo lee: ese agente no está construido.
- Fuente
- catalog
schema/product.schema.json; landing-zonedocs/contracts.md1.4
preview_concurrency
- Obligatorio
- No. Por defecto
2. - Valores
- De 1 a 16.
- Qué determina
- El tamaño de la instancia compartida de base de datos de las vistas previas, cuando
preview_dbesshared. - Fuente
- golden-path
modules/preview-substrate/variables.tf,template/infra/np/main.tf.jinja
preview_db
- Obligatorio
- No. Por defecto
sidecar. - Valores
sidecaroshared.- Qué determina
- Cómo obtiene su base de datos una vista previa: un contenedor de PostgreSQL junto al servicio de la vista previa, o una base de datos propia en una instancia compartida de Cloud SQL por producto.
- Fuente
- golden-path
modules/preview-substrate/variables.tf,template/infra/eph/main.tf.jinja
preview_ttl_hours
- Obligatorio
- No. Por defecto
72. - Valores
- De 1 a 168.
- Qué determina
- Cuánto vive una vista previa después de su último apply, llevado como la etiqueta
expiresen sus servicios; después se destruye. - Fuente
- golden-path
modules/preview-substrate/variables.tf,modules/cloud-run-service/main.tf
previewdiseñado
- Obligatorio
- No. Por defecto
standard. - Valores
standardocustom.- Qué determina
- Si el producto trae su propio componente de vista previa. Nada lo lee; cada vista previa usa el enrutador estándar.
- Fuente
- catalog
schema/product.schema.json; landing-zonedocs/contracts.md1.4
conformance_leveldiseñado
- Obligatorio
- No.
- Valores
1,2o3.- Qué determina
- Cuánto ha avanzado el producto en la escalera de adopción. Nada lo lee todavía.
- Fuente
- catalog
schema/product.schema.json; landing-zonedocs/contracts.md1.4
residency_profilediseñado
- Obligatorio
- No. Por defecto
default. - Valores
- Solo
default. - Qué determina
- Dónde pueden residir los datos del producto. Solo existe un perfil, y nada lee el campo.
- Fuente
- catalog
schema/product.schema.json; landing-zonedocs/contracts.md1.4
componentsdiseñado
- Obligatorio
- No.
- Valores
- Una lista de
name, concriticalityydata_classificationopcionales. El nombre del producto, un guion y el nombre del componente suman como mucho 10 caracteres. - Qué determina
- Proyectos separados para una parte del producto con un perfil distinto. Ninguna fábrica de proyectos los crea todavía.
- Fuente
- catalog
schema/product.schema.json,scripts/lint.mjs; landing-zoneroots/project-factory/
database
- Obligatorio
- No.
- Valores
tier, el nombre de un nivel de Cloud SQL que empieza condb-.- Qué determina
- El nivel de las instancias de Cloud SQL del producto, en lugar del valor por defecto del módulo: el más pequeño fuera de producción, el de la criticidad en producción.
- Fuente
- catalog
schema/product.schema.json; golden-pathtemplate/infra/prod/main.tf.jinja,template/infra/np/main.tf.jinja
services
- Obligatorio
- No.
- Valores
- Nombres de archivos en
services/del catálogo, cada uno un servicio de Google Cloud que la plataforma aprobó. - Qué determina
- La API de cada servicio se habilita en los proyectos facturados del producto y sus roles se otorgan a las identidades de apply del producto. Agregar uno necesita un líder del dominio.
- Fuente
- catalog
scripts/lint.mjs; landing-zoneroots/project-factory/; control-planegate/src/core/ownership.ts
sandbox
- Obligatorio
- No. Por defecto
false. - Valores
true, otiercon el nombre de un nivel de Cloud SQL. Obligatorio cuando otro producto consume los eventos de este producto o lo llama.- Qué determina
- Un entorno permanente con la versión de main en el proyecto de no producción, con su propia base de datos en el nivel más pequeño o en el indicado, para que otros productos prueben contra él.
- Fuente
- catalog
scripts/lint.mjs; golden-pathtemplate/infra/sandbox/main.tf.jinja
egress
- Obligatorio
- No.
- Valores
- Nombres de host, sin comodines y sin direcciones.
- Qué determina
- Las reglas de permiso del proxy de salida para los servicios del producto. El proxy está apagado por defecto porque cuesta dinero aun en reposo, y mientras está apagado un producto que declara
egressno puede desplegar. - Fuente
- landing-zone
roots/network/egress.tf
egress_tcpdiseñado
- Obligatorio
- No.
- Valores
- Una lista de
name,cidrsyport. - Qué determina
- Conexiones de salida que no son solicitudes web, hacia rangos de direcciones con nombre. Nada lo lee todavía.
- Fuente
- catalog
schema/product.schema.json; landing-zoneroots/network/variables.tf
consumes
- Obligatorio
- No.
- Valores
- Una lista de
topic, la ruta y el evento del publicador como<journey>/<domain>/<context>/<product>/<event>, ysubscription, único en el producto. El publicador debe declarar el evento. - Qué determina
- Agregar uno necesita la aprobación de los responsables del publicador, salvo que el evento esté marcado como
inner_source. El evento aparece como recibido en la página del producto en el catálogo de arquitectura. Ningún módulo crea todavía la suscripción, así que esa parte está diseñada. - Fuente
- catalog
scripts/lint.mjs; control-planegate/src/core/ownership.ts,cli/fragment.py
topics
- Obligatorio
- No.
- Valores
- Una lista de
event, dos palabras en minúsculas unidas por un punto comoorder.placed;schema, una ruta en el repositorio del producto; einner_source, por defectofalse. - Qué determina
- Los eventos que otros productos pueden consumir, y sus páginas en el catálogo de arquitectura. Ningún módulo crea todavía el tópico de Pub/Sub, así que esa parte está diseñada.
- Fuente
- catalog
scripts/lint.mjs; control-planecli/fragment.py
calls
- Obligatorio
- No.
- Valores
- Rutas de productos,
<journey>/<domain>/<context>/<product>, nunca el propio producto. - Qué determina
- Agregar una necesita la aprobación de los responsables del producto llamado, y el producto llamado debe tener un sandbox. La llamada aparece en el catálogo de arquitectura.
- Fuente
- catalog
scripts/lint.mjs; control-planegate/src/core/ownership.ts,cli/fragment.py
iap_accessdiseñado
- Obligatorio
- No.
- Valores
- Una lista de
teamogroup. - Qué determina
- Quién más puede llegar al producto detrás del inicio de sesión único. Nada lo lee todavía: el grupo de usuarios del producto contiene a los miembros de su propio equipo.
- Fuente
- catalog
schema/product.schema.json; landing-zoneroots/groups/main.tf
source_repodiseñado
- Obligatorio
- No.
- Valores
- La dirección del único repositorio en el que vive hoy un sistema existente. Solo con
template: none. - Qué determina
- Nada lo lee todavía: el repositorio que crea la plataforma queda vacío.
- Fuente
- catalog
scripts/lint.mjs; control-planelifecycle/render.sh
reposdiseñado
- Obligatorio
- No.
- Valores
- Una lista de
nameyrole, donde el rol esinfra,service,worker,migrationofrontend. Solo contemplate: none. - Qué determina
- Un producto repartido en varios repositorios. Nada lo lee todavía.
- Fuente
- catalog
schema/product.schema.json; landing-zonedocs/adr/0017-multi-repository-products-and-adoption-by-moving-the-group.md
runtimediseñado
- Obligatorio
- Todavía no se acepta.
- Valores
cloud-runogke, en los contratos.- Qué determina
- Dónde se ejecuta el producto: Cloud Run, o espacios de nombres en un clúster GKE compartido. El esquema todavía no acepta el campo, así que el lint rechaza una entrada que lo use.
- Fuente
- landing-zone
docs/contracts.md1.4; catalogschema/product.schema.json
source_groupdiseñado
- Obligatorio
- Todavía no se acepta.
- Valores
- La ruta de un grupo de GitLab, en los contratos.
- Qué determina
- El grupo en el que viven los repositorios de un producto adoptado antes de pasar a la ruta de la plataforma. Hoy el lint lo rechaza.
- Fuente
- landing-zone
docs/contracts.md1.4; catalogschema/product.schema.json
hostnamesdiseñado
- Obligatorio
- Todavía no se acepta.
- Valores
- Nombres de host bajo una zona que la organización posee, en los contratos.
- Qué determina
- Los nombres de host con los que llega un producto adoptado, que el borde compartido serviría como alias de los suyos. Hoy el lint lo rechaza.
- Fuente
- landing-zone
docs/contracts.md1.4 y 8; catalogschema/product.schema.json
dependenciesdiseñado
- Obligatorio
- Todavía no se acepta.
- Valores
- Una lista de
name,kind,hostyport, en los contratos. - Qué determina
- Un almacén de datos o un servicio que el producto sigue operando fuera de la plataforma; la red le abriría el camino. Hoy el lint lo rechaza.
- Fuente
- landing-zone
docs/contracts.md1.4; catalogschema/product.schema.json
Los secretos nunca están en el catálogo. El repositorio de un producto los enumera por nombre en su propio archivo de secretos, sin valores.
El archivo de un equipo es teams/<team>.yaml.
team
- Obligatorio
- Sí.
- Valores
- Un slug, igual al nombre del archivo.
- Qué determina
- El grupo del equipo,
lk-team-<team>@, que tiene acceso de lectura a los proyectos de los productos del equipo, y el equipo, su punto de contacto y el enrutamiento de sus alertas en Grafana. - Fuente
- catalog
scripts/lint.mjs; landing-zoneroots/groups/main.tf,roots/project-factory/; operationsroots/grafana/
context
- Obligatorio
- Sí.
- Valores
- La ruta del contexto en el que vive el equipo,
<journey>/<domain>/<context>, oplatform. - Qué determina
- Qué productos puede gestionar el equipo: el equipo de un producto debe vivir en el contexto del producto.
- Fuente
- catalog
scripts/lint.mjs
lead
- Obligatorio
- Sí.
- Valores
- Una persona que es miembro con el rol
team_lead. - Qué determina
- El contacto principal del equipo, en su página del catálogo de arquitectura. El líder del equipo de plataforma administra la organización de Grafana.
- Fuente
- catalog
scripts/lint.mjs; control-planecli/fragment.py; operationsroots/grafana/members.tf
timezone
- Obligatorio
- No. Por defecto
Etc/UTC. - Valores
- El nombre de una zona horaria, como
Europe/Lisbon. - Qué determina
- Se muestra en la página del equipo en el catálogo de arquitectura. Nada más lo lee todavía.
- Fuente
- catalog
schema/team.schema.json; control-planecli/fragment.py
members
- Obligatorio
- Sí, al menos uno.
- Valores
- Una lista de
personyroles; los roles sondeveloper,team_lead,oncallyoncall-secondary. Un miembro está activo o pendiente, nunca dado de baja. - Qué determina
- Cada miembro puede aprobar cambios en los productos del equipo; los desarrolladores y los líderes del equipo además pueden fusionarlos. Los miembros activos entran en el grupo del equipo, en los grupos de usuarios de los productos del equipo y en el equipo de Grafana.
- Fuente
- catalog
scripts/lint.mjs,ownership/protected-paths.yaml; landing-zoneroots/groups/main.tf
oncalldiseñado
- Obligatorio
- No. El equipo de un producto de criticidad 1 lo necesita.
- Valores
rotation,weeklyodaily;layers, los roles de guardia;hours,businessoalways. Un producto de criticidad 1 necesitaalways.- Qué determina
- La rotación de guardia del equipo, que no está construida. Hoy los valores solo aparecen en la página del equipo en el catálogo de arquitectura.
- Fuente
- catalog
scripts/lint.mjs; control-planecli/fragment.py
Persona
Sección titulada «Persona»El archivo de una persona es people/<person>.yaml.
person
- Obligatorio
- Sí.
- Valores
- La parte local de la dirección de correo, como
sam.okafor, igual al nombre del archivo. - Qué determina
- La identidad de la persona en cada equipo, lista de líderes y aprobación.
- Fuente
- catalog
schema/common.schema.json,scripts/lint.mjs
email
- Obligatorio
- Sí.
- Valores
- Una dirección en el dominio de la organización,
projectairframe.dev. - Qué determina
- Las membresías de grupos: la raíz de grupos agrega a cada persona activa a sus grupos con esta dirección.
- Fuente
- catalog
schema/common.schema.json; landing-zoneroots/groups/main.tf
name
- Obligatorio
- Sí.
- Valores
- Cualquier texto.
- Qué determina
- La página de la persona en el catálogo de arquitectura.
- Fuente
- control-plane
cli/fragment.py
status
- Obligatorio
- Sí.
- Valores
active,pendingodeparted.- Qué determina
- Solo las personas activas entran en grupos. Una persona pendiente, todavía sin cuenta, conserva sus roles y sus puestos de líder. El lint rechaza a una persona dada de baja en un equipo o una lista de líderes.
- Fuente
- catalog
scripts/lint.mjs; landing-zoneroots/groups/main.tf
gitlab_username
- Obligatorio
- No.
- Valores
- Un nombre de usuario de GitLab.
- Qué determina
- Las membresías y los permisos de fusión en GitLab, y los aprobadores con nombre de la política de aprobación: solo cuentan las personas activas con un nombre de usuario.
- Fuente
- catalog
scripts/lint.mjs; security-policiesscripts/approvers.py; control-planeroots/gitlab/
grafana_username
- Obligatorio
- No.
- Valores
- El inicio de sesión de la persona en Grafana Cloud, una vez que el inicio de sesión único creó la cuenta.
- Qué determina
- La membresía en la organización de Grafana y en los equipos de la persona allí.
- Fuente
- operations
roots/grafana/members.tf
profile
- Obligatorio
- No.
- Valores
about,expertise,linksyhours. Un cambio necesita a la persona: su aprobación, o un merge request que ella abrió solo con commits suyos.- Qué determina
- La página de la persona en el catálogo de arquitectura.
- Fuente
- catalog
ownership/protected-paths.yaml; control-planegate/src/core/ownership.ts,cli/fragment.py
Recorrido
Sección titulada «Recorrido»El archivo de un recorrido es journeys/<journey>.yaml.
journey
- Obligatorio
- Sí.
- Valores
- De 3 a 10 letras minúsculas, igual al nombre del archivo y listado en
catalog.yaml. - Qué determina
- La carpeta del recorrido, su grupo de GitLab y su zona DNS,
<journey>.projectairframe.dev. - Fuente
- catalog
scripts/lint.mjs,docs/derivations.md
leads
- Obligatorio
- Sí, al menos uno.
- Valores
- Personas; la primera es el contacto principal. Ninguna puede estar dada de baja.
- Qué determina
- El grupo
lk-journey-<journey>-leads@. Los líderes del recorrido pueden fusionar en cada producto que está debajo. - Fuente
- catalog
schema/journey.schema.json,scripts/lint.mjs; landing-zoneroots/groups/main.tf
description
- Obligatorio
- Sí.
- Valores
- Texto.
- Qué determina
- La página del recorrido en el catálogo de arquitectura.
- Fuente
- control-plane
cli/fragment.py
Dominio
Sección titulada «Dominio»El archivo de un dominio es domains/<journey>.<domain>.yaml.
domain
- Obligatorio
- Sí.
- Valores
- De 3 a 8 letras minúsculas, igual a la segunda parte del nombre del archivo y listado como
<journey>/<domain>encatalog.yaml. - Qué determina
- La carpeta del dominio, su grupo de líderes y sus dos subredes en cada red salen del catálogo. Sus grupos de GitLab, su raíz de fábrica de proyectos y su raíz de GitLab de dominio son cambios en la propia plataforma.
- Fuente
- landing-zone
roots/folders/,roots/groups/,roots/network/; control-planeroots/gitlab/
journey
- Obligatorio
- Sí.
- Valores
- El recorrido al que pertenece, igual a la primera parte del nombre del archivo. El archivo del recorrido debe existir.
- Qué determina
- Dónde está el dominio, bajo la carpeta y el grupo del recorrido.
- Fuente
- catalog
scripts/lint.mjs
leads
- Obligatorio
- Sí, al menos uno.
- Valores
- Personas, como en un recorrido.
- Qué determina
- El grupo
lk-<journey>-<domain>-leads@. Los líderes del dominio pueden fusionar en cada producto que está debajo y aprobar sus entradas; uno debe aprobar un presupuesto mayor o un servicio nuevo, y un líder del dominio o el equipo de plataforma da una de las dos aprobaciones que necesita un cambio de ciclo de vida. - Fuente
- landing-zone
roots/groups/main.tf; control-planegate/src/core/ownership.ts
description
- Obligatorio
- Sí.
- Valores
- Texto, de 200 caracteres como mucho.
- Qué determina
- La página del dominio en el catálogo de arquitectura.
- Fuente
- catalog
schema/domain.schema.json; control-planecli/fragment.py
restricted_subtree
- Obligatorio
- No. Por defecto
false. - Valores
trueofalse.- Qué determina
- Un grupo restringido dentro del grupo de GitLab del dominio, donde los productos con
inner_source: falseobtienen repositorios privados. - Fuente
- control-plane
roots/gitlab/groups.tf,modules/product-repositories/main.tf
Contexto
Sección titulada «Contexto»El archivo de un contexto es contexts/<journey>.<domain>.<context>.yaml. Un dominio pequeño igual declara un contexto, con el nombre del dominio.
context
- Obligatorio
- Sí.
- Valores
- Un slug de 3 a 12 caracteres, igual a la tercera parte del nombre del archivo.
- Qué determina
- La carpeta del contexto, y su grupo de GitLab, que contiene los repositorios de sus productos.
- Fuente
- catalog
scripts/lint.mjs; landing-zoneroots/folders/; control-planeroots/gitlab/
domain
- Obligatorio
- Sí.
- Valores
- Su dominio, igual a la segunda parte del nombre del archivo. El archivo del dominio debe existir.
- Qué determina
- Dónde está el contexto, bajo la carpeta y el grupo del dominio.
- Fuente
- catalog
scripts/lint.mjs
journey
- Obligatorio
- Sí.
- Valores
- Su recorrido, igual a la primera parte del nombre del archivo.
- Qué determina
- Dónde está el contexto.
- Fuente
- catalog
scripts/lint.mjs
leads
- Obligatorio
- Sí, al menos uno.
- Valores
- Personas, como en un recorrido.
- Qué determina
- El grupo
lk-<journey>-<domain>-<context>-leads@. Los líderes del contexto pueden fusionar en cada producto del contexto y aprobar sus entradas. - Fuente
- landing-zone
roots/groups/main.tf; catalogownership/protected-paths.yaml
description
- Obligatorio
- Sí.
- Valores
- Texto.
- Qué determina
- Se muestra con el contexto en la página de su dominio en el catálogo de arquitectura.
- Fuente
- control-plane
cli/fragment.py
Dónde está
En el repositorio catalog:
- schema/: los JSON Schemas contra los que se comprueba cada archivo
- scripts/lint.mjs: las comprobaciones de coherencia del catálogo
- docs/derivations.md: lo que determina cada campo
En el repositorio landing-zone:
