User:Emetsger:Embargo

From DSpace Wiki

Jump to: navigation, search

Contents

[edit] About

Content submitted to a repository may be restricted by laws, policies, or contractual obligations that require the submitter not to publish or enable public access to the content for a period of time. This period of time is the embargo period. Once that period has elapsed, the constraints of the embargo are withdrawn.

Our (Johns Hopkins) constraints allow for embargoed item metadata to be indexed and viewed, but representations of the item cannot be retrieved. Different collections, communities, or institutions may have different constraints or policies on what an embargo encompasses.

[edit] DSpace 1.4.x Embargoes

[edit] Code

Code, docs, tests are all under development. Code/docs/tests last updated: May 9 2008

Here are links to the

[edit] Project Structure

The embargo project is composed of three major chunks of code:

1) The embargo API

2) The DSpace embargo API implementation

3) Changes to DSpace itself to use the embargo API

The embargo API and DSpace embargo api impl (currently - May 5 '08) is a Maven project housed at JHU DRCC. Changes to DSpace itself are maintained in a SVN development branch also housed at JHU (a patch comprising these changes will be provided soon).

[edit] Current Status (May 5 '08)

The current goal is to perform a beta release of embargo functionality for DSpace 1.4.2 at the end of May. During the summer we plan to port the changes for 1.4.2 to 1.5.x. The API is pretty stable and feature complete (for a beta release). A couple widgets still need to be written for XMLUI, and some TODO's remain in the policy implementation.

[edit] FAQ

1) What version of DSpace does the work target?

Current work targets 1.4.2, but this summer will be ported to 1.5.x

2) Is JSPUI supported?

There is no support in the JSP UI for embargoes. UI support targets XML UI (Manakin) exclusively. Once the Embargo API is baked, nothing stops contributers from building in Embargo support in the JSP UI.

3) Briefly, what are the features of embargo support?

  • Embargoed items prevent access to their bitstreams: embargoed items will not allow users to download bitstreams or create new bitstreams on the Item.
  • Embargoes are enabled and configured on a per-collection basis.
  • Administrators may choose to allow embargoed item metadata to be discovered (search, browse, syndication/harvesting) or hidden.
  • Items may be embargoed upon submission as requested by the submitter. Authorized administrators may override the requested embargo period.

4) Do embargoes apply to the entire Item or to individual bitstreams?

Embargoes apply to the entire Item. All bitstreams attached to the Item are embargoed.

5) Who is authorized to bypass an embargo and "get at" the underlying bitstreams

The DSpace administrator, the Collection administrator (of the owning collection of the embargoed Item), the original submitter, and users who have BYPASS_EMBARGO permissions for the item. If you don't like the defaults, modify the dspace.cfg property handlers.or.org.dspace.embargo.policy.PolicyHandler and remove the handler you don't like.

6) Can I authorize additional persons to bypass an embargo?

Yes, via the embargo policy subsystem. The easiest way (enabled by AuthorizeManagerPolicyHandle) is to assign the user to a group which has 'BYPASS_EMBARGO' permissions using normal DSpace permission management tools. Alternately you can code your own policy handler (I recommend simply extending AbstractAlwaysFalsePolicyHandler) and wire it up in dspace.cfg by appending your implementation's class name to the config property handlers.or.org.dspace.embargo.policy.PolicyHandler.

7) Is there any fancy tools to support embargo workflows?

No. This implementation is very simplistic. Upon submission, the submitter will get to choose from a list of durations for an embargo period (e.g. 6 months, 1 year, 18 months, 2 years). When the item is accepted into the archive, the embargo "clock" starts ticking. Every time DSpace attempts to retrieve the embargoed item, it checks to see if the embargo is active. If the embargo is active, DSpace returns an embargoed version of the Item. If the embargo has expired, DSpace will return a "normal" Item object.

8) Does this require changes to the database structure of DSpace?

Yes: Four new tables are added. Of the existing tables, a new column is required on the workspaceitem and worflowitem tables.

9) What databases are supported?

Unit tests are executed against HSQL. I've also successfully tested Postgres. I have not tested Oracle, so I would appreciate any help. To test:

Database tests are stabilizing...

If you want to test on embedded HSQL, don't supply a -Dembargodb option. If you want to test on Postgres or Oracle, you'll need to spin up the database first, then load in the schema (loading the schema is a one-time operation: mvn process-test-resources && cat target/test-classes/schema.sql | yourfavoritesqleditor).

I haven't tested on Oracle, so if you want to test on Oracle, you'll need to munge the Maven pom.xml a bit - you'll see the commented out Oracle profile. That profile needs to be uncommented and filled in with correct values.

Personal tools