AIP Versioning (CPP-021)

CPP-IdentifierCPP-021
CPP-LabelAIP Versioning
AuthorBertrand Caron
ContributorsMicky Lindlar, Kris Dekeyser
EvaluatorsMatthew Addis, Maria Benauer, Fen Zhang
Change historyComments
Version 1.0.0 - 2025-08-29Milestone version
Version 1.1.0 - 2025-10-30Migration to XML

1. Description of the CPP

The TDA creates successive versions of the Information Objects on its own or on the producer initiative.

Inputs and outputs

Input(s)
Data
AIP
Optional SIP (if Versioning is triggered by an updating request the Producer)
File(s) or Representation(s) that should replace existing ones or be added to an AIP
Metadata
Metadata that should be added to the Information Package (i.e. Descriptive, Technical, Structural and/or Administrative metadata)
Documentation/guidance
Versioning Policy
AIP packaging policy
Output(s)
Data
New AIP Version
Metadata
Provenance metadata
Storage management information (new version identifier)
Updated Descriptive, Technical and/or Structural Metadata

Definition and scope

Updating AIPs is a common operation in a TDA that involves keeping track of changes to data or Metadata, and preserving previous versions (entirely or partially) in order to go back to different stages of an AIP. Either the producer or the TDA may initiate an update, usually because of technical or contextual changes on the level of File, Representation or Metadata.

Reasons for Versioning include, but are not limited to:

For contextual quality reasons:

  • Removal of data
    • Fault in the initial deposit: An AIP or Representation contains File(s) that were not supposed to be part of the deposit (e.g. system Files not needed for preservation);
    • Content being retracted after the initial deposit: An AIP or Representation contains File(s) that were withdrawn (e.g. due to security reasons, legal restrictions).
  • Update of data
    • Update of File(s): An AIP or Representation contains File(s) that have been replaced (e.g. due to faults in the initial deposit);
    • Enrichment or correction of Descriptive Metadata;
    • Update of administrative Metadata (e.g. due to changes in the access rights or legal information for an AIP).
  • Addition of data
    • Incomplete initial deposit: The initial Information Package was missing Files and some need to be added after its ingest;
    • Enhancement of the initial deposit: After ingest of the Information Package (IP), additional material was issued and needs to be preserved in the IP.

For technical quality reasons:

  • Replacement or Update due to preservation action: A File or Representation has been migrated into a format deemed more suitable for preservation;
  • Replacement or Update due to new packaging: A File or Representation has been re- or unpackaged (e.g. for ZIP, TAR, WARC or disk image containers).

For Metadata quality reasons:

  • Addition or replacement of Technical metadata as a consequence of re-running a characterisation process (i.e. Format Identification, Metadata Extraction or Format Validation) on already ingested AIPs (e.g. due to a new tool being released).

Updates might involve the submission of a new SIP by the producer (e.g. in the case of changes to the initial deposit), but can also just take place on the storage level (e.g. new data being added as a result of a preservation action) without a SIP being involved.

In comparison to other IT domains, updating and creating new versions in digital preservation exhibits peculiarities for the following reasons:

  • On the File level: As data and Metadata are generally stored in physical containers (such as ZIP, TAR, WARC, etc.), unpacking and merging content from the incoming SIP is a complex and risky process;
  • On the storage level: As physical containers corresponding to IPs are usually stored on tape or other cold-storage technologies, updates are generally asynchronous;
  • On the Metadata level: Authenticity and audit trail requirements imply that TDAs record precisely all details about the versioning impacts (e.g. requester, date, reasons, impacted data and Metadata, etc.). This is of particular importance when the versioning is requested by TDA and when the new version replaces the original one.

A TDA must have a versioning policy in place for handling and documenting retracted or updated data. It may decide to partially or totally retain the older versions, based on several factors such as reversibility (e.g. addition of new Files versus replacement of Files), purpose of the update (e.g. correction, enrichment, risk mitigation, etc.), issuer of the updating request (i.e. Producer or TDA), etc.

The implementation of updates to AIP (i.e. data and/or Metadata) requires consideration of a range of factors including a) what is being updated and with what frequency, b) whether that should result in a new AIP version or simply an update to the current version, c) how often the different versions of the AIP need to be accessed, d) how the AIP is stored internally (e.g. using databases, file systems, tape libraries, cloud storage), and e) how versions are serialised and exported from the TDA when they need to be exchanged with third-parties.

Specific implementation approaches are outside of the scope of this CPP.. However, some considerations may include:

  • Are there regular and incremental updates in dynamic collections of content? If so, consider storing the changes (deltas) between AIP versions, rather than complete AIPs, which can reduce both storage requirements and processing overhead.
  • Are there any changes to the AIP content that do not require versioning (e.g. recording the results of fixity checks). If so, consider mechanisms that allow efficient tracking of preservation actions, such as preservation Metadata updates, without duplicating or accessing unchanged content.
  • Is there a need for enhanced traceability and provenance so that it is easy to follow the evolution of AIPs over time, without needing to access or analyse internal Metadata? If so, consider additional indexing and logging mechanisms alongside AIP storage.
  • The ability to access the deltas between AIPs instead of whole versions can support easier integrity checks and rollback capabilities (e.g. enabling recovery from data corruption without full AIP restores).
  • Is there a need to externalise and exchange AIPs with third parties (e.g. repository migration, synchronisation, and replication)? Exchanging AIP versions as deltas can enable more efficient data transfer across distributed or replicated preservation systems.
  • If some or all of AIPs are held using offline media, then minimising data handling can be desirable to reduce the risk of corruption or damage when media is retrieved or read. Isolating and preserving only changed components of AIPs can reduce unnecessary manipulation of stable data, which lowers the risk of inadvertent corruption, loss, or operational error.

Process description

Trigger event(s)

Trigger EventCPP-identifier
Updating request from the Producer in the form of an SIP ingest request
Data must be removed or redacted because of legal constraintsCPP-020 (Rights Management)
Re-run of a characterisation process (e.g. when a new tool or new tool version is made available)CPP-008 (File Format Identification), CPP-009 (Metadata Extraction), CPP-010 (File Format Validation)
New Representations created by the TDA need to be added or should replace the originalCPP-014 (File Migration), CPP-027 (File Repair), CPP-028 (Creation of Derivatives)

Step-by-step description

NoSupplierInputStepsOutputCustomer
 sequence
1Retrieve corresponding AIP Metadata
2Identify the scope of versioningUpdate of Metadata (step 3a)
Addition or removal of Files (step 3b)
Replacement of an AIP (step 3c)
3 alternative - Alternative scenarios based on the scope of the update
3.aAdditional incoming MetadataIf the intended update concerns only Metadata, update the AIP MetadataDigital archive database update
AIP Metadata
3.bSIP (if relevant)If the update involves the addition of Files, request corresponding physical AIP and perform merging with incoming data and MetadataContent of the new AIP version
AIPDigital archive database update
File(s) or Representation(s) that should replace existing File(s) or be added to the AIP
Versioning policy
3.cVersioning policyIf the update is a “full update”, ingest data and Metadata as a complete replacement of the previous AIP versionDigital archive database update
4CPP-005 (Identifier Management)New PID for the new AIP versionRequest new identifier for the new AIP versionAIP version with PID assigned
5Document the date, requester, data or Metadata impacted, and reason for the versioningProvenance metadata
6Content of the new AIP versionRepackage the content of the new AIP according to the TDA’s current packaging standardsNew AIPCPP-029 (Ingest)
AIP packaging policy
7CPP-012 (Risk Mitigation)Versioning policyManage the retention of previous version(s) (i.e. partial, total retainment or disposal)

Rationale(s) and worst case(s)

RationaleImpact of inaction or failure of the process
Digital Objects are dynamic and easy to modify, correct or enrich. Producers generally use this particularity to update them for various reasons. A TDA should be able to manage versioning in order to identify and preserve successive AIP versions.Inability to handle updating requests from the Producer causes duplication because the TDA needs to store subsequent AIP versions as new AIPs. See Caron, B. and Verrier, L. 2024. From Products to Library Collections: Towards a Data-driven Policy for Legal Deposit of Born-digital Sound at the National Library of France. iPRES 2024 Papers - International Conference on Digital Preservation. Available at https://ipres2024.pubpub.org/pub/6m5xlcii/release/1 .
Producers may want to perform complex updating operations involving several changes to different parts of an AIP and combine all changes into a single version. Successive, incomplete changes performed by the Producer may lead to the TDA’s inability to identify stable and complete versions.

2. Dependencies and relationships with other CPPs

Dependencies

CPP-IDCPP-TitleRelationship description
CPP-005Identifier ManagementEvery new AIP version must be assigned a new identifier. The design and versioning of identifiers (e.g. creation of entirely new identifiers, use of version qualifiers etc.) should be defined in a persistent identifier minting policy.
CPP-009Metadata ExtractionSoft dependency (i.e. may require): The documented event, datetime, and Provenance metadata from the Metadata Extraction process may be required by AIP Versioning.
CPP-012Risk MitigationRisk Mitigation acts as a supplier to AIP Versioning, providing AIP Versioning with risk mitigation policy details, as they relate to managing risks in retention of previous version(s) (i.e. partial, total retainment or disposal).
CPP-029IngestVersioning implies several delicate operations, in particular in the case of a partial update, where the incoming SIP should be merged with the existing AIP.

Other relations

RelationCPP-IDCPP-TitleRelationship description
AffectsCPP-006AIP Batch ExportVersioning impacts how the export will have to be run and where and how information about the versions may be found. In addition a policy might determine if only the last or all versions should be exported.

4. Reference implementations

Use cases

BnF Information Package lifecycle Implementation

Institutional background
InstitutionBibliothèque nationale de France, FR
Hyperlink https://bnf.hal.science/hal-01617645v1
Description
Trigger eventThe paper describes several trigger events (update, deletion or simple Metadata edition requests) and different scenarios for versioning.
Problem statementThe paper describes scenarios for partial updates which may have varying impacts on existing AIPs
Proposed solutionFollowing an unsuccessful attempt to implement an algorithm to determine the nature of update operations, based on structural comparisons between incoming SIPs and existing AIPs, BnF adopted a policy that permits only full updates. As a result, producers are required to request the relevant AIP and take responsibility for merging it with the SIP according to their needs.