Skip to content

Content modeling

A content model is the set of content types (each a named schema of fields) and taxonomies (category trees for classification) your authors work with. You define both from the admin area; every content item then belongs to exactly one type, and its fields, search behavior, and GraphQL shape follow from that type’s definition. This page covers modeling from the administrator’s seat; for how the model appears to API consumers, see the content model developer page.

Types and taxonomies are defined once, instance-wide, and then assigned to repositories: each repository’s settings list the types its authors may create and the taxonomies they may categorize with (see Repositories). The same type can serve several repositories.

Five core asset types ship with CM Box — File, Folder, Image, Upload, and Video — and cannot be edited.

Type administration requires the admin.types.* permissions, and taxonomy administration the admin.taxonomies.* and admin.categories.* permissions; the Content Architect bundle covers all of them (see Security).

  1. In the admin area, open Types. The list shows every type as a card (or a table), with a repository filter and name search; core types are labeled Core Asset.
  2. Click the add button and fill in the Add New Type dialog:
    • Display Name: — the human name authors see.
    • Name (formatted): — filled in automatically as the API-safe name. It cannot be changed later.
    • Description (optional):
  3. Click Add, then open the new type to define its fields.

The type editor is arranged as panels: Type Properties, the field editor, the Field Configurator, and the Available Type Fields palette.

  • Type Name — the immutable API name (read-only).
  • Display Name and Description — editable.
  • Type Icon — pick the icon shown for items of this type.
  • Type Locked? — see type locking below.
  • Contributor Form OptionsMetadata Only (items of this type have no attached file), Require File (a native file must be attached to save), and Enable External Preview. Metadata Only and Require File are mutually exclusive.
  • Sites OptionsUse as Site Page? marks the type as usable as a page in the site builder.

Drag a field type from Available Type Fields into a field group in the editor (click Add Field Group if none exists yet — groups organize the contributor form). Then select the field and set its options in the Field Configurator:

  • Label — what contributors see; Field Name — the machine name, editable only until the type is first saved with the field; and a Description.
  • Default Value, Required, Hidden, Read Only.
  • Searchable — adds the field to the search index.
  • Type-specific options, for example: List on a text field (accept a list of values), Include Time on a date field, Content References on an item reference (which types may be referenced), dropdown options with Value and Label on select fields, and a JSON Schema form definition on JSON fields.

Click Preview Form to see the contributor form, and Save to apply the changes.

Field type Holds
Text Text up to 2,000 characters
Large Text Unlimited plain text
Rich Text Unlimited rich text (WYSIWYG editor)
Single Select One value from a dropdown
Multi Select Multiple values from a list
True/False A boolean
Number A signed whole number
Decimal A decimal / floating-point value
Date A date, optionally with time
Site Page A link to a CM Box site page
JSON Data Structured JSON, optionally with a schema-driven form
Item Reference References to other content items
Content Query A saved query over content items

The editor blocks saving when field names are missing, duplicated, or collide with the built-in field type names (such as text, large_text, rich_text, boolean, number, datetime, json, item_reference) — you will see “Reserved Field names found, please update.” and the offending name highlighted in red. CM Box also reserves its system field names — id, slug, name, type, status, and others — for every item; do not use them as your own field names. The full reserved list is in the content model reference.

Once a type is in production use, switch Type Locked? on in its properties and save. A locked type shows a padlock in the type list, and CM Box rejects any edit or deletion of the type until it is unlocked — the guard is enforced server-side, not just in the UI. Locking and unlocking are separate permissions (admin.types.lock and admin.types.unlock), so you can allow a wider group to lock types than to unlock them.

Taxonomies are trees of categories that authors apply to items. Like types, they are defined instance-wide and assigned to repositories in repository settings.

  1. In the admin area, open Taxonomies and click Add taxonomy.
  2. Enter a Name and an optional Description, then click Add.
  3. Open the taxonomy to build its category tree.
  • Add categories — type into Add top-level category… (or the add child row under an expanded category) and press Enter. Each category gets an API name, suggested automatically and editable at creation; it is used by content filters and must be unique within the taxonomy. Pasting multiple lines creates categories in bulk.
  • Rename — double-click a category name (or press F2, or use the pencil button) and edit inline.
  • Reorder or re-parent — drag a category by its handle. Trees can nest to any depth.
  • Edit details — select a category to open its drawer and edit its Name, Description, and Custom Properties (its API Name is fixed after creation).
  • Delete — the trash button removes a category and all of its sub-categories after confirmation. Deleting the whole taxonomy from the taxonomy list likewise removes all its categories and cannot be undone.

The Taxonomy properties panel edits the taxonomy’s own Name, Description, and Custom Properties; its Short Name is assigned by the system and read-only.

  • Content model — system fields, reserved names, and how types appear through the API
  • Repositories — assigning types and taxonomies to a repository
  • Security — granting the admin.types.* and taxonomy permissions