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
andallowedSourceTypes
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. |