Improve tooling for external services in the ecosystem around the repository

Fix bugs

This release is a major release (i.e. 4.4.0 instead of 4.3.1) because there are a two updates that are not strictly speaking backwards compatible with 4.3.0:

HTTP GET requests on descriptions of NonRDF resources (i.e. binaries) now return RDF triples that all have the NonRDF resource as the subject, whereas previously the returned RDF contained a mix of subjects in the response: some subjects were the NonRDF resource, some subjects were the NonRDF description resource

When requesting the fixity service [5] be performed on a binary resource, the "status" of the fixity result has been changed in this release from: "fedora:status" to "premis:hasEventOutcome"

Although not a backwards incompatible update in the 4.4.0 release, it should be noted that the Import and Export services [6] have been deprecated due to their reliance on a JCR serialization versus an RDF-centric approach. These services will be supplanted by externalized machinery that transacts in RDF.

Updates

Community Registry

To minimize the barriers to using Fedora, a free, open source application, there is no required "registration" process. However, it is extremely beneficial to the broader Fedora community if we collectively aggregate some minimal details describing our respective repository installations.

DuraSpace maintains a registry [7] of installations that is populated on a voluntary basis. The 4.4.0 release raises the visibility of that registry, and hopefully the likelihood that repository managers will self-register [8] in it, by adding a link on the Fedora installation splash-page requesting exactly that.

Application Programming Interface

One of the technical priorities [9] of Fedora is to define a well-specified application programming interface (API) against which client applications can be written and future server-side implementations can be created. This Fedora API should be clear and detailed enough such that a corresponding technology compatibility kit [10] (TCK) would be able to indicate if any Fedora implementation fulfills or diverges from the specification. With this in mind, several issues were addressed in this release that clean up Fedora's RESTful interaction and tease out the non-core aspects of the Fedora ontology [11].

Upgrading and Migrating

A primary focus of the ongoing Fedora effort is to facilitate the upgrade/migration of Fedora3 repositories to Fedora4. To this end, a couple of improvements have been incorporated into the "migration-utils [12]" upgration utility.

External Services

One of the exciting capabilities that Fedora enables is the creation of distributed, asynchronous, message-driven services that are external to the core repository but are triggered by repository events. This release further improves the deployment and runtime configurability of the Fedora-related Apache Camel-based [13] features.

Web Access Control

A significant community success that is found in this release is an initial implementation of an Web Access Control [14] authorization module. This authorization module enables the establishment of access policies modeled as linked data. This feature was initiated, planned, designed, and implemented by a group of community stakeholders.