Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Team

Release

...

Managers

...

Developers

Issue Reporters

Summary

The Fedora 4.45.0 release furthers several major objectives:

  • Tighten the definition of the RESTful application programming interface (API)
  • Further align this API to community standards, including the Linked Data Platform [3] (LDP) and Web Access Control [4] (WebAC)Improve tooling for legacy Fedora repositories to Fedora4
  • Enhance preservation capabilities and related documentation
  • Improve tooling for external services live in the ecosystem around the repository
  • Fix bugs

Excerpt
Note

This release is a major release (i.e. 4.

...

5.0 instead of 4.

...

4.1) because there are a

...

several REST API updates that are not

...

backwards compatible with 4.

...

  • 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.

4.0. The theme of these updates is the removal of JCR-related properties that have heretofore been leaked from the Fedora API in the RDF returned to users. Fedora 4 is in no way dependent on JCR, and any mention of JCR found in RESTful responses will be removed. No client code should require updating for this release unless it contains dependencies on JCR-namespaced properties.

See tickets in "Application Programming Interface" below for more details.

Expand
titleRelated JIRA ticket...

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1640

Jira
serverDuraSpace JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1746

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1666

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 spash-page requesting exactly that.

Expand
titleRelated JIRA ticket...

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1593

Application Programming Interface

One of the technical priorities [95] 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 cooresponding corresponding technology compatibility kit [106] (TCK) would be able to indicate if the any Fedora implementation fullfills fulfills or diverges from the specification. With this in mind, several issues where were addressed in this release that clean up Fedora's RESTful interaction and tease out the non-core aspects of the Fedora ontology [11].

Expand
titleRelated JIRA tickets...

jira
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1442
Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryfilter=13417 serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1666
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1746

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1747

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1667

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1447

Linked Data Platform alignment

Fedora is a Linked Data Platform (LDP) server implementation. This release fixes resolves a few bugs bug that relate relates to the interactions that an LDP client should expect.

Expand
titleRelated JIRA tickets...

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1668
 
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryfilter=13418
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1678
 
Jira
serverId
serverDuraSpace JIRA
c815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1701

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 [127]" upgration utility.

...

, the most notable of which is enabling the utility to optionally be configured with authorization credentials.

Expand
titleRelated JIRA Tickets...

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1596
 
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryfilter=13419
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1680
 

...

Preservation

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. In support of Fedora's role in the preservation stack, this release includes investigation and documentation around backup and restore strategies for Fedora's datastore. By default, the database that Fedora currently is configured to use is LevelDB [8]. This release includes documentation and recommendations for performing backup and restore of the internal data Fedora uses in maintaining state.

Expand
titleRelated JIRA tickets...

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1660
 
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryfilter=13423
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1686
 

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1729
 

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1748
 

Web Access Control

Web Access Control

Following the initial implementation of the Web Access Control [9] authorization module, this release furthers that effort with several fixes and improvements.  Enhancements include:

  • WebACLs can now apply to binary resources

  • An HTTP header, 'On-Behalf-Of', can optionally be configured to offer delegated authorization (documentation [10])

  • A WebACL can be placed on the server acting as the final backstop for authorization decisions for resources that have no other effective WebACL (documentation [11])
  • WebACLs can now include references to 'agentClass' Fedora resources as defined in the Web Access Control specification (documentation [12])
  • An HTTP 'Link' header is included in responses to protected resources pointing to the effective WebACL

Additional documentation of Fedora's implementation of Web Access Controls is available on the wiki [13]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.

Expand
titleRelated JIRA tickets...

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1713
 
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryfilter=13421
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1714
 

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1716
 

Modularity

From the perspectives of code maintainability, intelligibility, replaceability, and clearly defined separation of responsibility, significant focus continues towards increasing the modularity of Fedora. In this release, this effort can be seen in the extraction of the 'transform' and 'id minting' modules into their own projects, and the decoupling of project dependencies.

Expand
titleRelated JIRA tickets...

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1718
 
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryfilter=13424
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1722
 

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1723
 

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1724
 

HTML User Interface

This release includes several useful updates to the HTML user interface:

  • Ability to create versions in the HTML UI
  • Auto-populate binary resource's 'educore:filename' property with name of file uploaded in the HTML UI
  • Limit the number of children of any given resource shown in the HTML UI to 100
Expand
titleRelated JIRA tickets...

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1725
 
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryfilter=13425
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1726
 
Jira
serverId
serverDuraSpace JIRA
c815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1735
 

Housekeeping and Bugfixes

Numerous refactorings, bugfixes, and clean-up tasks were addressed in this release:

Expand
titleRelated JIRA tickets...

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1706
 jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues50
jqlQueryfilter=13422
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1712
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1719
 

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1752
 

Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1720
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1359
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1467
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1642
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1651
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1652
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1653
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1654
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1655
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1656
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1657
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1658
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1659
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1661
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1663
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1674
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1675
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1676
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1677
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1681
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1684
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1685
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1687
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1688
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1689
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1693
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1698
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1699
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1700
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1703
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1707
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1717
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1721
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1727
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1728
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1730
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1757
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1759
 
Jira
serverDuraSpace JIRA
serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
keyFCREPO-1294

References

No Format
[1]  https://wiki.duraspace.org/display/FF/Downloads
[2]  http://docs.fcrepo.org/
[3]  http://www.w3.org/TR/ldp/
[4]  http://www.w3.org/wiki/WebAccessControl
[5]  https://wiki.duraspace.org/display/FEDORA44FF/RESTful2015+HTTP-+API2016+-Technical+FixityPriorities
[6]  https://wikien.duraspacewikipedia.org/display/FEDORA44/RESTful+HTTP+API+-+Export+and+Importwiki/Technology_Compatibility_Kit
[7]  httphttps://wwwgithub.duraspace.org/registry/fedoracom/fcrepo4-exts/migration-utils
[8]  httphttps://www.duraspace.org/register-repositorygithub.com/dain/leveldb
[9]  httpshttp://wikiwww.duraspacew3.org/display/FF/2015+-+2016+Technical+Prioritieswiki/WebAccessControl
[10] https://enwiki.wikipediaduraspace.org/wiki/Technology_Compatibility_Kitdisplay/FEDORA45/Principal+Providers#PrincipalProviders-DelegateHeaderPrincipalProvider
[11] httphttps://fedorawiki.duraspace.infoorg/definitionsdisplay/v4/2015/07/24/repositoryFEDORA45/Default+Filesystem-based+Policy
[12] https://github.com/fcrepo4-exts/migration-utilswiki.duraspace.org/display/FEDORA45/How+to+Use+WebAC+agentClass+Groups
[13] httphttps://camelwiki.apacheduraspace.org/
[14] http://www.w3.org/wiki/WebAccessControl
 display/FEDORA45/WebAC+Authorization+Delegate