Document Retention

Retentions can be used to ensure that object or document contents are not deleted or changed by setting a proper expiration date.

Introduction

Retentions can be used to customize and ensure documents are not deleted or changed through setting proper times/dates. An object is under retention if it has the property system:rmExpirationDate and if the value of this property lies in the future. The object's life can be extended up to an infinite amount of years for the sake of your archiving needs.

Precondition

There is a secondary object type system:rmDestructionRetention. To use retentions, the schema must contain an object type that uses this secondary object type (Schema Definition). Objects of this type can have retentions.

Properties of system:rmDestructionRetention
	<propertyDateTimeDefinition>
		<id>system:rmExpirationDate</id>
		<propertyType>datetime</propertyType>
		<cardinality>single</cardinality>
		<required>false</required>
	</propertyDateTimeDefinition>
	<propertyDateTimeDefinition>
		<id>system:rmStartOfRetention</id>
		<propertyType>datetime</propertyType>
		<cardinality>single</cardinality>
		<required>false</required>
	</propertyDateTimeDefinition>
	<propertyDateTimeDefinition>
		<id>system:rmDestructionDate</id>
		<propertyType>datetime</propertyType>
		<cardinality>single</cardinality>
		<required>false</required>
	</propertyDateTimeDefinition>

There are two ways to set an object under retention:

  1. the object can first be imported with an expiration date or
  2. an expiration date can be added to a previously existing object using a metadata update.

There are some conditions to the values of these retention properties. If an expiration date is set on an import or update, its value must not lie in the past. Also, if the expiration date is null, the start of retention and the destruction date must be null as well. Lastly, if a destruction date is set, it must either equal to or surpass the expiration date.

Effects of Retentions

If an expiration date has been set, it is not possible to change its content or delete the object before its expiration date. The other two properties have no particular uses provided by the system. Also, if an object is under retention, it is still possible to update its metadata; however, the expiration date cannot be removed or replaced by an earlier date.

An object under retention cannot be deleted or changed even by users that have a write or delete permission; retentions are stronger than write or delete permissions.