Snapshot Management

Snapshot Endpoints allow the creation and management of snapshots for OSCAL content, providing for version history.

The following methods are available for making and managing point-in-time snapshots of an OSCAL file.

Method Endpoint Description
GET /{model-name}/{identifier}/snapshot Returns a list of every relevant snapshot.
POST /{model-name}/{identifier}/snapshot Creates a new snapshot of the OSCAL content in its current state.
GET /{model-name}/{identifier}/snapshot/{identifier} Retrieves a specific snapshot.
PUT /{model-name}/{identifier}/snapshot/{identifier} Modifies the snapshot description, type, and label.
DELETE /{model-name}/{identifier}/snapshot/{identifier} Removes the identified snapshot.

Snapshot Date/Timestamp

When creating a snapshot via the POST method, the server must assign a snapshot-created property in the OSCAL metadata of the snapshot copy. This must contain a date/time stamp representing when the snapshot was created. The specification deliberately excludes any ability to modify this date/timestamp. The implementation should ensure this property cannot be altered by endpoint calls.

Other Snapshot Properties

The POST and PUT methods include the ability to add and manage a snapshot-description property as well as snapshot-label and snapshot-type properties. All are optional. While no more than one description is allowed, any number of label and type properties are allowed.