Propriétés système (sys)

Dernière mise à jour : 3 juillet 2026

Toute réponse de ressource WEEGLOO se divise en deux volets. D'un côté les données de fond de la ressource, comme fields ; de l'autre les métadonnées gérées par le système. Ces métadonnées sont toutes regroupées dans l'objet sys.

sys contient l'identifiant de la ressource (id), son genre (type), les horodatages de création et de modification, la version et les relations avec d'autres ressources. Cette page rassemble en un seul endroit la structure de sys commune à toutes les ressources ainsi que les différences propres à chaque genre de ressource. Chaque référence de ressource individuelle ne décrit que les clés sys qui lui sont propres et renvoie à cette page pour la partie commune.

Champs communs

Le sys de presque toutes les ressources possède les champs suivants. createdBy, updatedBy et space se présentent sous la forme Refer pointant vers une autre ressource ({ "sys": { "id", "type": "Refer", "targetType" } }). La forme détaillée est traitée plus bas dans La forme Refer.

PropriétéTypeDescription
idstringIdentifiant unique de la ressource. S'insère à l'emplacement {...Id} des chemins de consultation, de modification et de suppression unitaires.
typestringGenre de la ressource. La valeur est le nom du genre de cette ressource (par exemple "Content", "Media", "Tag").
createdByRefer<User>Utilisateur qui l'a créée.
updatedByRefer<User>Dernier utilisateur l'ayant modifiée.
createdAtstring (date-time)Horodatage de création.
updatedAtstring (date-time)Horodatage de la dernière modification.
versioninteger (≥1)Version actuelle. S'incrémente de 1 à chaque modification de la ressource.
spaceRefer<Space>Space auquel appartient cette ressource. Seules les ressources subordonnées à un Space le possèdent.

version sert aussi à prévenir les conflits de modification concurrente. Les requêtes de la famille des changements, comme la modification ou la publication, doivent transmettre la valeur version actuelle dans l'en-tête X-Weegloo-Version. Pour les règles détaillées, reportez-vous aux conventions.

Une Organization n'étant pas subordonnée à un Space, elle ne possède pas space. Elle possède en revanche plan (Refer<Plan>), qui pointe vers le forfait auquel elle est rattachée, et isOfficial (boolean), qui indique son caractère officiel. Un Space possède organization (Refer<Organization>), qui pointe vers l'Organization parente, ainsi que plan.

La forme Refer

Au sein de sys, toute référence pointant vers une autre ressource emploie toujours la même forme. type est fixé à "Refer", et targetType indique le genre de la ressource pointée.

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

targetType contient le nom du genre de la ressource pointée. Par exemple, pour space, targetType vaut "Space" ; pour createdBy et updatedBy, il vaut "User" ; pour le contentType d'un Content, il vaut "ContentType". Autrement dit, tous les types notés Refer&lt;User&gt; ou Refer&lt;Space&gt; partagent cette forme, seul targetType change.

Différences selon le genre de ressource

Au-dessus des champs communs s'ajoutent des propriétés supplémentaires selon le genre de la ressource. On distingue trois grandes catégories.

Ressources à cycle de vie de publication (Content et Media)

Content et Media possèdent un cycle de vie : rédaction, publication, archivage. C'est pourquoi des propriétés indiquant l'état de publication s'ajoutent à sys.

PropriétéTypeDescription
statusstring (enum)État de publication. L'une des valeurs Draft, Changed, Published, Archived.
publishobjectPointeur d'état de publication. Voir les clés ci-dessous.
archiveobjectInformations d'archivage. Présent uniquement pendant l'archivage, sinon la clé est absente.

status prend l'une des 4 valeurs suivantes.

statusSignification
DraftEn cours de rédaction et pas encore publié.
ChangedA déjà été publié, mais comporte depuis des modifications encore non publiées.
PublishedPublié et sans modification non publiée.
ArchivedArchivé.

L'objet publish est un pointeur indiquant l'état de publication. Lorsque la ressource est publiée, il possède toutes les clés suivantes.

CléTypeDescription
versionintegersys.version au moment de la publication.
atstring (date-time)Horodatage de la dernière publication.
firstAtstring (date-time)Horodatage de la première publication. Conservé même après dépublication.
counterintegerNombre cumulé de publications.
byRefer<User>Dernier utilisateur ayant publié.

Après dépublication, version, at et by disparaissent de publish et seuls firstAt et counter subsistent. Si la ressource n'a jamais été publiée, publish vaut { "counter": 0 }.

L'objet archive n'existe que pendant l'archivage et possède la version au moment de l'archivage, l'horodatage d'archivage at et l'utilisateur ayant archivé by. Hors de l'état archivé, la clé archive elle-même est absente.

Ici, sys.version est la version de travail (qui augmente à chaque changement : création, modification, publication, etc.), tandis que publish.version est la dernière version publiée. Les deux peuvent différer.

Voici un exemple du sys d'un Content publié.

{
  "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"
}

L'ordre des transitions d'état du cycle de vie de publication et la réponse de chaque étape sont traités dans Content et Media.

Ressources de configuration (Tag, Locale, Organization, Space, etc.)

Des ressources comme Tag, Locale, Organization, Space, SpaceRole, ServiceUserRole, Webhook ou ServiceLogin n'ont pas de notion de publication. Une fois créées, elles s'appliquent immédiatement ; il n'y a pas d'étape de publication pour les mettre sur le chemin de livraison.

Par conséquent, leur sys ne possède pas status, publish ni archive ; en plus des champs communs, il possède seulement version. version s'incrémente de 1 à chaque modification et se transmet dans l'en-tête X-Weegloo-Version lors d'une requête de changement.

SpaceRole possède en outre isLocked (boolean). Lorsqu'il vaut true, cela signifie qu'il s'agit d'un rôle fourni par défaut par WEEGLOO.

Ressources particulières (ServiceUser et WebHosting)

Certaines ressources possèdent un sys qui ne correspond pas aux deux catégories ci-dessus.

ServiceUser est une ressource créée par l'inscription d'un membre au produit. N'étant pas une ressource qu'une personne crée et modifie depuis le studio de contenu, son sys ne possède pas createdBy, updatedBy ni version. Il possède en revanche le moyen de connexion provider (string) et email (string). Comme version est absent, la modification d'un ServiceUser ne nécessite pas l'en-tête X-Weegloo-Version.

WebHosting est une ressource qui héberge un livrable de déploiement. Elle possède les champs communs et version, auxquels s'ajoute l'état de traitement du déploiement state (enum). Il ne s'agit pas d'un état de publication, mais de l'état d'avancement du traitement du livrable de déploiement téléversé.

stateSignification
PENDINGEn attente de traitement.
PROCESSINGEn cours de traitement.
COMPLETEDTraitement terminé.
FAILEDÉchec du traitement.

Différence entre CMA et CDA : version contre revision

Pour un même Content ou Media, la forme de sys diffère selon l'API qui le renvoie.

Le Content ou Media reçu depuis la CMA (gestion) est une ressource en cours de travail. Il contient donc version, status, publish (et archive s'il est archivé) afin d'indiquer à la fois l'état de travail actuel et l'état de publication.

La CDA (livraison) ne livre que l'instantané publié. La notion d'état de travail n'existant pas, son sys ne contient pas version, status, publish ni archive. Il emploie à la place une seule clé revision (integer), qui pointe vers le numéro de l'instantané publié. revision reçoit, à chaque publication, la version de cet instant.

{
  "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
}

Le modèle de livraison par publication (seul ce qui est publié est livré, instantané de publication, revision) est traité en détail dans Aperçu de la CDA.