Upload
truongbao
View
225
Download
3
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