Contrato del sitio
El paquete JSON que describe los componentes, tipos de página, colecciones, globales, perfiles de medios y tokens de diseño de su sitio web.
Esta página fue traducida del inglés. Si hay alguna diferencia, prevalece la versión en inglés. Leer en inglés
El contrato del sitio es el acuerdo entre el código de su sitio web y Atlas. Enumera lo que existe en su sitio y lo que los editores pueden cambiar. No contiene código ejecutable: solo descripciones y campos tipados.
Manténgalo en su repositorio (por ejemplo atlas/contract.bundle.json) y versiónelo junto con su código.
Ciclo de vida
Sección titulada «Ciclo de vida»- Un desarrollador, o un agente de IA mediante MCP, valida el paquete y lo propone.
- Un administrador del sitio lo revisa y lo activa (o lo rechaza) en Studio, en Site setup.
- Su sitio web informa del digest del paquete que renderiza (
POST /deployments). Studio muestra si el código y el contrato están sincronizados (in sync).
El digest es un hash SHA-256 del JSON canónico del paquete, por lo que el paquete de su repositorio debe coincidir exactamente con el que propuso.
Estructura de nivel superior
Sección titulada «Estructura de nivel superior»| Clave | Contenido |
|---|---|
contractVersion |
Siempre 1.0.0 para este formato |
bundleVersion |
Su propia versión de este paquete, como 1.4.0 |
site |
key, displayName, runtimes (node, cloudflare-workers), locales (predeterminada, admitidas, de derecha a izquierda), staticRoutes que posee su código |
tokens |
Colores, estilos tipográficos y espaciado entre los que pueden elegir los editores |
motion |
Ajustes preestablecidos de animación con nombre que implementa su código, con comportamiento para movimiento reducido |
mediaProfiles |
Tamaños, proporciones y variantes de imagen permitidos |
components |
Hasta 300 componentes, cada uno con un id cualificado, versión, tipo y campos |
collections |
Tipos de contenido repetitivo, con campos, campos de título y de slug, y reglas de unicidad |
pageTypes |
Hasta 100 tipos de página: patrón de ruta, colección vinculada opcional, regiones y reglas de SEO |
globals |
Contenido compartido como site-header y site-footer |
Un componente (abreviado)
Sección titulada «Un componente (abreviado)»{ "id": "acme.home.hero", "version": "1.0.0", "kind": "section", "label": "Home hero", "fields": [ { "key": "heading", "type": "text", "label": "Heading", "required": true, "maxLength": 80 }, { "key": "intro", "type": "longText", "label": "Intro", "maxLength": 400 }, { "key": "image", "type": "asset", "label": "Image", "profile": "hero" }, { "key": "cta", "type": "link", "label": "Button" } ]}Un tipo de página (abreviado)
Sección titulada «Un tipo de página (abreviado)»{ "key": "industry-landing", "version": "1.0.0", "label": "Industry landing", "route": { "pattern": "/industries/{entry.slug}" }, "entry": { "collection": "industries", "mode": "one-page-per-entry" }, "regions": [ { "key": "hero", "reorder": "locked", "sections": [ { "key": "hero", "component": { "id": "acme.industry.hero", "versionRange": "^1.0.0" }, "presence": "required", "bind": { "headline": "entry.headline", "image": "entry.image" } } ] }, { "key": "body", "reorder": "within-region", "min": 1, "max": 20, "insertable": ["acme.text", "acme.faq"] } ]}Las regiones deciden qué pueden hacer los editores: las secciones pueden ser required, default u optional; las regiones pueden estar bloqueadas o ser reordenables, con un número mínimo y máximo de secciones y una lista de componentes insertables. Los campos pueden vincularse (bind) a la entrada de la página, de modo que se cree una página por producto o sector a partir de la colección.
Tipos de campo
Sección titulada «Tipos de campo»| Tipo | Uso | Límites |
|---|---|---|
text |
Texto breve de una sola línea | hasta 500 caracteres |
longText |
Párrafos, sin formato | hasta 10.000 caracteres |
richText |
Texto con formato, perfil basic o article |
Estructurado, nunca HTML sin procesar |
number |
Números con intervalo opcional | |
boolean |
Activado/desactivado | |
select |
Una opción de una lista fija | hasta 100 opciones |
date |
Una fecha | |
link |
Ruta interna o, si se permite, una URL externa | |
asset |
Imagen(es) en un perfil de medios | hasta 50 por campo |
reference |
Vínculo a entradas de una colección | hasta 200 por campo |
list |
Grupo repetitivo de campos | hasta 200 elementos, 40 campos cada uno |
group |
Campos agrupados | hasta 40 campos |
table |
Filas y columnas tipadas | hasta 12 columnas, 200 filas |
token |
Uno de sus tokens de diseño (color, estilo tipográfico, espaciado) | |
icon |
Uno de un conjunto de iconos con nombre que aporta su código | hasta 200 opciones |
Los campos pueden marcarse como required y localized. Un componente o una colección puede tener hasta 80 campos.