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 as of the 8.x-1.1 release of Islandora.
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 are available at http://localhost:8000/node/1/revisions. There are Drupal docs on revisioning. Media objects are also versioned in Drupal but there is not a UI component for this - see related issue.
Fedora and Memento¶
Basic Data Flow¶
- A node or media object is created or updated in Drupal.
- When an entity is revisionable and it isn't the initial creation, it adds a flag to the event object that gets passed to Alpaca.
- The islandora-indexing-fcrepo module of Alpaca looks for that flag and fires a call to the versioning endpoint of Milliner.
- Milliner uses the Chullo library to create a version in Fedora.