Content

Contents

Content is the core entity in Enonic CMS. Every content item has a specific content type and life cycle.

Introduction

Content is normally managed via Content Studio, but can also be accessed and manipulated programmatically via APIs. Content items have a specific Content Type, which defines its data structure and capabilities. Content items are stored in isolated Content Projects, and can optionally be organized as a hierarchy within each project.

Standard properties

Content items are backed by nodes in an XP repository. The overview below combines editorial data and system metadata to explain their roles. It is a conceptual overview, not a physical storage layout or a response from one API: the Content API, Node API, search index and Guillotine expose different representations. For GraphQL response examples, see Content types.

{
  "_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",  (1)
  "_name": "my-article",  (2)
  "_path": "/my-site/articles/my-article",  (3)
  "_parentPath": "/my-site/articles",
  "_versionKey": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",  (4)
  "_timestamp": "2025-06-15T12:00:00Z",  (5)
  "_sortorder": "modifiedTime DESC",  (6)
  "_manualordervalue": 0,

  "type": "com.example:article",  (7)
  "language": "en",  (8)

  "displayName": "My Article",  (9)
  "data": { ... }, (10)
  "x": [ ... ],  (11)
  "components": [ ... ],  (12)
  "attachments": [ ... ],  (13)

  "creator": "user:system:admin",  (14)
  "createdTime": "2025-01-01T10:00:00Z",
  "modifier": "user:system:editor",
  "modifiedTime": "2025-06-15T12:00:00Z",
  "owner": "user:system:admin",

  "publish": {  (15)
    "from": "2025-01-15T08:00:00Z",
    "to": "2026-01-15T08:00:00Z",
    "first": "2025-01-15T08:00:00Z",
    "time": "2025-06-15T12:00:00Z"
  },

  "_references": [ ... ],  (16)
  "_alltext": "My Article ...",  (17)
  "_score": 1.23,  (18)
  "_permissions": [ ... ]  (19)

}
1 _id — unique content identifier (UUID), generated automatically.
2 _name — content name, used in the URL path.
3 _path / _parentPath — full content path, and parent path.
4 _versionKey — identifier of the current content version.
5 _timestamp — last change to the content version.
6 _sortorder / _manualordervalue — controls default sorting of child items. Defaults to modifiedTime DESC.
7 type — the qualified content type name. Set at creation, cannot be changed.
8 language — locale of the content.
9 displayName — human-readable name, typically used in lists, search results, and as the content title.
10 data — the editorial content, structured according to the content type form definition.
11 x — structured by mixin form definition, grouped by namespaced keys.
12 components — present if the item contains a page with components.
13 attachments — optional array of attachments stored within the content item.
14 creator / createdTime / modifier / modifiedTime / owner — audit trail properties.
15 publish — publishing metadata. from/to define the publish window. first is set on first publish and never changes. time is updated on every publish.
16 _references — aggregation of all outbound references to other content items in the project.
17 _alltext — all fulltext-analyzed fields (TextLine, TextArea, HtmlArea) gathered in one property, used for search.
18 _score — calculated relevance score, only present in search results.
19 _permissions — the Node API’s representation of the underlying node’s access control settings. Guillotine exposes these through permissions, without the underscore.

Contents

Contents