Content Archive, Versioning & Rollback

Archive & Versioning Overview

Archive functionality is a configurable option based on metadata attached to the content type.

There are effectively two levels of archiving. Deleted content can be archived, such that any content that is deleted is archived as a permanent record. Versioned content is archived allowing users to roll back to previous versions of the content.

Deleted Archive

Whenever a content item is deleted, the content item database record is wrapped up and stored within a dmArchive content item. Deleted content is really a safety net that is useful for legal records and emergency data recovery. There is no user interface for easily restoring previously deleted content.

Associated Media

When an item is deleted that has associated media assets, such as files or images, the attached media content needs to be moved outside of the webroot and stored.

Archived media is moved to ./projectname/archive/typename/property/UUID_YYYYMMDD.ext

Where;

  • UUID is the content items objectid
  • YYYYMMDD is the current date time stamp
  • ext is the specific extension for the media in question

In addition, if the content item is being updated with a new version of the attached media asset, then the previous version needs to be moved to the archive storage area.

See Media Management for a more detailed discussion.

Versioning content

Dependencies; content types need to extend the versions.cfc abstract class or equivalent.

The FarCry versioning service effectively kicks in whenever a content item is approved. The approval process takes a copy of the live content item and stores it inside a dmArchive record.

This archiving process should include the movement of associated media to archive, where the associated media differs from the media attached to the draft content item being approved.

Roll Back

Editors can see an archive view for any particular content item, showing a link to the archive records of previously versioned content. Choosing to roll back to a previous version effectively, archives the current live object and copies the archived version to a new live version. That is, the versioning history is retained at all times.

Automating the roll back of assoicated media items is a little more complex and must be performed manually at this time.

(Future enhancement: it would be nice to automate the roll back of media items as well as the primary database record)

Ongoing Maintenance

Administrators need to be aware of the fact that busy sites may build up a large archive storage. Provisions need to be put in place to manage this area in an operational sense that is in line with the organisations record keeping policies.

(Future enhancements: would be nice to have a variety of utilities in the web top to assist in reporting on and managing the archive area)