CMIS stands for "Content Management Interoperability Standard" and, as the name implies, it provides a standardized way for remote systems to access and reuse content stored in dotCMS. In other words, CMIS is a standard for getting content from one CMS to another.
dotCMS Enterprise includes a CMIS Server implementation that will allow dotCMS content to be accessed and reused in systems that implement CMIS such as Liferay, Alfresco, Day Software, EMC, FatWire, IBM, Microsoft, Open Text, Oracle and SAP, to name a few. dotCMS is a CMIS server (not a client), that can serve hosts, folders, content types, content, files, menu links, etc.
To demonstrate what you can do with CMIS, download the "CMIS Explorer" and connect to the demo site. This will allow you to browse and access content stored within the demo system.
1) Download OpenCMIS workbench (CMIS Client)
Extract the package and run the workbench.bat (for windows) or workbench.sh (for linux or Mac).
2) Enter Credentials:
Click on "Load Repositories" button below. Select the dotCMS repository below and click "Login".
3) Browse the dotCMS Content Repository.
After logging in you will be able to browse through dotCMS hosts, content types and folders and view their properties.
If you click on a host, you will find the list of folders under the host, and then pages, file assets, and links.
For file_asset you can double click the files to download. For html pages, you can use the "Content URL" provided in the right pane to view the page in your browser.
These are the CMIS types you can browse or query in the repository:
4) Query the dotCMS Content Repository
To query the content repository click on the button "Query", enter a CMS Query and click on the "Query" button.
Please take note that SQL queries in the browser need upper case lettering in the syntax of the query. For example:
SELECT * FROM cmis:folder
You can also query using conditions like this
SELECT * FROM cmis:document
WHERE IN_FOLDER( 'ddf29c1e-babd-40a8-bfed-920fc9b8c77f')
Note: If you require an specific behaviour for when your page is queried and read through CMIS, you can use the request header "User-agent". The "User-Agent" will be equals to "DOTCMS-CMIS" when CMIS it is accessing your page.
You can access that "User-Agent" header from your velocity page code in this way:
#if ($request.getHeader("User-Agent") == "DOTCMS-CMIS")