[CMIS|http://www.oasis-open.org/committees/cmis] is the upcoming specification from [OASIS|http://www.oasis-open.org/] for content management interoperability. It is currently in draft form but has been submitted to the OASIS instances for ratification. It is expected that CMIS will be released as an OASIS standard, CMIS 1.0, early May 2010.
Outline of this document:
{toc}
h2. Status
Nuxeo supports CMIS through the following modules:
* the [Apache Chemistry|http://incubator.apache.org/chemistry/] library, maintained by Nuxeo and others, which is a general-purpose Java library allowing developers to easily write CMIS clients and servers,
* specific Nuxeo Chemistry backend OSGi bundles, allowing Nuxeo to be used as a CMIS server with the help of Chemistry.
h2. Versions
Currently a subset of CMIS 1.0 is supported by Apache Chemistry and the Nuxeo Chemistry backend. The Nuxeo Chemistry backend is included by default in Nuxeo DM since version 5.3.1.
h2. Online demo
A demo server has been set up with recent snapshots of the Chemistry and Nuxeo Chemistry add-ons.
You can try it here: [http://cmis.demo.nuxeo.org/] (login: Administrator / password: Administrator).
The service document is here: [http://cmis.demo.nuxeo.org/nuxeo/site/cmis/repository] (same credentials).
h2. Downloads
h3. Packaged DM release
The Nuxeo DM version 5.3.1 release now provides CMIS by default. You can get it from here:
[http://nuxeo.com/en/downloads/download-dm-form]
h3. Nuxeo CoreServer
We're now also providing an extra lightweight packaging of a Nuxeo repository that only includes CMIS access to the repository (no web UI at all).
You can grab it here:
[http://www.nuxeo.org/static/releases/nuxeo-5.3.1/nuxeo-coreserver-5.3.1-tomcat_02.zip]
h2. Usage
Start the Nuxeo server and check that there are no errors in the startup logs and that you can normally connect to your server using a browser, at {{[http://localhost:8080/nuxeo]}}.
h3. AtomPub
You can use a CMIS 1.0 AtomPub client and point it at {{[http://localhost:8080/nuxeo/site/cmis/repository]}}. Note that you will need to use HTTP Basic Auth.
If you want to check the AtomPub XML returned using the command line, this can be done using {{curl}} or {{wget}}:
{code}
curl -u Administrator:Administrator http://localhost:8080/nuxeo/site/cmis/repository
{code}
To do a query you can do:
{code}
curl -u Administrator:Administrator "http://localhost:8080/nuxeo/site/cmis/query?q=SELECT+cmis:objectId,+dc:title+FROM+cmis:folder+WHERE+dc:title+=+'Workspaces'"
{code}
You should probably pipe this through {{tidy}} if you want a readable output:
{code}
... | tidy -q -xml -indent -wrap 999
{code}
h3. SOAP
The following SOAP endpoints are available at the moment:
* [http://localhost:8080/nuxeo/webservices/cmis/RepositoryService]
* [http://localhost:8080/nuxeo/webservices/cmis/DiscoveryService]
* [http://localhost:8080/nuxeo/webservices/cmis/ObjectService]
* [http://localhost:8080/nuxeo/webservices/cmis/NavigationService]
Authentication is done using WSS UsernameToken.
Here is a working example of a SOAP message to the DiscoveryService:
{code:xml}
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://docs.oasis-open.org/ns/cmis/messaging/200908/">
<soapenv:Header>
<Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<UsernameToken>
<Username>Administrator</Username>
<Password>Administrator</Password>
</UsernameToken>
</Security>
</soapenv:Header>
<soapenv:Body>
<ns:query>
<ns:repositoryId>default</ns:repositoryId>
<ns:statement>SELECT cmis:objectid, dc:title FROM cmis:Document WHERE dc:title = 'Workspaces'</ns:statement>
<ns:maxItems>20</ns:maxItems>
<ns:skipCount>0</ns:skipCount>
</ns:query>
</soapenv:Body>
</soapenv:Envelope>
{code}
h3. CMIS Clients
Several free clients for CMIS 1.0 are available:
* [http://code.google.com/p/cmisspaces/] is an Adobe AIR client (you will need to change the cmisUrl parameter in the file {{CMISSpacesConfig.xml}} to point it to your Nuxeo server),
* [http://code.google.com/p/cmis-explorer/] is another Adobe AIR client,
* [http://www.ibm.com/developerworks/lotus/library/quickr-cmis/] is a Firefox plugin (see bottom of page for download link).
A command-line shell is also available:
* [CMIS Shell|http://blogs.nuxeo.com/fermigier/2010/01/announcing-cmis-shell-cmissh-commandline-client-cmis.html] ([direct 2MB download|http://www.nuxeo.org/static/cmis/cmissh-20100312.zip] of most recent version)
And of course you can use [Chemistry libraries|https://cwiki.apache.org/confluence/display/CMIS/Index] to produce your own client (java, python). Documentation and sample for using Chemistry libraries can be found:
* on the [Chemistry wiki pages|https://cwiki.apache.org/confluence/display/CMIS/Index],
* in the [ESUP community wiki|http://www.esup-portail.org/pages/viewpage.action;jsessionid=16805BF200E12C46D54E295DDE67A033?pageId=84803718] (french),
* on the sample client we made available for checkout and analysis [here|http://hg.nuxeo.org/sandbox/nuxeo-cmisclient-sample/].
h2. Documentation
You can download the latest CMIS drafts:
* [CMIS 1.0cd07|http://www.oasis-open.org/committees/document.php?document_id=36486] ([direct 6MB download|http://www.oasis-open.org/apps/group_public/download.php/36486/CMIS-cd07.zip])
h2. Source Code
The Nuxeo Chemistry Backend source code is available through Nuxeo's Mercurial server: [http://hg.nuxeo.org/addons/nuxeo-chemistry/].
The Apache Chemistry source code is available via Apache's Subversion server: [http://incubator.apache.org/chemistry/source-repository.html]. For the trunk, you should checkout [http://svn.apache.org/repos/asf/incubator/chemistry/trunk].
h2. Additional Resources
* [CMIS: Overview of a Rapidly Evolving ECM Standard|http://www.slideshare.net/nuxeo/cmis-overview], presentation on SlideShare
Outline of this document:
{toc}
h2. Status
Nuxeo supports CMIS through the following modules:
* the [Apache Chemistry|http://incubator.apache.org/chemistry/] library, maintained by Nuxeo and others, which is a general-purpose Java library allowing developers to easily write CMIS clients and servers,
* specific Nuxeo Chemistry backend OSGi bundles, allowing Nuxeo to be used as a CMIS server with the help of Chemistry.
h2. Versions
Currently a subset of CMIS 1.0 is supported by Apache Chemistry and the Nuxeo Chemistry backend. The Nuxeo Chemistry backend is included by default in Nuxeo DM since version 5.3.1.
h2. Online demo
A demo server has been set up with recent snapshots of the Chemistry and Nuxeo Chemistry add-ons.
You can try it here: [http://cmis.demo.nuxeo.org/] (login: Administrator / password: Administrator).
The service document is here: [http://cmis.demo.nuxeo.org/nuxeo/site/cmis/repository] (same credentials).
h2. Downloads
h3. Packaged DM release
The Nuxeo DM version 5.3.1 release now provides CMIS by default. You can get it from here:
[http://nuxeo.com/en/downloads/download-dm-form]
h3. Nuxeo CoreServer
We're now also providing an extra lightweight packaging of a Nuxeo repository that only includes CMIS access to the repository (no web UI at all).
You can grab it here:
[http://www.nuxeo.org/static/releases/nuxeo-5.3.1/nuxeo-coreserver-5.3.1-tomcat_02.zip]
h2. Usage
Start the Nuxeo server and check that there are no errors in the startup logs and that you can normally connect to your server using a browser, at {{[http://localhost:8080/nuxeo]}}.
h3. AtomPub
You can use a CMIS 1.0 AtomPub client and point it at {{[http://localhost:8080/nuxeo/site/cmis/repository]}}. Note that you will need to use HTTP Basic Auth.
If you want to check the AtomPub XML returned using the command line, this can be done using {{curl}} or {{wget}}:
{code}
curl -u Administrator:Administrator http://localhost:8080/nuxeo/site/cmis/repository
{code}
To do a query you can do:
{code}
curl -u Administrator:Administrator "http://localhost:8080/nuxeo/site/cmis/query?q=SELECT+cmis:objectId,+dc:title+FROM+cmis:folder+WHERE+dc:title+=+'Workspaces'"
{code}
You should probably pipe this through {{tidy}} if you want a readable output:
{code}
... | tidy -q -xml -indent -wrap 999
{code}
h3. SOAP
The following SOAP endpoints are available at the moment:
* [http://localhost:8080/nuxeo/webservices/cmis/RepositoryService]
* [http://localhost:8080/nuxeo/webservices/cmis/DiscoveryService]
* [http://localhost:8080/nuxeo/webservices/cmis/ObjectService]
* [http://localhost:8080/nuxeo/webservices/cmis/NavigationService]
Authentication is done using WSS UsernameToken.
Here is a working example of a SOAP message to the DiscoveryService:
{code:xml}
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://docs.oasis-open.org/ns/cmis/messaging/200908/">
<soapenv:Header>
<Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<UsernameToken>
<Username>Administrator</Username>
<Password>Administrator</Password>
</UsernameToken>
</Security>
</soapenv:Header>
<soapenv:Body>
<ns:query>
<ns:repositoryId>default</ns:repositoryId>
<ns:statement>SELECT cmis:objectid, dc:title FROM cmis:Document WHERE dc:title = 'Workspaces'</ns:statement>
<ns:maxItems>20</ns:maxItems>
<ns:skipCount>0</ns:skipCount>
</ns:query>
</soapenv:Body>
</soapenv:Envelope>
{code}
h3. CMIS Clients
Several free clients for CMIS 1.0 are available:
* [http://code.google.com/p/cmisspaces/] is an Adobe AIR client (you will need to change the cmisUrl parameter in the file {{CMISSpacesConfig.xml}} to point it to your Nuxeo server),
* [http://code.google.com/p/cmis-explorer/] is another Adobe AIR client,
* [http://www.ibm.com/developerworks/lotus/library/quickr-cmis/] is a Firefox plugin (see bottom of page for download link).
A command-line shell is also available:
* [CMIS Shell|http://blogs.nuxeo.com/fermigier/2010/01/announcing-cmis-shell-cmissh-commandline-client-cmis.html] ([direct 2MB download|http://www.nuxeo.org/static/cmis/cmissh-20100312.zip] of most recent version)
And of course you can use [Chemistry libraries|https://cwiki.apache.org/confluence/display/CMIS/Index] to produce your own client (java, python). Documentation and sample for using Chemistry libraries can be found:
* on the [Chemistry wiki pages|https://cwiki.apache.org/confluence/display/CMIS/Index],
* in the [ESUP community wiki|http://www.esup-portail.org/pages/viewpage.action;jsessionid=16805BF200E12C46D54E295DDE67A033?pageId=84803718] (french),
* on the sample client we made available for checkout and analysis [here|http://hg.nuxeo.org/sandbox/nuxeo-cmisclient-sample/].
h2. Documentation
You can download the latest CMIS drafts:
* [CMIS 1.0cd07|http://www.oasis-open.org/committees/document.php?document_id=36486] ([direct 6MB download|http://www.oasis-open.org/apps/group_public/download.php/36486/CMIS-cd07.zip])
h2. Source Code
The Nuxeo Chemistry Backend source code is available through Nuxeo's Mercurial server: [http://hg.nuxeo.org/addons/nuxeo-chemistry/].
The Apache Chemistry source code is available via Apache's Subversion server: [http://incubator.apache.org/chemistry/source-repository.html]. For the trunk, you should checkout [http://svn.apache.org/repos/asf/incubator/chemistry/trunk].
h2. Additional Resources
* [CMIS: Overview of a Rapidly Evolving ECM Standard|http://www.slideshare.net/nuxeo/cmis-overview], presentation on SlideShare