Object Properties

Object properties in Contendo Server represent metadata associated with an object, such as its name, type, and creation details. This includes updatable properties like a (e.g. name, description) as well as readonly, automatic values set by the system (e.g. createdBy, creationDate).

Which properties are available on which object is defined through Contendo Server's Type System. For a list properties available by default see Base Types.

Properties can be set on object creation, updated afterward as well as retrieved through various operations:

Name Description
Create Object Creates a new object with the given properties.
Update Properties Updates the properties on an object without changing the content.
Retrieving Objects Fetches details of a specific object or a set of objects.
Query Retrieves objects matching certain criteria.

Setting Properties

All operations that set properties, be it object creation or update, use the properties JSON object containing key-value pairs:

  • key - property name
  • value - property value

Example:

{
  "cmis:name": "Rex",
  "cmis:description": "A good boy",
  "color": "brown",
  "height": 63,
  "likes": [
    "Treats",
    "Running",
    "Belly rubs"
  ]
}

See Property Definitions for details about how properties are defined. Among other things, property attributes define the rules for setting each property value. Most notable attributes for setting properties:

  • cardinality - specifies whether a single or multiple values should be set.
  • propertyType - specifies the type of the value that must be set (string, integer, boolean…)
  • required - whether the property must be set.
  • updatability - whether the property can be set on object creation or update. Oncreate properties can be set only on creation. Readwrite properties can be set on update as well. Readonly properties can never be set - they are set and updated automatically.

Most often, for updates you will be setting your custom readwrite properties. Possibly the cmis:name if you want to rename your object. For object creation you will be setting the mandatory cmis:name and cmis:objectTypeId properties as well as any you may have on your custom type.

Filter

All operations returning object properties will by default return all the properties present on the object. Properties in the response can be limited via the filter parameter - a comma separated list of wanted ids. It is recommended to always use the filter parameter when it can be known ahead of time which properties are relevant.

filter=cmis:name,cmis:creationDate,likes

Full vs. Succinct Properties

Properties can be returned in two formats depending on the succinct parameter:

  • Full Format (succinct=false or not specified): Provides detailed metadata for each property.
  • Succinct Format (succinct=true): Returns a compact representation, showing only property names and values.

Full Format

Use the full format when you need comprehensive metadata about each property, such as its type, display name, and cardinality. This format is useful for debugging, schema validation, or when working with dynamically structured data.

In full format, each property is represented as a field where the key is the id of the property and the value is a JSON object containing:

  • id: The property’s unique identifier.
  • localName: A local name for the property. Usually the same as id.
  • displayName: A human-readable name.
  • queryName: The name used in queries. Usually the same as id.
  • type: The data type of the property (string, integer, boolean, datetime, decimal, html, id, uri).
  • cardinality: Indicates whether the property is single-valued (single) or multi-valued (multi).
  • value: The property’s value (can be single or multi-valued).

Example - Full Format:

{
  "properties": {
    "cmis:name": {
      "id": "cmis:name",
      "localName": "name",
      "displayName": "Name",
      "queryName": "cmis:name",
      "type": "string",
      "cardinality": "single",
      "value": "Rex"
    },
    "cmis:creationDate": {
      "id": "cmis:creationDate",
      "localName": "creationDate",
      "displayName": "Creation Date",
      "queryName": "cmis:creationDate",
      "type": "datetime",
      "cardinality": "single",
      "value": 1741097555762
    },
    "likes": {
      "id": "likes",
      "localName": "likes",
      "displayName": "Likes",
      "queryName": "likes",
      "type": "string",
      "cardinality": "multi",
      "value": [
        "Bones",
        "Running",
        "Belly Rubs"
      ]
    }
  }
}

Succinct Format

The succinct format is useful when performance and bandwidth efficiency are priorities. It returns only essential property values, making it ideal for lightweight clients and high-throughput scenarios.

When succinct=true, properties are returned in a more compact representation, omitting metadata fields like cardinality and displayName. Only property ids and values are included.

Example - Succinct Format:

{
  "succinctProperties": {
    "name": "Rex",
    "creationDate": 1741097555762,
    "likes": [
      "Treats",
      "Running",
      "Belly Rubs"
    ]
  }
}

Notes

  • If the filter parameter is used, only specified properties will be included in the response.
  • Some operations may return additional metadata along with properties, depending on request parameters.
  • Use Full Format when detailed property metadata is needed.
  • Use Succinct Format when optimizing for performance and response size.