Propiedades del sistema (sys)

Última actualización: 3 de julio de 2026

Toda respuesta de recurso de WEEGLOO se divide en dos partes. Por un lado están los datos de contenido propios del recurso, como fields, y por otro lado están los metadatos que gestiona el sistema. Todos estos metadatos se alojan en el objeto sys.

sys contiene el identificador del recurso (id), su tipo (type), las fechas de creación y modificación, la versión y la relación con otros recursos. Esta página reúne en un solo lugar la estructura de sys que comparten todos los recursos y las diferencias según el tipo de recurso. Cada referencia de recurso individual describe por separado solo las claves de sys propias de ese recurso y, para la parte común, remite a esta página.

Campos comunes

El sys de casi todos los recursos tiene los siguientes campos. createdBy, updatedBy y space se incluyen con la forma Refer que apunta a otro recurso ({ "sys": { "id", "type": "Refer", "targetType" } }). La forma detallada se trata más abajo en Forma de Refer.

PropiedadTipoDescripción
idstringIdentificador único del recurso. Se coloca en el lugar {...Id} de las rutas de consulta, modificación y eliminación individuales.
typestringTipo de recurso. El valor es el nombre del tipo de ese recurso (por ejemplo, "Content", "Media", "Tag").
createdByRefer<User>Usuario que lo creó.
updatedByRefer<User>Usuario que lo modificó por última vez.
createdAtstring (date-time)Fecha de creación.
updatedAtstring (date-time)Fecha de la última modificación.
versioninteger (≥1)Versión actual. Aumenta en 1 cada vez que se modifica el recurso.
spaceRefer<Space>El Space al que pertenece este recurso. Solo lo tienen los recursos subordinados a un Space.

version también sirve para evitar conflictos de modificación simultánea. En las solicitudes de la familia de cambios, como modificar o publicar, hay que enviar el valor actual de version en la cabecera X-Weegloo-Version. Para las reglas detalladas, consulta Convenciones.

Organization no está subordinada a un Space, por lo que no tiene space. En su lugar tiene plan (Refer<Plan>), que apunta al plan al que pertenece, e isOfficial (boolean), que indica si es oficial. Space tiene organization (Refer<Organization>), que apunta a la Organization superior, y plan.

Forma de Refer

Dentro de sys, las referencias que apuntan a otro recurso usan siempre la misma forma. type queda fijado en "Refer" y targetType indica el tipo de recurso al que apunta.

{
  "sys": {
    "id": "HnQ32YiH",
    "type": "Refer",
    "targetType": "Space"
  }
}

En targetType se coloca el nombre del tipo de recurso al que apunta. Por ejemplo, en space el targetType es "Space"; en createdBy y updatedBy es "User"; y en el contentType de Content es "ContentType". Es decir, todos los tipos que se escriben como Refer&lt;User&gt; o Refer&lt;Space&gt; tienen esta forma, y solo cambia targetType.

Diferencias según el tipo de recurso

Sobre los campos comunes se añaden propiedades adicionales según el tipo de recurso. Se dividen a grandes rasgos en tres grupos.

Recursos con ciclo de vida de publicación (Content, Media)

Content y Media tienen un ciclo de vida de redacción, publicación y archivado. Por eso a su sys se le añaden propiedades que indican el estado de publicación.

PropiedadTipoDescripción
statusstring (enum)Estado de publicación. Uno de Draft, Changed, Published, Archived.
publishobjectPuntero del estado de publicación. Consulta las claves más abajo.
archiveobjectInformación de archivado. Existe solo cuando está archivado; en caso contrario, la clave no aparece.

status es uno de los 4 valores siguientes.

statusSignificado
DraftEn redacción y aún no publicado.
ChangedSe ha publicado alguna vez, pero después se modificó y hay cambios aún no publicados.
PublishedEstá publicado y no hay cambios sin publicar.
ArchivedEstá archivado.

El objeto publish es un puntero que indica el estado de publicación. Cuando está publicado, tiene todas las siguientes claves.

ClaveTipoDescripción
versionintegerEl sys.version en el momento de la publicación.
atstring (date-time)Fecha de la última publicación.
firstAtstring (date-time)Fecha de la primera publicación. Se conserva aunque se despublique.
counterintegerNúmero acumulado de publicaciones.
byRefer<User>Usuario que publicó por última vez.

Al despublicar, de publish se eliminan version, at y by, y solo quedan firstAt y counter. Si nunca se ha publicado, publish es { "counter": 0 }.

El objeto archive existe solo cuando está archivado, y tiene el version del momento del archivado, la fecha de archivado at y el usuario que lo archivó by. Si no está en estado archivado, la clave archive no aparece en absoluto.

Aquí sys.version es la versión de trabajo (aumenta con cada cambio: creación, modificación, publicación, etc.) y publish.version es la última versión publicada. Las dos pueden ser distintas.

A continuación se muestra un ejemplo del sys de un Content que está publicado.

{
  "id": "3trmXRM3RqbgSnifyg7PUl8DzDgDzP",
  "type": "Content",
  "space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
  "contentType": { "sys": { "id": "3trmXRLdJF4GBlAjtcuoZ7Pnxj8dlA", "type": "Refer", "targetType": "ContentType" } },
  "publish": {
    "version": 1,
    "at": "2026-06-18T09:51:44.128Z",
    "firstAt": "2026-06-18T09:51:44.128Z",
    "counter": 1,
    "by": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } }
  },
  "createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
  "createdAt": "2026-06-18T09:51:14.597Z",
  "updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
  "updatedAt": "2026-06-18T09:51:44.128Z",
  "version": 2,
  "status": "Published"
}

El orden de las transiciones de estado del ciclo de vida de publicación y la respuesta de cada etapa se tratan en Content y Media.

Recursos de configuración (Tag, Locale, Organization, Space, etc.)

Recursos como Tag, Locale, Organization, Space, SpaceRole, ServiceUserRole, Webhook y ServiceLogin no tienen el concepto de publicación. Se aplican en cuanto se crean, sin una etapa de publicarlos para subirlos a la ruta de entrega.

Por tanto, su sys no tiene status, publish ni archive, y junto con los campos comunes solo tiene version. version aumenta en 1 cada vez que se modifica, y se envía en la cabecera X-Weegloo-Version al solicitar un cambio.

SpaceRole, además, tiene isLocked (boolean). Si es true, significa que es un rol que WEEGLOO ofrece de forma predeterminada.

Recursos especiales (ServiceUser, WebHosting)

Algunos recursos tienen un sys que no encaja en los dos grupos anteriores.

ServiceUser es un recurso que se genera con el registro de un miembro del producto. Como no es un recurso que una persona cree y modifique en el estudio de contenidos, su sys no tiene createdBy, updatedBy ni version. En su lugar tiene el medio de inicio de sesión provider (string) y email (string). Como no tiene version, al modificar un ServiceUser no hace falta la cabecera X-Weegloo-Version.

WebHosting es un recurso que aloja un artefacto de despliegue. Tiene los campos comunes y version, y a ello se le añade el estado de procesamiento del despliegue state (enum). Este no es un estado de publicación, sino el estado de avance del procesamiento del artefacto de despliegue subido.

stateSignificado
PENDINGEn espera de procesamiento.
PROCESSINGEn procesamiento.
COMPLETEDProcesamiento completado.
FAILEDProcesamiento fallido.

Diferencia entre CMA y CDA: version frente a revision

Aunque se trate del mismo Content o Media, la forma de sys es distinta según de qué API se reciba.

El Content o Media que se recibe en CMA (gestión) es un recurso en trabajo. Por eso incluye version, status y publish (y archive si está archivado), e informa a la vez del estado de trabajo actual y del estado de publicación.

CDA (entrega) solo entrega la instantánea publicada. Como no existe el concepto de estado de trabajo, en sys no incluye version, status, publish ni archive. En su lugar usa un único revision (integer) que apunta al número de la instantánea publicada. En revision se guarda la versión de ese momento cada vez que se publica.

{
  "id": "3trmXRM3RqbgSnifyg7PUl8DzDgDzP",
  "type": "Content",
  "space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
  "contentType": { "sys": { "id": "3trmXRLdJF4GBlAjtcuoZ7Pnxj8dlA", "type": "Refer", "targetType": "ContentType" } },
  "createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
  "createdAt": "2026-06-18T09:51:14.597Z",
  "updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
  "updatedAt": "2026-06-18T09:51:44.128Z",
  "revision": 3
}

El modelo de entrega de publicación (solo se entrega lo publicado, instantánea de publicación, revision) se trata en detalle en Resumen de CDA.