42
EMC ® Documentum ® Content Management Interoperability Services Version 6.7 Reference Guide EMC Corporation Corporate Headquarters: Hopkinton, MA 01748–9103 1–508–435–1000 www.EMC.com

EMC Documentum ContentManagement InteroperabilityServices · PDF fileEMC®®®Documentum ... cmis:relationship dm_relation(andsubtypes) Aninstanceofdm_relation,orofa ... sourceId parent_id

Embed Size (px)

Citation preview

EMC ®®® Documentum ®®®

Content ManagementInteroperability Services

Version 6.7

Reference Guide

EMC CorporationCorporate Headquarters:

Hopkinton, MA 01748–91031–508–435–1000www.EMC.com

Copyright ©2011-2013 EMC Corporation. All rights reserved.EMC believes the information in this publication is accurate as of its publication date. The information is subject to change withoutnotice.THE INFORMATION IN THIS PUBLICATION IS PROVIDED "AS IS." EMC CORPORATION MAKES NOREPRESENTATIONS ORWARRANTIES OF ANY KINDWITH RESPECT TO THE INFORMATION IN THIS PUBLICATION,AND SPECIFICALLY DISCLAIMS IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULARPURPOSE.Use, copying, and distribution of any EMC software described in this publication requires an applicable software license.For the most up-to-date listing of EMC product names, see EMC Corporation Trademarks on EMC.com. Adobe and Adobe PDFLibrary are trademarks or registered trademarks of Adobe Systems Inc. in the U.S. and other countries. All other trademarks usedherein are the property of their respective owners.

Documentation FeedbackYour opinion matters. We want to hear from you regarding our product documentation. If you have feedback about how we canmake our documentation better or easier to use, please send us your feedback directly at [email protected].

Table of Contents

Chapter 1 Overview ..........................................................................................................7About CMIS .......................................................................................................7

Chapter 2 Capabilities ......................................................................................................9Chapter 3 Bindings.........................................................................................................13

Restful AtomPub binding ..................................................................................13Web services binding........................................................................................15Authentication in the EMC CMIS implementation................................................15Authentication in the web services binding .........................................................15Authentication in the RESTful AtomPub binding .................................................17

Chapter 4 CMIS/Documentum Mapping ..........................................................................19

EMC Documentum Content Management Interoperability Services Version 6.7 Reference Guide 3

Preface

This document is a reference to the EMC Documentum implementation of CMIS (ContentManagement Interoperability Services); specifically its capabilities, its bindings, authentication,and the way in which elements of the CMIS data model map to constructs in the Documentumrepository. This document is not intended to serve as a reference to CMIS itself, nor is it intended toserve as a guide to CMIS development.

Revision historyThe following changes have been made to this document.

Revision date Description

April 2011 Initial release

January 2013 Updated to add information about changeToken property.

Intended audienceThis reference is for application developers, architects, and other technical professionals who requirespecific information about how the CMIS standard is implemented for the EMC Documentumplatform.

EMC Documentum Content Management Interoperability Services Version 6.7 Reference Guide 5

Chapter 1

Overview

This chapter contains the following topics:

• About CMIS

About CMISContent Management Interoperability Services (CMIS) is an OASIS specification that defines adomain model and bindings that enable interoperability among enterprise content management (ECM)systems and applications. EMC Documentum CMIS is an implementation of CMIS 1.0 that workswith the EMC Documentum repository.

The need for CMIS arose from a recognition that many enterprises have production EnterpriseContent Management (ECM) systems from multiple vendors, and that the complexity of making thesesystems interoperable is a burden on IT departments and an impediment to developing enterprise-wideapplications. The principal goal of CMIS is to reduce this burden by providing a standard domainmodel for ECM systems and expose this model through industry-standard web service (SOAP) andRESTful AtomPub bindings. CMIS enables enterprises to develop applications that are interoperablewith various ECM systems and access the content in those system in a uniform manner. CMIS alsoprovides a way for independent software vendors to develop applications that can be marketed for usewith any CMIS-enabled ECM system.

Because the CMIS domain model is generic to ECM systems provided by different vendors, it is not agoal of CMIS to provide access to all the features of any one ECM system. Therefore, the CMIS APIis not appropriate for all types of ECM applications.

For detailed information on CMIS, refer to the CMIS 1.0 specification.

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 7

Chapter 2

Capabilities

This chapter contains the following topics:

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 9

Capabilities

Repository capabilitiesThis section specifies what optional CMIS capabilities are supported for a Documentum repository.These are exposed to consumers by the getRepositoryInfo service or resource. The capabilities maydepend on the enabled features of a particular Documentum repository (such as full-text search).

CMIS capability Description Value for Documentumrepository

capabilityGetDescendants Ability for an application toenumerate the descendants of afolder via the getDescendantsservice.

true

capabilityGetFolderTree Ability for an application toretrieve the folder tree via thegetFolderTree service.

true

capabilityContentStreamUpdatabil-ity

Indicates the support a repositoryhas for updating a document’scontent stream.

enumCapabilityCon-tentStreamUpdates.anytime

A content stream cannot beupdated if the document ischecked out.

capabilityChanges Indicates what level of changes(if any) the repository exposes viathe change log service.

enumCapabilityChanges.none

Documentum does not supportthe change log service.

capabilityRenditions Indicates whether or not therepository exposes renditions ofdocument objects.

enumCapabilityRendition.read

Note that folder renditions are notimplemented.

capabilityMultifiling Ability for an application to file adocument or other file-able objectin more than one folder.

true

capabilityUnfiling Ability for an application to leavea document or other file-ableobject not filed in any folder.

false

Documentum does not supportthis feature.

capabilityVersionSpecificFiling Ability for an application to fileindividual versions (that is, notall versions) of a document in afolder.

false

When moving a document,Documentum will move theCURRENT version.When getting descendants,Documentum will get the latestversion.

capabilityPWCUpdatable Ability for an application to updatethe Private Working Copy (PWC)of a checked-out document.

false

This capability cannotbe implemented becauseDocumentum does not havea PWC feature.

10 EMCDocumentum Content Management Interoperability Services Version 6.7 Reference Guide

Capabilities

CMIS capability Description Value for Documentumrepository

capabilityPWCSearchable Ability of the repository to includethe Private Working Copy (PWC)of checked-out documents inquery search scope; otherwisePWCs are not searchable.

false

This capability cannotbe implemented becauseDocumentum does not havea PWC feature.

capabilityAllVersionsSearchable Ability of the repository to includethe non-latest versions of adocument in query search scope;otherwise, only the latest versionof each document is searchable.

true

capabilityQuery Indicates the types of queries thatthe repository has the ability tofulfill.

With Fulltext: enumCapability-Query.bothcombined

Without Fulltext: enumCapabili-tyQuery.metadataonly

capabilityJoin Indicates the types of JOINkeywords that the repository canfulfill in queries.

enumCapabilityJoin.inneronly

capabilityACL Indicates the level of support forACLs by the repository.

enumCapabilityACL.manage

principalAnonymous A preconfigured anonymous user. If set, this field holds the principalwho is used for anonymousrepository access. This principalcan then be passed to the ACLservices to access the services asan anonymous user. See the EMCDocumentum CMIS DeploymentGuide.

principalAnyone A preconfigured user thathas defined default privilegescommon to all users.

Not supported in 6.7.

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 11

Chapter 3

Bindings

This chapter contains the following topics:

• Restful AtomPub binding• Web services binding• Authentication in the EMC CMIS implementation• Authentication in the web services binding• Authentication in the RESTful AtomPub binding

Restful AtomPub bindingAuthenticationThe Restful AtomPub binding as implemented by EMC Documentum CMIS supports HTTP Basicauthentication (see Authentication in the RESTful AtomPub binding, page 17).

HTTPEMC Documentum CMIS implements optimistic locking using the ETag HTTP header, the value ofwhich maps to the Documentum i_vstamp property.

Cache control is implemented using the HTTP ETag header for the Object services.

For non-content stream resources, HTTP PATCH is supported instead of HTTP PUT.

Content rangesThe Restful AtomPub binding implements content ranges as specified in section 14.16 (Content-Range)of RFC 2616.

URI templatesEMC Documentum CMIS supports all of the URI templates defined by the CMIS 1.0 specification.

Atom feed linksEMC Documentum CMIS serves the first, last, next and previous links of an atom feed whenappropriate.

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 13

Bindings

Updated time of feedsThe updated time on a feed will be computed based on the current time to prevent excessiveperformance cost in attempting to calculate the latest update time in all pages of a feed.

Feed titlesFeeds will use the following titles (where <TypeName> is the display name of a type definition):

• Type Children Collection• Type Descendants Feed• <TypeName> Type Descendants Feed• <TypeName> Type Children Collection• Query Collection• Checked Out Collection• Folder Children Collection• Object Parents Collection• Relationships Collection• Folder Descendants• Folder Tree• All Versions Feed

Overlapping elements and propertiesCertain AtomPub elements duplicate object properties (for example, atom:title and cmis:objectName).When this is the case in a request, the following rules apply:

Atom element Object property Resolution

not specified specified Use property

specified not specified Use element

specified specified Use element

EnclosuresAtomPub enclosures are populated for a contentful document entry.

Invalid Boolean resource parametersWhen an invalid value is specified in a Boolean parameter (such as includeAllowableActions orincludeACL), the value is treated as false.

14 EMCDocumentum Content Management Interoperability Services Version 6.7 Reference Guide

Bindings

Web services bindingAuthenticationThe EMC Documentum CMIS Web Services binding supports WS Security UsernameToken Profile1.1. See Authentication in the web services binding, page 15.

Optimistic lockingEMC Documentum CMIS uses the changeToken input and output to implement optimistic lockingusing the Documentum i_vstamp property.

Content rangesEMC Documentum CMIS supports content ranges as described in section 4.3.2 (Content Ranges)of the CMIS specification.

Authentication in the EMC CMIS implementationAll CMIS services as implemented in a Documentum repository require authentication. Note thatauthentication is also required to list available repositories that are advertised on a connection broker(historically called docbroker); if the user cannot authenticate across all the repositories, only theauthenticated repositories will be returned in the repository list. The supported authentication protocolssupported are binding-specific. Credentials may be in the form of a token.

Authentication in the web services bindingEMC Documentum CMIS supports WS-Securtiy UsernameToken Profile 1.1 as the authenticationprotocol for the web service binding. For a detailed description of the WS-Security UsernameTokenprofile, see http://docs.oasis-open.org/wss/v1.1/wss-v1.1-spec-os-UsernameTokenProfile.pdf.

Client SOAP messages should be secured using a WS-Security UsernameToken Profile header. If theauthentication fails, the CMIS implementation will respond with a WS-Security SOAP fault. Thefollowing examples show a WS authenticated request and response.

WS authenticated requestContent-type: text/xml;charset="utf-8"Soapaction: ""Accept: text/xml, multipart/related, text/html, image/gif, image/jpeg, *;

q=.2, */*; q=.2<?xml version=’1.0’ encoding=’UTF-8’?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/

oasis-200401-wss-wssecurity-secext-1.0.xsd"xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/

oasis-200401-wss-wssecurity-utility-1.0.xsd"

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 15

Bindings

xmlns:xs="http://www.w3.org/2001/XMLSchema"><S:Header><wsse:Security S:mustUnderstand="1"><wsse:UsernameTokenxmlns:ns15="http://schemas.xmlsoap.org/ws/2006/02/

addressingidentity"xmlns:ns14="http://docs.oasis-open.org/ws-sx/

ws-secureconversation/200512"xmlns:ns13="http://www.w3.org/2003/05/soap-envelope"

wsu:Id="XWSSGID-129644497810287092214"><wsse:Username>my-user</wsse:Username><wsse:PasswordType="http://docs.oasis-open.org/wss/2004/01/

oasis-200401-wss-username-token-profile-1.0#PasswordText">my-password</wsse:Password>

</wsse:UsernameToken></wsse:Security></S:Header><S:Body><getRepositoryInfoxmlns="http://docs.oasis-open.org/ns/cmis/messaging/200908/"xmlns:ns2="http://docs.oasis-open.org/ns/cmis/core/200908/"><repositoryId>my-repository</repositoryId></getRepositoryInfo></S:Body></S:Envelope>

WS authenticated responseTransfer-encoding: chunkednull: HTTP/1.1 200 OKContent-type: text/xml;charset=utf-8Server: Apache-Coyote/1.1Date: Mon, 31 Jan 2011 03:36:17 GMT<?xml version=’1.0’ encoding=’UTF-8’?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/

oasis-200401-wss-wssecurity-secext-1.0.xsd"xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/

oasis-200401-wss-wssecurity-utility-1.0.xsd"xmlns:xs="http://www.w3.org/2001/XMLSchema"><S:Header><wsse:Security S:mustUnderstand="1"><wsu:Timestampxmlns:ns15="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity"xmlns:ns14="http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512"xmlns:ns13="http://www.w3.org/2003/05/soap-envelope"

wsu:Id="XWSSGID-1296444877084-1727713687"><wsu:Created>2011-01-31T03:36:18Z</wsu:Created><wsu:Expires>2011-01-31T03:41:18Z</wsu:Expires></wsu:Timestamp></wsse:Security></S:Header><S:Body><getRepositoryInfoResponsexmlns="http://docs.oasis-open.org/ns/cmis/messaging/200908/"xmlns:ns2="http://docs.oasis-open.org/ns/cmis/core/200908/"><repositoryInfo><ns2:repositoryId>my-repository</ns2:repositoryId>

16 EMCDocumentum Content Management Interoperability Services Version 6.7 Reference Guide

Bindings

<ns2:repositoryName>my-repository</ns2:repositoryName><ns2:repositoryDescription>my-repository</ns2:repositoryDescription><ns2:vendorName>EMC</ns2:vendorName><ns2:productName>Documentum</ns2:productName><ns2:productVersion>6.6.0.030</ns2:productVersion><ns2:rootFolderId>root</ns2:rootFolderId>.....<ns2:cmisVersionSupported>1.0</ns2:cmisVersionSupported></repositoryInfo></getRepositoryInfoResponse></S:Body></S:Envelope>

Authentication in the RESTful AtomPub bindingHTTP basic authentication is the supported authentication protocol for the Restful AtomPub bindingin the EMC CMIS implementation. For a detailed description of the HTTP basic authenticationprotocol, refer to http://www.ietf.org/rfc/rfc2617.txt.

As credentials passed in clear text in HTTP can be captured and misused, HTTP basic authenticationshould be used with HTTPS to provide encrypted communication. EMC Documentum CMIS supportsthis option.

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 17

Chapter 4

CMIS/Documentum Mapping

This chapter contains the following topics:

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 19

CMIS/Documentum Mapping

Repository mappingRepository elements mapping

CMIS Documentum Description

repositoryId Unique repository name as

obtained from connection broker

repositoryName Identical to repositoryId

repositoryDescription Description of repository in

connection broker

vendorName "EMC"

productName "Documentum"

productVersion dm_server_config.r_server_ver-

sion

rootFolderId "root" A fictitious root folder for the

repository.

latestChangeLogToken Not set Change log not supported

cmisVersionSupported 1.0

thinClientURI Not set An optional repository-specific

URI pointing to the repository’s

web interface.

capabilities The collection of CMIS capabilities

supported by the repository. See

Repository capabilities, page 10.

aclCapability The collection of ACL-related

capabilities supported by the

repository. See ACL mapping,

page 32.

changesIncomplete Not set Change log not supported

changesOnType Not set Change log not supported

20 EMCDocumentum Content Management Interoperability Services Version 6.7 Reference Guide

CMIS/Documentum Mapping

Folder mappingRoot folder

CMIS has a single root folder per repository and Documentum has multiple root folders (cabinets) perrepository. To address this difference, the implementation exposes a fictitious root folder that containsall root cabinets. The cmis:object of this root folder is root.

Because the root folder is a fictitious object, it is not queryable, and no ACL can be applied to it.Beneath the root folder, only objects of type dm_cabinet can be created. A consumer can check this byexamining the root folder’s cmis:allowedChildObjectTypeIds property.

Folder multi-filing

CMIS specifies that folders only have one parent. Documentum allows folders to be multi-filed inmultiple folders, creating multiple possible paths to a folder. In cases where the parent or path to afolder is in a response, the implementation returns only the “primary” parent folder or path (that is, thefirst of all the possible paths as determined by Content Server). When accessing an object by path theimplementation locates the object using any folder path.

In determining the parent of an object the parent may be reassigned if the folder’s primary parent isnot accessible (that is, if permission = none).

If a folder has multiple parents and the client navigates from root to leaf, the parent link in the childentry will be directed to the parent that traverses to the child entry. Thus, if a folder has multipleparents, its parent link (cmis:parentId) may be different in different branches. This applies to thenavigation service’s getChildren, getDescendants, and getFolderTree operations.

Similarly, if a folder has multiple parents and the client navigates from root to leaf, the path for thefolder (the cmis:path property) will be the traversal path from its dynamic parent. Thus, if a folder hasmultiple parents, its path may be different in different branches.

Path segments

CMIS allows documents to be addressed by path. In some ECM systems the path to a document isunique, but in Documentum a document cannot be uniquely identified by what would normally beconsidered a path, because identically named objects can reside in the same folder.

The Documentum CMIS implementation therefore exposes unique document path segments whenrequested using a combination of the object_name and r_object_id. This is done for every document,not just those that cannot be addressed by path. The path segments take this form:

with name: 0900000b80001234_docnamewithout name: 0900000b80001234_

getFolderTree default depth

The default depth of the getFolderTree resource or service is 2.

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 21

CMIS/Documentum Mapping

Type mappingBase types

CMIS includes a standardization of base types. The CMIS base types are mapped to the localDocumentum types as shown below:

CMIS Type Documentum (local) type Notes

cmis:document dm_document (and subtypes)

cmis:folder dm_folder (and subtypes)

cmis:relationship dm_relation (and subtypes) An instance of dm_relation, or of a

subtype of dm_relation, where its

definition (that is, its relation name)

is an instance of dm_relation_type.

cmis:policy Not supported.

Only these Documentum types and their corresponding subtypes are supported.

When a base type is used in a service input, the CMIS type must be specified. The equivalent localtypes (dm_document, dm_folder, dm_relation) must not be used as service inputs.

Object types are cached. You can configure object type caching characteristics. See the EMCDocumentum CMIS Deployment Guide, “CMIS runtime properties” section.

22 EMCDocumentum Content Management Interoperability Services Version 6.7 Reference Guide

CMIS/Documentum Mapping

Property type mappingCMIS property type Documentum property type

CmisPropertyBoolean DM_BOOLEAN

CmisPropertyDateTime DM_TIME

CmisPropertyDecimal DM_DOUBLE

CmisPropertyHtml DM_STRING

CmisPropertyId DM_ID

CmisPropertyInteger DM_INTEGER

CmisPropertyString DM_STRING

CmisPropertyUri DM_STRING

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 23

CMIS/Documentum Mapping

Property mappingGeneral information

All property names and query names are case-insensitive in service requests. CMIS services respondwith lowercase local (or custom) properties, and lower camel case CMIS properties.

Document properties

CMIS property Documentum property Description

cmis:name object_name

cmis:objectId r_object_id

cmis:baseTypeId cmis:document See Type mapping, page 22.

cmis:objectTypeId r_object_type

cmis:createdBy r_creator_name

cmis:creationDate r_creation_date

cmis:lastModifiedBy r_modifier

cmis:lastModificationDate r_modification_date

cmis:changeToken i_vstamp See Change tokens, page 26

cmis:isImmutable r_immutable_flag

cmis:isLatestVersion i_has_folder

cmis:isMajorVersion none Determined from r_version_label

cmis:isLatestMajorVersion none Computed

cmis:versionLabel r_version_label Numeric label

cmis:versionSeriesId i_chronicle_id

cmis:isVersionSeriesCheckedOut none Determined from r_lock_owner

cmis:versionSeriesCheckedOutBy r_lock_owner

cmis:versionSeriesCheckedOutId none Always Not set

cmis:checkinComment log_entry

cmis:contentStreamLength r_full_content_size

cmis:contentStreamMimeType a_content_type

cmis:contentStreamFileName object_name Read-only

cmis:contentStreamId i_contents_id

24 EMCDocumentum Content Management Interoperability Services Version 6.7 Reference Guide

CMIS/Documentum Mapping

Behavior when property filter is not set

When the property filter is Not set in a request, CMIS will return all CMIS properties (thatis, all properties in the CMIS namespace), with the exception of cmis:isLatestMajorVersion.This property is excluded for performance reasons (that is, it is a computed value that isexpensive to calculate). To get the cmis:isLatestMajorVersion property, the consumer can setfilter=cmis:isLatestMajorVersion or filter=*.

Folder properties

CMIS property Documentum property Description

cmis:name object_name

cmis:objectId r_object_id

cmis:baseTypeId cmis:folder See Type mapping, page 22.

cmis:objectTypeId r_object_type

cmis:createdBy r_creator_name

cmis:creationDate r_creation_date

cmis:lastModifiedBy r_modifier

cmis:lastModificationDate r_modification_date

cmis:changeToken i_vstamp See Change tokens, page 26

cmis:parentId i_folder_id

cmis:path r_folder_path

cmis:allowedChildObjectTypeIds See Type mapping, page 22.

Relationship properties

CMIS property Documentum property Description

cmis:name object_name

cmis:objectId r_object_id

cmis:baseTypeId cmis:relationship See Type mapping, page 22.

cmis:objectTypeId none

cmis:createdBy none

cmis:creationDate none

cmis:lastModifiedBy none

cmis:lastModificationDate none

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 25

CMIS/Documentum Mapping

CMIS property Documentum property Description

cmis:changeToken i_vstamp See Change tokens, page 26

cmis:sourceId parent_id

cmis:targetId child_id

Change tokens

The changeToken property is used for optimistic locking and/or concurrency checking to ensure thatuser updates do not conflict.

For an invocation of any update method on an object (updateProperties, setContentStream,deleteContentStream), we suggest that the client application provide the value of the changeTokenproperty as an input parameter. If the client application sets the changeToken property, the value mustmatch the value that the repository provides for the changeToken property of that object. Otherwise,the repository throws an updateConflictException.

Note that setting the changeToken property is not mandatory. If the client application does not set thisproperty for an update method, the repository does not reject the request.

26 EMCDocumentum Content Management Interoperability Services Version 6.7 Reference Guide

CMIS/Documentum Mapping

Query mappingQueryable types

The types cmis:document and cmis:folder are queryable; the type cmis:relationship is not queryable.

Type Queryable

cmis:document true

cmis:folder true

cmis:relationship false

Note: All properties of an object of type cmis:relationship are non-queryable because cmis:relationshipis a non-queryable type.

Type names in queries

Only type query names can be used in CMIS SQL queries. For the base types, the query name isequivalent to the CMIS name. Local base type names (such as dm_document, dm_folder, dm_relation)cannot be used in queries. (For information on Documentum types, refer to the EMC DocumentumSystem Object Reference.)

All type names and query names are case-insensitive for service inputs (as are (column names, tablenames and reserved keywords). When responding, the CMIS services responds with lowercase typenames.

Properties not allowed in WHERE clause

Some CMIS properties are computed, rather than mapped to a single persistent Documentum property.In some cases, the Documentum CMIS implementation may not support including these computedproperties in the WHERE clause of a query. For example, because cmis:isMajorVersion is computedfrom multiple Documentum properties, the following query is not supported:SELECT * FROM cmis:document WHERE cmis:isMajorVersion=true

These cmis:folder and cmis:document properties cannot be used in the WHERE clause:

• cmis:baseTypeId

• cmis:objectTypeId

• cmis:isMajorVersion

• cmis:isLatestMajorVersion

• cmis:isVersionSeriesCheckedOut

• cmis:versionSeriesCheckedOutId

• cmis:contentStreamMimeType

• cmis:contentStreamFileName

• cmis:allowedChildObjectTypeIds

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 27

CMIS/Documentum Mapping

Search queries

Query of both metadata and full-text content of documents are supported and can be combined in asingle query. The following is an example of a simple search query:SELECT * FROM cmis:document WHERE CONTAINS(’documentum’)

Limitations

Please note the following limitations on EMC Documentum CMIS queries:

• Duplicate column aliases are not supported in CMIS queries, because during the SQL to DQLtranslation and conversion process, ambiguity that limits alias use is introduced. For example,the following query would not be supported because two different columns use the same alias(“id_or_name”):

SELECT cmis:objectId AS id_or_name, cmis:name AS id_or_name FROM cmis:document

• Due to a limitation of the DQL interpreter in Documentum, a table alias cannot be used incombination with an asterisk when querying versions of Content Server prior to 6.5 SP3. Forexample, this query is not supported when executed against Content Server 6.5:

SELECT doc.* FROM cmis:document AS doc

Note: However, provided that specific properties are listed in the query, a table alias can be usedwith any Content Server version.

• International characters in table names or column names are not supported.

28 EMCDocumentum Content Management Interoperability Services Version 6.7 Reference Guide

CMIS/Documentum Mapping

Format mappingFormat and MIME type

CMIS content is categorized by MIME type, whereas Documentum content is mapped to a formatconfigured in repository metadata. Multiple Documentum formats can be mapped to a single MIMEtype, as is typically the case with the MIME type text/plain. To address this, the DocumentumCMIS implementation uses a configured list of default formats for well-known MIME types. Theformat mapping configuration file is located at WEB-INF/classes/mapping.xml (or under APP-INFin EAR file deployments).

If a format cannot be found for a specified MIME type, the content is treated as binary. The MIMEtype for binaries is application/octet-stream.

MIME types are cached. You can configure MIME type caching characteristics. See the EMCDocumentum CMIS Deployment Guide, “CMIS runtime properties”.

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 29

CMIS/Documentum Mapping

Allowable actions mappingMapping CMIS allowable actions to permissions

CMIS allowable actions enable an application to determine which service operations can be performedon a specified object. The following table shows mappings between CMIS allowable actions andpermissions. Other factors may affect the ability to apply a service operation to an object.

For more information on CMIS and Documentum permissions, see ACL mapping, page 32.

CMIS Allowable Action Required permission(s)

canGetDescendents.Folder browse

canGetChildren.Folder browse

canGetParents.Folder browse

canGetFolderParent.Object browse

canCreateDocument.Folder cmis:write

canCreateFolder.Folder cmis:write

canCreateRelationship.Source relate

canCreateRelationship.Target relate

canGetProperties.Object browse

canViewContent.Object cmis:read

canUpdateProperties.Object cmis:write

canMove.Object cmis:write, change_location

canMove.Target cmis:write

canMove.Source cmis:write

canDelete.Object delete

canSetContent.Document cmis:write

canDeleteContent.Document cmis:write

canAddToFolder.Object cmis:write, change_location

canRemoveFromFolder.Folder cmis:write

canCheckout.Document version

canCancelCheckout.Document version

canCheckin.Document version

canGetAllVersions.VersionSeries cmis:read

30 EMCDocumentum Content Management Interoperability Services Version 6.7 Reference Guide

CMIS/Documentum Mapping

CMIS Allowable Action Required permission(s)

canGetObjectRelationships.Object browse

canGetACL.Object browse

canApplyACL.Object change_permit

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 31

CMIS/Documentum Mapping

ACL mappingAbout ACLs

The CMIS 1.0 specification states that an implementation can support a set of CMIS basic permissionsand/or a set of repository-specific permissions. The Documentum implementation supports the CMISbasic permissions and extends the CMIS permissions with a set of repository-specific permissionsthat map directly to Documentum permissions.

In the Documentum repository, when an object is created an ACL is either explicitly assigned to it bythe user or a default ACL (which is configurable) is assigned to it by Documentum. This repositorybehavior is not changed in by the CMIS implementation.

The (fictitious) root folder of a Documentum repository has no ACL.

CMIS basic and Documentum permissions

A CMIS client has the option of getting the ACL of an object with just the CMIS-defined basicpermissions, or with the Documentum permission set. The default behavior of Documentumimplementation for the getAcl service, as well as for services that have an includeACL parameter, is toreturn the CMIS basic permissions.

ACL type mapping

The following table shows the mapping between CMIS ACL-related types and properties toDocumentum types and properties.

CMIS Type/Property Documentum Type/Property Notes

CmisAccessControlListType dm_acl

CmisACLType.exact A value of false indicates that there

are security constraints applied

to this object other than those

designated by the CMIS ACL

object.

CmisAccessControlEntryType An ACL entry. There is no

direct correspondence to the

Documentum type.

CmisAccessControlEntryType

.permission

r_accessor_permit A Documentum basic or extended

permission.

CmisAccessControlEntryType.di-

rect

A value of true indicates that the

ACE is directly assigned to the

object; that is, it is not derived.

CmisAccessControlPrincipalType r_accessor_name A user, group, role, or

Documentum-specific accessor.

32 EMCDocumentum Content Management Interoperability Services Version 6.7 Reference Guide

CMIS/Documentum Mapping

Permissions mapping

Documentum permissions are of two types: basic permissions, which are hierarchical, and extendedpermissions, which are composite. This distinction is applicable for CMIS as well. The cmis:readand cmis:write permissions map to the Documentum read and write permissions, and each of themincludes all permissions below them in the basic permission hierarchy. The cmis:all permissionincludes all basic and extended permissions.

Basic permissions (hierarchical)

CMIS Permission Documentum Permission

none none

browse browse

cmis:read read

relate relate

version version

cmis:write write

delete delete

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 33

CMIS/Documentum Mapping

Extended permissions (composite)

CMIS Permission Documentum Extended Permission

change_location change_location

change_owner change_owner

change_permit change_permit

change_state change_state

change_folder_links change_folder_links

delete_object delete_object

execute_proc execute_proc

ACL representation with only CMIS basic permissions<cmis:acl><cmis:permission>

<cmis:principal><cmis:principalId>dm_world</cmis:principalId>

</cmis:principal><cmis:permission>cmis:read</cmis:permission><cmis:direct>true</cmis:direct>

</cmis:permission><cmis:permission>

<cmis:principal><cmis:principalId>dm_owner</cmis:principalId>

</cmis:principal><cmis:permission>cmis:write</cmis:permission><cmis:direct>true</cmis:direct>

</cmis:permission><cmis:permission>

<cmis:principal><cmis:principalId>docu</cmis:principalId>

</cmis:principal><cmis:permission>cmis:read</cmis:permission><cmis:direct>true</cmis:direct>

</cmis:permission></cmis:acl>

ACL representation with Documentum permissions<cmis:acl><cmis:permission>

<cmis:principal><cmis:principalId>dm_world</cmis:principalId>

</cmis:principal><cmis:permission>cmis:read</cmis:permission><cmis:permission>execute_proc</cmis:permission><cmis:permission>change_location</cmis:permission><cmis:direct>true</cmis:direct>

</cmis:permission><cmis:permission>

34 EMCDocumentum Content Management Interoperability Services Version 6.7 Reference Guide

CMIS/Documentum Mapping

<cmis:principal><cmis:principalId>dm_owner</cmis:principalId>

</cmis:principal><cmis:permission>delete</cmis:permission><cmis:permission>execute_proc</cmis:permission><cmis:permission>change_location</cmis:permission><cmis:direct>true</cmis:direct>

</cmis:permission><cmis:permission>

<cmis:principal><cmis:principalId>docu</cmis:principalId>

</cmis:principal><cmis:permission>version</cmis:permission><cmis:direct>true</cmis:direct>

</cmis:permission></cmis:acl>

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 35

Index

Aa_content_typeCMIS-to-Documentum mapping, 24

ACL, 32See also permission

CMIS and Documentum permissionsexample, 34CMIS permissions only example, 34CMIS-to-Documentum mapping, 32getAcl service, 32includeACL parameter, 32repository support, 11retrieving, 32root folder, 32

aclCapabilitydescription, 20

allowable actionDocumentum permissions, 30

anonymous accessuser, 11

AtomPubauthentication, 13, 17content ranges, 13element vs. object property duplicates , 14enclosures, 14feed links, 13feed titles, 14feed, updated time, 14HTTP, 13invalid Boolean parameter value, 14URI templates, 13

authenticationAtomPub, 13, 17overview, 15Web services binding, 15Web services binding request example, 15Web services binding responseexample, 16

Bbrowse permissionCMIS-to-Documentum mapping, 33Documentum-to-CMIS mapping, 33required for CMIS allowable actions, 30–31

CcacheETag HTTP header, 13MIME types, 29object types, 22

canAddToFolder.ObjectDocumentum permission, 30

canApplyACL.ObjectDocumentum permission, 31

canCancelCheckout.DocumentDocumentum permission, 30

canCheckin.DocumentDocumentum permission, 30

canCheckout.DocumentDocumentum permission, 30

canCreateDocument.FolderDocumentum permission, 30

canCreateFolder.FolderDocumentum permission, 30

canCreateRelationship.SourceDocumentum permission, 30

canCreateRelationship.TargetDocumentum permission, 30

canDelete.ObjectDocumentum permission, 30

canDeleteContent.DocumentDocumentum permission, 30

canGetACL.ObjectDocumentum permission, 31

canGetAllVersions.VersionSeriesDocumentum permission, 30

canGetChildren.FolderDocumentum permission, 30

canGetDescendents.FolderDocumentum permission, 30

canGetFolderParent.ObjectDocumentum permission, 30

canGetObjectRelationships.ObjectDocumentum permission, 31

canGetParents.FolderDocumentum permission, 30

canGetProperties.ObjectDocumentum permission, 30

canMove.ObjectDocumentum permission, 30

canMove.SourceDocumentum permission, 30

canMove.TargetDocumentum permission, 30

canRemoveFromFolder.FolderDocumentum permission, 30

canSetContent.DocumentDocumentum permission, 30

canUpdateProperties.ObjectDocumentum permission, 30

canViewContent.ObjectDocumentum permission, 30

capabilitiesdescription, 20

capabilitysupported in Documentum, 10

capabilityACLdescription, 11

capabilityAllVersionsSearchabledescription, 11

capabilityChangesdescription, 10

capabilityContentStreamUpdatabilitydescription, 10

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 37

Index

capabilityGetDescendantsdescription, 10

capabilityGetFolderTreedescription, 10

capabilityJoindescription, 11

capabilityMultifilingdescription, 10

capabilityPWCSearchabledescription, 11

capabilityPWCUpdatabledescription, 10

capabilityQuerydescription, 11

capabilityRenditionsdescription, 10

capabilityUnfilingdescription, 10

capabilityVersionSpecificFilingdescription, 10

case-sensitivityqueries, 27

change_folder_links permissionCMIS-to-Documentum mapping, 34Documentum-to-CMIS mapping, 34

change_location permissionCMIS-to-Documentum mapping, 34Documentum-to-CMIS mapping, 34required for CMIS allowable actions, 30

change_owner permissionCMIS-to-Documentum mapping, 34Documentum-to-CMIS mapping, 34

change_permit permissionCMIS-to-Documentum mapping, 34Documentum-to-CMIS mapping, 34required for CMIS allowable actions, 31

change_state permissionCMIS-to-Documentum mapping, 34Documentum-to-CMIS mapping, 34

changesIncompletenot supported, 20

changesOnTypenot supported, 20

child_idCMIS-to-Documentum mapping, 26

CMIS1.0 specification, 7introduction, 7

cmis:allowedChildObjectTypeIdsCMIS-to-Documentum mapping, 25WHERE clause, 27

cmis:baseTypeIdCMIS-to-Documentum mapping, 24–25WHERE clause, 27

cmis:changeTokenCMIS-to-Documentum mapping, 24–26

cmis:checkinCommentCMIS-to-Documentum mapping, 24

cmis:contentStreamFileNameCMIS-to-Documentum mapping, 24WHERE clause, 27

cmis:contentStreamIdCMIS-to-Documentum mapping, 24

cmis:contentStreamLengthCMIS-to-Documentum mapping, 24

cmis:contentStreamMimeTypeCMIS-to-Documentum mapping, 24WHERE clause, 27

cmis:createdByCMIS-to-Documentum mapping, 24–25

cmis:creationDateCMIS-to-Documentum mapping, 24–25

cmis:documentCMIS-to-Documentum mapping, 22, 24queries, 27

cmis:folderCMIS-to-Documentum mapping, 22, 25query, 27

cmis:isImmutableCMIS-to-Documentum mapping, 24

cmis:isLatestMajorVersionCMIS-to-Documentum mapping, 24retrieving, 25WHERE clause, 27

cmis:isLatestVersionCMIS-to-Documentum mapping, 24

cmis:isMajorVersionCMIS-to-Documentum mapping, 24WHERE clause, 27

cmis:isVersionSeriesCheckedOutCMIS-to-Documentum mapping, 24WHERE clause, 27

cmis:lastModificationDateCMIS-to-Documentum mapping, 24–25

cmis:lastModifiedByCMIS-to-Documentum mapping, 24–25

cmis:nameCMIS-to-Documentum mapping, 24–25

cmis:objectIdCMIS-to-Documentum mapping, 24–25

cmis:objectTypeIdCMIS-to-Documentum mapping, 24–25WHERE clause, 27

cmis:parentIdCMIS-to-Documentum mapping, 25

cmis:pathCMIS-to-Documentum mapping, 25

cmis:policynot supportedmapping, 22

cmis:read permissionCMIS-to-Documentum mapping, 33required for CMIS allowable actions, 30

cmis:relationshipCMIS-to-Documentum mapping, 22, 25query, 27

cmis:sourceId

38EMC Documentum Content Management Interoperability Services Ver-

sion 6.7 Reference Guide

Index

CMIS-to-Documentum mapping, 26cmis:targetIdCMIS-to-Documentum mapping, 26

cmis:versionLabelCMIS-to-Documentum mapping, 24

cmis:versionSeriesCheckedOutByCMIS-to-Documentum mapping, 24

cmis:versionSeriesCheckedOutIdCMIS-to-Documentum mapping, 24WHERE clause, 27

cmis:versionSeriesIdCMIS-to-Documentum mapping, 24

cmis:write permissionCMIS-to-Documentum mapping, 33required for CMIS allowable actions, 30

CmisAccessControlEntryTypeCMIS-to-Documentum mapping, 32

CmisAccessControlEntryType.directCMIS-to-Documentum mapping, 32

CmisAccessControlEntryType.permissionCMIS-to-Documentum mapping, 32

CmisAccessControlListTypeCMIS-to-Documentum mapping, 32

CmisAccessControlPrincipalTypeCMIS-to-Documentum mapping, 32

CmisACLType.exactCMIS-to-Documentum mapping, 32

CmisPropertyBooleanCMIS-to-Documentum mapping, 23

CmisPropertyDateTimeCMIS-to-Documentum mapping, 23

CmisPropertyDecimalCMIS-to-Documentum mapping, 23

CmisPropertyHtmlCMIS-to-Documentum mapping, 23

CmisPropertyIdCMIS-to-Documentum mapping, 23

CmisPropertyIntegerCMIS-to-Documentum mapping, 23

CmisPropertyStringCMIS-to-Documentum mapping, 23

CmisPropertyUriCMIS-to-Documentum mapping, 23

cmisVersionSupportedvalue, 20

column nameduplicate aliases, 28international characters, 28

Content Management InteroperabilityServices, See CMIScontent rangesAtomPub, 13Web services binding, 15

content streamupdating, 10

CURRENTversion, 10

Ddelete permissionCMIS-to-Documentum mapping, 33Documentum-to-CMIS mapping, 33required for CMIS allowable actions, 30

delete_object permissionCMIS-to-Documentum mapping, 34Documentum-to-CMIS mapping, 34

descendantsenumerating folder, 10

dm_aclDocumentum-to-CMIS mapping, 32

DM_BOOLEANCMIS-to-Documentum mapping, 23

dm_documentCMIS-to-Documentum mapping, 22

DM_DOUBLECMIS-to-Documentum mapping, 23

dm_folderCMIS-to-Documentum mapping, 22

DM_IDCMIS-to-Documentum mapping, 23

DM_INTEGERCMIS-to-Documentum mapping, 23

dm_relationCMIS-to-Documentum mapping, 22

DM_STRINGCMIS-to-Documentum mapping, 23

DM_TIMECMIS-to-Documentum mapping, 23

EenumCapabilityACL.manageDocumentum value, 11

enumCapabilityChanges.noneDocumentum value, 10

enumCapabilityContentStreamUpdates.anytimeDocumentum value, 10

enumCapabilityJoin.inneronlyDocumentum value, 11

enumCapabilityQuery.bothcombinedDocumentum value, 11

enumCapabilityQuery.metadataonlyDocumentum value, 11

enumCapabilityRendition.readDocumentum value, 10

ETagcache control, 13i_vstamp property, 13

execute_proc permissionCMIS-to-Documentum mapping, 34Documentum-to-CMIS mapping, 34

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 39

Index

Ffeedlinks, AtomPub, 13titles, AtomPub, 14updated time, AtomPub, 14

filefolders, add to multiple, 10not added to folder, 10

folderadd file to multiple, 10CMIS-to-Documentum mapping, 21descendants, enumerating, 10multiple parents, 21root, 21tree, retrieving, 10

formatCMIS-to-Documentum mapping, 29

full-text search, See query

GgetAcl servicedefault behavior, 32

getChildrenmultiple parent folders, 21

getDescendantsmultiple parent folders, 21

getFolderTreedefault depth, 21multiple parent folders, 21

HHTTPAtomPub, 13PATCH, 13

Ii_chronicle_idCMIS-to-Documentum mapping, 24

i_contents_idCMIS-to-Documentum mapping, 24

i_folder_idCMIS-to-Documentum mapping, 25

i_has_folderCMIS-to-Documentum mapping, 24

i_vstampCMIS-to-Documentum mapping, 24–26

i_vstamp propertyETag HTTP header, 13optimistic locking, 15

includeACL parameterdefault behavior, 32

international characterqueries, 28

JJOINkeywords, 11

LlatestChangeLogTokennot supported, 20

lockingWeb services binding, 15

log_entryCMIS-to-Documentum mapping, 24

loggingsupport, 10

MMIME typecaching, 29configuration file, 29default, 29mapping to Documentum formats, 29

multi-filingfolder, 21

Nnone permissionCMIS-to-Documentum mapping, 33Documentum-to-CMIS mapping, 33

Oobjectproperty vs. AtomPub elementduplicates, 14

object typecaching, 22

object_nameCMIS-to-Documentum mapping, 24–25in path, 21

Pparent_idCMIS-to-Documentum mapping, 26

PATCHHTTP, 13

pathDocumentum, 21

permission, 30

40EMC Documentum Content Management Interoperability Services Ver-

sion 6.7 Reference Guide

Index

See also ACLbasic, CMIS-to-Documentum mapping, 33CMIS allowable actions, 30CMIS-to-Documentum mapping, 33extended, CMIS-to-Documentummapping, 34overview, 32

principalAnonymousdescription, 11

principalAnyonedescription, 11

Private working copy (PWC)not supported, 10–11

productNamevalue, 20

productVersionDocumentum value, 20

propertyCMIS-to-Documentum mapping, 24CMIS-to-Documentum mapping forcmis:document, 24CMIS-to-Documentum mapping forcmis:folder, 25CMIS-to-Documentum mapping forcmis:relationship, 25CMIS-to-Documentum type mapping, 23filter, 25WHERE clause, 27

Qquerycase-sensitivity, 27duplicate column aliases, 28full-text, 11, 28international characters, 28JOIN keywords, 11limitations, 28mapping, 27metadata, 11, 28table aliases, 28type names, 27types allowed in, 27

Rr_accessor_nameDocumentum-to-CMIS mapping, 32

r_accessor_permitDocumentum-to-CMIS mapping, 32

r_creation_dateCMIS-to-Documentum mapping, 24

r_creation_nameCMIS-to-Documentum mapping, 25

r_creator_nameCMIS-to-Documentum mapping, 24–25

r_folder_pathCMIS-to-Documentum mapping, 25

r_full_content_sizeCMIS-to-Documentum mapping, 24

r_immutable_flagCMIS-to-Documentum mapping, 24

r_lock_ownerCMIS-to-Documentum mapping, 24

r_modification_dateCMIS-to-Documentum mapping, 24–25

r_modifierCMIS-to-Documentum mapping, 24–25

r_object_idCMIS-to-Documentum mapping, 24–25in path, 21

r_object_typeCMIS-to-Documentum mapping, 24–25

r_version_labelCMIS-to-Documentum mapping, 24

read permissionDocumentum-to-CMIS mapping, 33

relate permissionCMIS-to-Documentum mapping, 33Documentum-to-CMIS mapping, 33required for CMIS allowable actions, 30

renditionsupport, 10

repositoryCMIS-to-Documentum mapping, 20

repositoryDescriptiondescription, 20

repositoryIddescription, 20

repositoryNamedescription, 20

root folder, See folderrootFolderIddescription, 20

Ssearchall versions, including, 11

SQL, See query

EMC Documentum Content Management Interoperability Services Version 6.7Reference Guide 41

Index

Ttable namealias, 28international characters, 28

thinClientURIdescription, 20

type, 22See also object type

allowed in queries, 27CMIS-to-Documentum mapping, 22

UURI templatesAtomPub, 13

useranonymous access, 11default privileges, 11

VvendorNamevalue, 20

versionadd single, 10CURRENT, 10search, including all in, 11

version permissionCMIS-to-Documentum mapping, 33Documentum-to-CMIS mapping, 33required for CMIS allowable actions, 30

WWeb services bindingauthenticated request example, 15authenticated response example, 16authentication, 15content ranges, 15locking, 15

write permissionDocumentum-to-CMIS mapping, 33

WS-Security UsernameToken Profilesupport, 15

42EMC Documentum Content Management Interoperability Services Ver-

sion 6.7 Reference Guide