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:
{
"name": "Rex",
"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
name
if you want to rename your object. For object creation you will be setting the mandatoryname
andobjectTypeId
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=name,creationDate,likes
Full vs. Succinct Properties
Properties can be returned in two formats depending on the succinct
parameter:
- Full Format (
succinct=false
): Provides detailed metadata for each property. - Succinct Format (
succinct=true
or not specified): 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": {
"name": {
"id": "name",
"localName": "name",
"displayName": "Name",
"queryName": "name",
"type": "string",
"cardinality": "single",
"value": "Rex"
},
"creationDate": {
"id": "creationDate",
"localName": "creationDate",
"displayName": "Creation Date",
"queryName": "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 default properties format is succinct. It is useful when performance and bandwidth efficiency are priorities. It returns only the property values, making it ideal for lightweight clients and high-throughput scenarios.
When succinct=true
or not set, 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"
]
}
}