Use Case 41 - Archive an Object

Revisions

View document revision history.

Goal

Archive an object so that it is no longer discoverable, but remains accessible by those that already have a reference to it. Transition to an archived state is not reversible.

Summary

A content owner or manager would like to prevent further discovery of an object though ensure that references to the object (using its identifier) remain valid.

Actors

  • Client, a content manager or owner (must have write permission)
  • Coordinating Node
  • Member Node

Preconditions

  • Client has authenticated to the desired level
  • Client has write permission on the object
  • Object has been synchronized by the Coordinating Nodes
  • The object may be replicated to other Member Nodes

Triggers

Post Conditions

  • The archive property of Types.SystemMetadata is set to “true”
  • System metadata for all replicas of the object is updated
  • Search indices are updated to remove the object
../../_images/41_uc.png

Figure 1. Use case 41 diagram showing actors and components involved in this action.

../../_images/41_seq.png

Figure 2. Sequence diagram for Use Case 41 illustrating the high level sequence of operations associated with archiving an object.

Example

Using curl to archive an object:

# The member node base URL
MNODE="https://my.mn.org/base/url"

# A client certificate with a subject that has write permission on the object
CERT="my_client_certificate.pem"

# The identifier of the object to be archived
PID="object.identifier"

 # The identifier of the object to be archived.
 PID="object.identifier"

 # The provided identifier must be properly URL path encoded
 EPID=URL_Encode(PID)

 # Invoke the archive operation on the identifier
 curl -E ${CERT} -X PUT "$NODE/V1/archive/${EPID}"