\chapter{Introduction}

The Content Management Interoperability Services (CMIS) standard defines a domain model and Web Services, Restful AtomPub and browser (JSON) bindings that can be used by applications to work with one or more Content Management repositories/systems. 

The CMIS interface is designed to be layered on top of existing Content Management systems and their existing programmatic interfaces. It is not intended to prescribe how specific features should be implemented within those CM systems, nor to exhaustively expose all of the CM system's capabilities through the CMIS interfaces. Rather, it is intended to define a generic/universal set of capabilities provided by a CM system and a set of services for working with those capabilities.


\section{Terminology}

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in \hyperref[intro:rfc2119]{[RFC2119]}.


\section{Normative References}

\begin{longtable}{l p{5in}}
	\phantomsection\label{intro:rfc1867}\textbf{[RFC1867]} & E. Nebel, L. Masinter, Form-based File Upload in HTML, \newline\url{http://www.ietf.org/rfc/rfc1867.txt}, November 1995\\

	\phantomsection\label{intro:rfc2045}\textbf{[RFC2045]} & N. Freed, N. Borenstein, Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies, \newline\url{http://www.ietf.org/rfc/rfc2045.txt}, November 1996\\

	\phantomsection\label{intro:rfc2046}\textbf{[RFC2046]} & N. Freed, N. Borenstein, Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types, \newline\url{http://www.ietf.org/rfc/rfc2046.txt}, November 1996\\

	\phantomsection\label{intro:rfc2119}\textbf{[RFC2119]} & S. Bradner, Key words for use in RFCs to Indicate Requirement Levels, \newline\url{http://www.ietf.org/rfc/rfc2119.txt}, March 1997\\

	\phantomsection\label{intro:rfc2388}\textbf{[RFC2388]} & L. Masinter, Returning Values from Forms: multipart/form-data\newline\url{http://www.ietf.org/rfc/rfc2388.txt}, August 1998\\

	\phantomsection\label{intro:rfc2616}\textbf{[RFC2616]} & R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee, Hypertext Transfer Protocol -- HTTP/1.1,\newline\url{http://www.ietf.org/rfc/rfc2616.txt}, June 1999\\

	\phantomsection\label{intro:rfc2617}\textbf{[RFC2617]} & J. Franks, P. Hallam-Baker, J. Hostetler, S. Lawrence, P. Leach, A. Luotonen, L. Stewart, HTTP Authentication: Basic and Digest Access Authentication,\newline\url{http://www.ietf.org/rfc/rfc2617.txt}, June 1999\\

	\phantomsection\label{intro:rfc2818}\textbf{[RFC2818]} & Rescorla, E., HTTP Over TLS, \newline\url{http://www.ietf.org/rfc/rfc2818.txt}, May 2000\\

	\phantomsection\label{intro:rfc3023}\textbf{[RFC3023]} & M. Murata, S. St.Laurent, D. Kohn, XML Media Types, \newline\url{http://www.ietf.org/rfc/rfc3023.txt}, January 2001\\

	\phantomsection\label{intro:rfc3986}\textbf{[RFC3986]} & T. Berners-Lee, R. Fielding, L. Masinter, Unified Resource Identifier,  \newline\url{http://www.ietf.org/rfc/rfc3986.txt}, January 2005\\

	\phantomsection\label{intro:rfc4287}\textbf{[RFC4287]} & M. Nottingham, R. Sayre, Atom Syndication Format, \newline\url{http://www.ietf.org/rfc/rfc4287.txt}, December 2005\\

	\phantomsection\label{intro:rfc4288}\textbf{[RFC4288]} & N. Freed, J. Klensin, Media Type Specifications and Registration Procedures, \newline\url{http://www.ietf.org/rfc/rfc4288.txt}, December 2005\\
 
 	\phantomsection\label{intro:rfc4627}\textbf{[RFC4627]} & D. Crockford, The application/json Media Type for JavaScript Object Notation (JSON), \newline\url{http://www.ietf.org/rfc/rfc4627.txt}, July 2006\\
   
   	\phantomsection\label{intro:rfc4918}\textbf{[RFC4918]} & L. Dusseault, HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV), \newline\url{http://www.ietf.org/rfc/rfc4918.txt}, June 2007\\

	\phantomsection\label{intro:rfc5023}\textbf{[RFC5023]} & J. Gregorio, B. de hOra, Atom Publishing Protocol,\newline\url{http://www.ietf.org/rfc/rfc5023.txt}, October 2007\\

	\phantomsection\label{intro:rfc6234}\textbf{[RFC6234]} & D. Eastlake 3rd, T. Hansen, US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF),\newline\url{http://www.ietf.org/rfc/rfc6234.txt}, May 2011\\

	\phantomsection\label{intro:rfc6266}\textbf{[RFC6266]} & J. Reschke,  Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP),\newline\url{http://www.ietf.org/rfc/rfc6266.txt}, June 2011\\

	\phantomsection\label{intro:xmlschema}\textbf{[XMLSchema]} & W3C, XML Schema Part 2: Datatypes Second Edition,\newline\url{http://www.w3.org/TR/xmlschema-2/}, 28 October 2004\\

	\phantomsection\label{intro:sameoriginpolicy}\textbf{[SameOriginPolicy]} & W3C, Same Origin Policy,\newline\url{http://www.w3.org/Security/wiki/Same_Origin_Policy},  January 2010\\

	\textbf{[ID-Brown]} & J. Reschke Editor, A. Brown, G. Clemm, Link Relation Types for Simple Version Navigation between Web Resources, \newline\url{http://www.ietf.org/id/draft-brown-versioning-link-relations-08.txt}, 2010\\

	\textbf{[ID-WebLinking]} & M. Nottingham, Web Linking, \newline\url{http://tools.ietf.org/id/draft-nottingham-http-link-header-07.txt}, 2010 \\
\end{longtable}


\section{Non-Normative References}



\section{Examples}

A set of request and response examples is attached to this specification document. These examples are non-normative and their sole purpose is to illustrate the data structures and bindings that are defined in this specification.

Boxes like the following point to appropriate example files throughout this document. There is usually a request file describing the request sent from a CMIS client to a CMIS repository and a matching response file that contains the content returned from the CMIS repository.

\cmisexample{atompub/getChildren}


\newpage
\section{Changes for the CMIS 1.1 specification}

This section provides a very brief description of each major new CMIS 1.1 feature along with links to the sections of this document for complete descriptions.


\subsection{Type Mutability}

Defines the services and protocol binding extensions that allow CMIS clients to create, modify and delete Type Definitions and Property Definitions for a given repository.

Please see section \ref{dm:typemutability}~\nameref{dm:typemutability} for a detailed discussion of this feature.


\subsection{Repository Features}

Defines additional schema for the \cmisservicelink{getRepositoryInfo} service that allows CMIS clients to discover any extensions or additional CMIS based standards supported on each repository.

Please see section \ref{dm:repositoryfeatures}~\nameref{dm:repositoryfeatures} for a detailed discussion of this feature.


\subsection{Secondary object types}

Defines named sets of properties that can be dynamically added and removed from CMIS objects.

Please see section \ref{dm:secondarytypes}~\nameref{dm:secondarytypes} for a detailed discussion of this feature. 


\subsection{Retention and Hold Support}

Defines secondary types for formally representing Retentions and Holds on CMIS objects. These in turn can be used by the repository to protect objects from being deleted or modified. A Retention describes a period of time that a document must not be deleted, while a Hold marks the document as protected as long as the Hold is applied.

Please see section \ref{dm:renditionsandholds}~\nameref{dm:renditionsandholds} for a detailed discussion of these features.


\subsection{Browser Binding} 

A new optional binding specifically designed to support applications running in a web browser or other client without the need for any additional client libraries. Notable among the differences in this binding are the use of JSON (Java Script Object Notation, \hyperref[intro:rfc4627]{[RFC4627]}) instead of XML and the exclusive use of HTTP GET and POST for all operations.

Please see section \ref{browser:browserbinding}~\nameref{browser:browserbinding} for a detailed discussion of this feature. 


\subsection{New cmis:item Object Type}

A new top level data model type that is an extension point for repositories that need to expose any other object types via CMIS that do
not fit the model's definition for document, folder, relationship or policy.

Please see section \ref{dm:itemobject}~\nameref{dm:itemobject} for a detailed discussion of this feature.


\subsection{Service bulkUpdateProperties}

A method for supporting bulk property updates on a set of objects within a single service call.

Please see section \cmisserviceref{bulkUpdateProperties}  for a detailed discussion of this feature.


\subsection{Append to a content stream}

Support for appending to a content stream. Enables clients to break very large uploads of document content into numerous smaller calls. 

Please see section \cmisserviceref{appendContentStream} for a detailed discussion of this feature.


