Base Types

Contendo Server defines several base types that form the foundation for object types in the repository. All custom types must inherit from one of these base types, either directly or indirectly.

Base Type Overview

Type Name Description
Document Represents a document in the repository. May contain content and supports versioning.
Folder Represents a folder that can contain documents and other folders.
Item Represents a simplified object without a content stream.
Relationship Represents a relationship between two objects (e.g., document and folder).

Base Type Properties

Which properties are available for objects created from a type is defined by the type's property definitions. Property definitions are inherited when creating new types. For more details see Property Definitions. Every type has a shared set of common properties defined as well as type specific ones.

Common Properties

Common properties are defined on every base type and therefore will be present on every type.

Display Name ID Type Updatability Description
Object ID cmis:objectId id readonly The unique auto-generated identifier of the object.
Object Type ID cmis:objectTypeId id readonly The type identifier of the object. Always the type the object is created from.
Name cmis:name string readwrite The mandatory. name of the object. Set by the caller. Must be unique inside the containing folder. Used as a path segment when targeting the object by path.
Description cmis:description string readwrite The optional description of the object.
Created By cmis:createdBy string readonly The user who created the object. Automatically set when the object is created. Unchangeable afterwards.
Creation Date cmis:creationDate datetime readonly The date and time when the object was created. Automatically set when the object is created. Unchangeable afterwards.
Last Modified By cmis:lastModifiedBy string readonly The user who last modified the object. Automatically set when the object is created and every time it's updated.
Last Modification Date cmis:lastModificationDate datetime readonly The date and time when the object was last modified. Automatically set when the object is created and every time it's updated.
Change Token cmis:changeToken string readonly A token representing the latest change to the object. Used for optimistic locking if it's enabled.

Document type

The Document type represents a document, which can store content and metadata. Documents are versionable, meaning multiple versions of a document can exist within the repository.

Use cases:

  • when storing content files such as PDFs, images, text documents or any other binary data.
  • when version control is required for tracking changes. Version control is applied to properties as well as the content. As such, the document type is also useful for versioning objects with properties only, without content.

Document-Specific Properties

In addition to common property definitions, the document type has versioning and content stream related properties defined.

Display Name ID Type Updatability Description
Content Stream ID cmis:contentStreamId id readonly The identifier for the associated content stream. Present only if the object has content set.
Content Stream File Name cmis:contentStreamFileName string readonly The filename of the associated content stream. Present only if the object has content set.
Content Stream Length cmis:contentStreamLength integer readonly The length of the associated content stream in bytes. Present only if the object has content set.
Content Stream MIME Type cmis:contentStreamMimeType string readonly The MIME type of the associated content stream. Present only if the object has content set.
Is Latest Version cmis:isLatestVersion boolean readonly Indicates whether this document is the latest version.
Is Major Version cmis:isMajorVersion boolean readonly Indicates whether this document is a major version.
Version Label cmis:versionLabel string readonly The label of the document version.
Version Series ID cmis:versionSeriesId id readonly The unique identifier for the version series of this document.
Is Latest Major Version cmis:isLatestMajorVersion boolean readonly Indicates whether this document is the latest major version.
Is Private Working Copy cmis:isPrivateWorkingCopy boolean readonly Indicates whether this document is a private working copy.
Version Series Checked Out ID cmis:versionSeriesCheckedOutId id readonly The identifier of the version series that is checked out.
Version Series Checked Out By cmis:versionSeriesCheckedOutBy string readonly The user who checked out the version series.
Version Series Checked Out Date cmis:versionSeriesCheckedOutDate datetime readonly The date when the version series was checked out.

For more details about versioning related properties see Versioning

Folder Type

The Folder type represents a folder that can contain other objects, such as documents and other folders. Folders provide hierarchical organization within the repository.

Use cases:

  • When creating structured content storage with hierarchical relationships.
  • When grouping documents or other folders logically.
  • When controlling access at the folder level.

Folder-Specific Properties

In addition to common property definitions, the Folder type has additional properties.

Display Name ID Type Updatability Description
Parent ID cmis:parentId id readonly The ID of the parent folder. The root folder does not have a parent ID.
Allowed Child Object Types cmis:allowedChildObjectTypeIds id[] readonly A list of allowed object types that can be created inside the folder.
Path cmis:path string readonly The absolute path of the folder within the repository.

Item Type

The Item type represents a flexible object that is neither a document nor a folder. Items can be used for various purposes, including representing custom data structures. Objects of the base Item type have limited usefulness - the Item type should be extended to add custom properties.

Use cases:

  • When content isn't needed
  • When versioning isn't needed
  • When simplicity is preferred

The item type has no type specific properties, only common property definitions

Relationship Type

The Relationship type represents an association between two objects.

Use cases:

  • When linking objects logically, such as connecting related documents.
  • When managing dependencies between different objects.

The base Relationship type has no limitations on which object types may be linked. By extending the Relationship limitations may be added by setting allowedSourceTypes and allowedSourceTypes type attributes See Type Attributes

Relationship-Specific Properties

In addition to common property definitions, the Relationship type has the Source ID and Target ID properties used to link two objects.

Display Name ID Type Updatability Description
Source ID cmis:sourceId id oncreate Mandatory The ID of the source object in the relationship.
Target ID cmis:targetId id oncreate Mandatory The ID of the target object in the relationship.