This project is not covered by Drupal’s security advisory policy.

CPS, or the Content Publishing System, is a radical way of handling revisions for entities. It takes total control over revision management for all supported entities. For CPS-enabled entities, the revision tab is completely replaced and users are not allowed to manually create or move around revisions.

In order to manage revisions, CPS introduces the concept of a site version which will be considered to own all entity revisions. The default site version, known as the *Live* site version, is the only one accessible to non-privileged users, and it is considered to be the publically available state of the site.

Privileged users are not allowed to create, edit or delete content while viewing the Live changeset. Instead, users must create a site version and select it in the site version tool bar (which appears in the IIB bar just below the admin toolbar).

Once a site version is selected, all entity changes made will be stored in revisions that are attached to that changeset. The Live version of the site will not be affected. No matter how many changes are made to a single entity in a site version, only one revision for that site version will be stored.

Once content administrators are satisfied with a site version, administrators have the option of publishing the changeset. In that operation, all revisions in that site version are made live and the changeset is moved into an archived state for later use.

CPS modifies views and entity field queries automatically to try and make sure that the non-live state is presented accurately. Because of the way it works, nothing special needs to be done for preview, as simply activating a site version serves as a preview.

CPS can support nearly any entity that supports revisions. Each unique entity type needs a CPS plugin in order to make sure CPS can properly manage its revisions, and its published status if it supports that. It comes with bundled support for node and file_entity entities (the latter requires the file_entity_revision module).

It has been used extensively with custom entities based on entity module.


  • CPS now requires the drafty module.


(about 5 minutes each)
Part 1
Part 2


  • SPS: Need to see how this compares to SPS.
  • Zariz: Zariz fills a very similar role, but instead of managing revisions, it duplicates entities and uses OG groups to manage branches, with more of an emphasis on merging.

Project information