...
Table of Contents | ||||
---|---|---|---|---|
|
Warning |
---|
THIS DOCUMENT IS CURRENTLY BEING DRAFTED - 2016--04-29 |
Resources
...
Release Managers
- Benjamin Armintor, Columbia University
- Jared Whiklo, University of Manitoba
Developers
A. Soroka, University of Virginia
Unknown User (acoburn), Amherst College
Aaron Elkiss, University of Michigan
- Andrew Woods, DuraSpace
- Bethany Seeger, Amherst College
- Esme Cowles, Princeton University
- Jared Whiklo, University of Manitoba
- Michael Durbin, University of Virginia
- Nick Ruest, York University
- Osman Din, Yale University
- Scott Prater, University of Wisconsin-Madison
- Yinlin Chen, Virginia Tech ...
Issue Reporters
- A. ..Soroka, University of Virginia
- Unknown User (acoburn), Amherst College
- Andrew Woods, DuraSpace
- Unknown User (daniel-dgi), discoverygarden inc.
- David Chandek-Stark, Duke University
- Elliot Metsger, Johns Hopkins University
- Esme Cowles, Princeton University
- Harsh Ummerpillai, University of Michigan
- Hélder Silva, University of Minho
- Jared Whiklo, University of Manitoba
- Jason Sherman, University of Oklahoma
- Jim Coble, Duke University
- Justin Coyne, Stanford University
- Nick Ruest, York University
- Osman Din, Yale University
- Peter Eichman, University of Maryland
- Scott Prater, University of Wisconsin-Madison
- Steve DiDomenico, Northwestern University
- Stuart Chalk, University of North Florida
- Trey Pendragon, Princeton University
- Yinlin Chen, Virginia Tech
Summary
The Fedora 4.5.0 1 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)
- Enhance preservation capabilities and related documentation
- Improve tooling for external services in the ecosystem around the repository
- Fix bugs
...
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.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.
- Improving the Versioning capability
- Re-establish performance test fixtures
- Improve durability with MySQL and PostgreSQL backends
- Fix bugs
...
Application Programming Interface
One of the technical priorities [53] 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 [64] (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 [5].
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
|
Linked Data Platform alignment
Fedora is a Linked Data Platform (LDP) server implementation. This release resolves a bug that relates to the interactions that an LDP client should expect.
Deprecations: The following endpoints have been marked for future deprecation:
- /fcr:import
- /fcr:export
- /fcr:nodetypes
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
|
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 [7]" upgration utility, the most notable of which is enabling the utility to optionally be configured with authorization credentials.
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
|
Preservation
...
Versioning
This release includes several bug fixes related to versioning [6]:
- Resolves error encountered when GETting a version of a container that itself has versioned child resources
- Resolves error encountered when GETting a version of a container that has a deleted child resource
- Resolves inability to see description of binary resource versions
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
|
Web Access Control
Following the initial implementation of This release furthers the Web Access Control [97] authorization module, this release furthers that effort with several fixes and improvements. Enhancements include:module with several fixes [8], including:
Resolve error when creating versions in the context of WebAC
- Provide WebAC "accessControl" Link header from effective ancestor
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 the wiki [139].
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
|
Modularity
Performance
One of Fedora's perennial goals is "improved performance". With this as a focus, a Performance and Scalability working group [10] has progressed in the creation of repeatable, scripted tests that exercise and meter basic read/write operations. The objective of these tests is to reveal application bottlenecks and to track changes in performance as the reference Fedora implementation evolvesFrom 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 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
|
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
Preservation
From a preservation perspective, this release includes support for alternative backend object stores to the default LevelDB. New configurations now exist for MySQL and PostgreSQL [11].
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
|
Housekeeping and Bugfixes
Numerous refactorings, bugfixes, and clean-up tasks were addressed in this release [12]:
Expand | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
|
...
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/FF/2015+-+2016+Technical+Priorities [64] https://en.wikipedia.org/wiki/Technology_Compatibility_Kit [75] https://githubjira.duraspace.comorg/fcrepo4-extsbrowse/migration-utilsFCREPO-1977?jql=filter%3D13608%20 [86] https://githubjira.duraspace.comorg/dain/leveldbbrowse/FCREPO-1981?jql=filter%3D13612%20 [97] http://www.w3.org/wiki/WebAccessControl [108] https://wikijira.duraspace.org/display/FEDORA45/Principal+Providers#PrincipalProviders-DelegateHeaderPrincipalProvider [11]browse/FCREPO-1885?jql=filter%3D13609%20 [9] https://wiki.duraspace.org/display/FEDORA45FEDORA451/DefaultWebAC+Filesystem-basedAuthorization+PolicyDelegate [1210] https://wiki.duraspace.org/display/FEDORA45FF/HowPerformance+to+Use+WebAC+agentClass+Groupsand+Scalability [1311] https://wiki.duraspace.org/display/FEDORA45FEDORA451/WebACConfiguring+JDBC+Authorization+Delegate Object+Store [12] https://jira.duraspace.org/browse/FCREPO-2007?jql=filter%3D13613%20 |