Versioning¶
As a user of an Islandora repository, you may be wondering - Is this content being versioned? Could I restore from a previous version if I needed to? Can I see a list of versions for an object? The answer to these questions is two-fold, and largely yes. The architecture of Islandora provides users with a Drupal implementation and a Fedora implementation which are connected in Islandora.
Islandora Software Versioning
Looking for information about versions of Islandora itself? The latest Islandora follows semantic versioning. Previously, Islandora's versions were tied to the version of Drupal and numbered in order of release, such as Islandora 6.x-13.1 or Islandora 7.x-1.13. More information.
Drupal Revisioning¶
Drupal provides a concept of revisions which allows you to track the differences between multiple versions of your content and revert to older ones. The list of revisions for a node, media, or taxonomy term are available at the entity's page, with /revisions appended to the URL. There are Drupal docs on revisioning.
Fedora and Memento¶
Fedora implements the Memento specification for versioning resources, which is a time-based HTTP framework. Fedora provides documentation as well as an API implementation.
Basic Data Flow¶
- A node or media object is created or updated in Drupal.
- When a revisionable entity is updated with a new Drupal revision,
islandora_events_fcreporecords that the Fedora indexing run should also create a version snapshot. - The Fedora indexing worker updates the live Fedora resource directly from Drupal-managed JSON or JSON-LD.
- The same Drupal worker then creates a Fedora memento for that updated resource, so Fedora versioning happens without Alpaca or Milliner.