CMIS

From wiki.techunit.org
Jump to: navigation, search

Content Management Interoperability Services (v1.1) specifies naming and behaviour of a CMS's web service. His implementation involves API objects and methods.
This standard is currently administrated by OASIS

Acronyms

  • API : Application programming interface
  • CMIS : Content management interoperability services
  • CMS : Content management services
  • DMS : Documents management services
  • JSON : JavaScript object naming
  • JSONP : JSON with padding (for cross-domain request)

Limitations

CMIS does not include any concept of administration or business processes.

Data accesses

Authorizations

All the data accesses are defined by user's permissions, including 'Read' and 'Write' permissions.

Query

The specified language to query data is SQL

Object model

Repository

Navigation

capabilityGetDescendants:
Get children as objects array with following parameters: Properties, Relationships,Renditions, AllowableActions & PathSegment
filterNotValid If the property or rendition filter input parameter is not valid.
invalidArgument If the specified folder is not a folder.
invalidArgument If the service is invoked with "depth = 0" or "depth < -1".


Inputs
Name Type Descrition

Required

repositoryId

Id

Repository's Id.

folderId

Id

Folder's Id.

Not required

depth

Int

Specific depth of children to get (-1 will get all children)

filter

String

...

includeRelationships

Enum

...

renditionFilter

String

...

includeAllowableActions

Bool

...

includePathSegment

Bool

...

  • capabilityGetFolderTree

Recommandations

Authentication

Basic authentication

  • Used for non-browsers client
  • The web app should return 403 instead of 401 if authentication failed (prevent to display a logon form)

Tokens authentication

  • Used for browsers client
  • The client's web site must be explicitly registered by the user
  • GET and POST request with JSONP, callbacks and a include a token parameter
  • Return 401 if authentication failed
  • The web app provides a JavaScript to manage token on client-side with following methods :
    • cmisServiceURL() => return service url
    • cmisLogin(callback) => Logon and executes the callback, with a bool parameter (TRUE: logon succeed)
    • cmisLogout(callback) => Logout and executes the callback, with a bool parameter (TRUE: logout succeed)
    • cmisNextToken(callback) => The callback has a token parameter, which be empty if there any invalid state (e.g. not authenticated)

Exceptions


Type of exceptionLabelDescriptionRelated HTTP code
ApplicationinvalidArgumentOne or more of the input parameters to the service method is missing or invalid.400
notSupportedThe service method invoked requires an optional capability not supported by the repository.405
objectNotFoundThe service call has specified an object, an object-type or a repository that does not exist.404
permissionDeniedThe caller of the service method does not have sufficient permissions to perform the operation.403
runtimeException not managed by CMIS500
Repositoryconstraint409
contentAlreadyExists409
filterNotValid400
nameConstraintViolation409
storage500
streamNotSupported403
updateConflict409
versioning409