All content in Nuxeo is typed and customizable and can roughly be divided in:
- Folder: represent content which does not have a file stream associated but that can contain other content. The Folderish facet represents this behavior, and it is possible to assign it to documents in such a way that those documents have content but also contain other documents.
- Document: represents content with a (zero or more) file stream, that cannot contain other content unless the Folderish facet is assigned to it. Can be versioned, depending on the specific subtype.
All types have a number of properties, representing document metadata, that can be defined when creating a type. All types inherit from an abstract type containing basic metadata like:
- Document name;
- Document title;
- Creation and modification information
Properties are themselves typed and can be complex types, aggregates thereof and complete hierarchies of complex types.
Optionally defaults and constraints can be added on the property value, most notably enumeration.
Types can in general be abstract, or non-instantiable, but any document instance can be decorated with groups of properties similar to the concept of “mixin” or “trait” as in the JCR specification or common functional programming metamodels. These mixins take the name of Schemas or Facets and are for all purposes like abstract types.
At a glance, Nuxeo supports:
- Versionable Document descendant: versions can differ in content and/or metadata;
- Multifiling of sorts: a file cannot have more than one parent folder, but it can be referenced by several “proxies”, children of any number of folders;
- Peer relationships: like the references to other documents in a bibliography.
- Complex properties: properties can have internal structure, they are exposed to CMIS as JSON snippets, and the properties take the String type.
- Multiple streams per document: these are not renditions as in the CMIS standard, but real file streams associated with a document (or a folder, or type bearing the Folderish facet); they can be accessed as renditions with minimal customization (among others: https://www.nuxeo.com/blog/complex-types-multiple-streams-renditions-cmis/)
- A fine grained access control.
The Nuxeo connector is based on the CMIS 1.1 standard as implemented in the Apache Chemistry library. Please refer to the Apache Chemistry official documentation on https://chemistry.apache.org/ and to the CMIS 1.1 specification on https://docs.oasis-open.org/cmis/CMIS/v1.1/CMIS-v1.1.html
The connector depends on the Cmis Xill plugin, providing constructs for the underlying integration features of the Chemistry library.
The Plugin supports extraction and import of all types of content, versioning, ACL, relationships, aspects/facets.
The plugin does support type introspection but not type creation or modification, which can be done using the standard Nuxeo Studio or directly writing XSDs (And is not supported via CMIS).
Workflows are not supported.
For more information refer to the connector documentation included with the connector package, available at the Xill distribution bintray https://bintray.com/xillio/.