Resumen
Los Seeds te permiten exportar e importar objetos en todo CXF. Úsalos para mover configuración y datos entre entornos —por ejemplo, para promover una configuración de una instancia a otra, inicializar un entorno nuevo o cargar grandes volúmenes de registros—. Hay dos tipos de seed, con distintas concesiones entre funcionalidad y velocidad.Tipos de seed
| Seeds estructurales | Seeds de instancias | |
|---|---|---|
| Para qué sirve | Exportar e importar la estructura y configuración de los objetos | Insertar cantidades muy grandes de datos |
| Cobertura de features | Soportan todos los features; pueden volverse muy complejos | Limitada — reservados solo para instancias de templates |
| Procesamiento | Uno por uno | Bulk insert (aprovecha el bulk insert de MongoDB) |
| Velocidad | Más lento, mayor fidelidad | Rápido, alto volumen |
Seeds estructurales
Los seeds estructurales soportan todos los features de CXF y pueden representar objetos complejos con todo el detalle. Como cada objeto se procesa uno por uno, ofrecen más funcionalidad a costa de velocidad. Úsalos cuando importa la fidelidad —exportar e importar la estructura y configuración de tus objetos—.Seeds de instancias
Los seeds de instancias están hechos para volumen. Aprovechan el bulk insert de MongoDB para cargar grandes cantidades de registros rápidamente. A cambio, el soporte de features es más limitado y están reservados solo para instancias de templates.Cómo armar un seed estructural
Un seed estructural es un array JSON. Cada ítem declara unobject_type y un
objeto data con los campos del registro — los mismos campos documentados en la
página de referencia de ese objeto. Los ítems se procesan en orden, así que
un registro puede referenciar a otro creado antes en el mismo seed.
Como los ids no se conocen de antemano, los seeds estructurales usan reference
helpers — expresiones {{...}} que resuelven al id de un registro en el momento
de la inserción:
| Helper | Resuelve a |
|---|---|
getRecordAttribute(object_type, field, value) | El id de un registro localizado por un campo — se usa para template_id. |
getAttributeGroup(object_type, group_slug, template_slug, template_type) | El id de un attribute group padre — se usa para parent_id. |
getContentInstance(template_slug, field, value) | El id de un content instance. Los content instances (y los documents) viven en una colección por template, así que el template slug es obligatorio — getRecordAttribute no puede resolverlos. |
Los attributes de contenido se definen contra el object type
content_versions
y se scopean a su content template mediante template_id. Los campos anidados
apuntan a su grupo con parent_id y usan un full_slug con puntos
(por ejemplo, default.cover_image).Cómo armar un instance seed
Un instance seed es un array JSON plano de registros insertados en bulk en las instancias de un solo template. A diferencia del estructural, no tiene envoltorioobject_type ni reference helpers — cada registro apunta al mismo
template (elegido al ejecutar el seed), así que no hay ids que cruzar.
Para contenido, los valores de cada registro viven dentro de sus versions, y
los valores de los attributes se agrupan bajo el slug de su attribute group (por
ejemplo default):
Los instance seeds están reservados para instancias de templates y no
soportan jerarquía. Para crear relaciones padre-hijo (por ejemplo entre
Taxonomies), usa un seed estructural o defínelas en la UI después.
Comportamiento y reglas
- Un seed se escribe como un array JSON y se pega directamente en el importador — hay una preview en vivo que valida el JSON mientras escribes, así solo puede importarse una entrada válida.
- Los seeds estructurales se procesan un registro a la vez, en el orden del array, para que un registro posterior pueda referenciar a uno creado antes vía reference helpers; los instance seeds se insertan en bloque en las instancias de un único template.
- Los seeds son idempotentes — reimportar el mismo seed no crea duplicados.
- Un seed puede ejecutarse de forma síncrona, o de forma asíncrona como un background job cuyo progreso sigues en Jobs. Una importación síncrona está limitada a 50 objetos; para seeds más grandes, ejecútala de forma asíncrona (sin límite).
Dónde encontrarlo
Los seeds se importan desde Docs Explorer → Schemas. Haz clic en Import structure seeds para abrir el panel Import Structure Seeds:- Import — pega tu array JSON en JSON Input; la Preview se actualiza automáticamente. Activa Run asynchronously (background job) para importaciones grandes, y luego haz clic en Import Seeds.
- Jobs — sigue el estado de los jobs de importación asíncronos.
Gobernanza y permisos
Solo un super admin o un Master puede importar seeds.Relacionado
Schemas
La forma de la data que cargan los seeds.
Content Templates
Los seeds de instancias operan sobre instancias de templates.