Bug 1122359

Summary: [RFE][swift]: Support immutability policy on object
Product: Red Hat OpenStack Reporter: RHOS Integration <rhos-integ>
Component: RFEsAssignee: RHOS Maint <rhos-maint>
Status: CLOSED UPSTREAM QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: markmc, yeylon
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/swift/+spec/immutability-middleware
Whiteboard: upstream_milestone_none upstream_definition_new upstream_status_unknown
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description RHOS Integration 2014-07-23 04:07:48 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/swift/+spec/immutability-middleware.

Description:

When being used as the data store repository of enterprise content management software, immutability of record management is a top requirement in order for some record regulatory compliance such as DoD 5015.02-STD. 

This blueprint is to propose the immutability capability on Swift as the storage side support which is similar to any other "WORM" storage system. 

Here are the top requirements for the immutability support:
- If an object in Swift is marked as immutable for a given period of time, within this period neither its data nor meta-data can be modified or deleted by anyone. In addition, a new version of the object cannot be created.
- If the retention period expires, the object can only be deleted, but cannot be modified. Neither its data nor its metadata can be modified.
- Once the retention period is set, it can only be extended whether current retention period expires or not, but cannot be decreased or disabled.
- Container or account cannot be completely deleted if it has one or more objects that are still in retention period.
REST API to configure the retention settings should be provided.

The initial design is to define a middleware with a set of metadata to support the immutability, more details will be covered in low level design document after this is accepted.

Specification URL (additional information):

None