Embargo Overhaul: Utilize ResourcePolicy Start and Stop datestamps for
enforcing embargo in DSpace
--------------------------------------------------------------------------------------------------
Key: DS-908
URL: https://jira.duraspace.org/browse/DS-908
Project: DSpace
Issue Type: Improvement
Components: Discovery, Documentation, DSpace API, JSPUI, LNI,
OAI-PMH, REST API (experimental), Service Manager, Solr, SWORD, Unit Testing
Framework, XMLUI
Affects Versions: 1.7.1, 1.7.0, 1.6.2
Reporter: Mark Diggory
Priority: Major
Fix For: 1.8.0
I would like to readdress how the current embargo is implemented in DSpace,
this Issue comes up because we have started working on an Embargo solution that
actually uses the start/end dates of resource policies to enforce the embargo
rather than a cron tab script. This approach is currently under deployment/test
in IDEALS and based on existing embargo work that was completed there by
The new proposed approach would allow for Embargo to be applied at either the
Item level or individual Bitstream levels as a series of ResourcePolicies that
use start/stop datestamps currently on the ResourcePolicy object and does not
require executing a cronjob to adjust the state of the Item Thus the record and
enforcement of embargo is stateless. Being stateless means that the policies
do not change over time, just the resulting decision of the evaluation that
enforces of those policies changes.
The AuthorizationManager already supports the enforcement of timeframes in
ResourcePolicies. I would like to propose that we expand ResourcePolicy in the
following manner:
1.) To be a better DSpace Domain Model citizen and that would include having
name and description fields available to define the reason for a resource
policy being set.
2.) Establishment of a RESTRICT Action that would be enforced by the
AuthorizationManager to allow for "Explicit Definition" of the Embargo Policy
on Annonymous Users.
For example:
Bitstream A --> ResurcePolicy( Action=RESTRICT, Group=Annonymous,
start=20110101, end=20120101, name="Embargo", description="Embargoed as
required by publisher.")
Bitstream A --> ResurcePolicy( Action=READ, Group=UniversityAffiliates,
start=null, end=null, name="Local University Affiliates", description="Local
University Affiliates are Exempt from Embargo Restriction.")
The previous example would enforce Embargo and Access rights "Explicitly" and
"Clearly" in the Policies attached to the Bitstream and/or Item. The
AuthorizationManager may need minor enhancement to address "inheritance" of
ResourcePolicies assigned on parent Items. It may be advisable to use such
inheritance to enforce "DEFAULT_XXX" policies rather than copying them into
place on each and every Bitstream/Bundle and Item created, this will reduce the
"bloat" of ResourcePolicies currently in effect in the existing system.
And important benefit of these changes to ResourcePolicies and the underlying
AuthorizationManager framework are that they can then be used to encode the
explicit technical or administrative metadata sections into the AIP or METS
manifests concerning the Policies that are in effect on the Item and its
contents. Adjustments to the DSpace SIP Profile to capture enforcement of
embargo details by consumers of those tools would be more clearly expressed and
machine automatable than dumping it intot he metadata. Achieving Machine
actionability means that Ingest Packagers and services that rely on them can
define a more concrete business logic to be maintained.
As we evolve the Metadata capabilities to support system/tech/admin/descriptive
metadata sections for all parts of the item, we can consider that the
ResourcePolices will inform the production of metadata about the embargo state
of the Item being exposed in OAI / SWORD /METS packagers and so-on. But for
now, we really need to set a standard that actual Resource Policies be the
mechanism that enforces the access rules/policies within the system and not
some metadata field set in the item metadata description.
Somewhat a concern is how other areas of DSpace treat ResourcePolicies rather
bluntly. Recommend that ResourcePolicies should be managed in central manner
(such as ResourcePolicyService: or "ResorcePolicyManager") such that the manner
in which policies are enforced or allowed to be edited does NOT cause emergent
conflicting behavior across different parts of the system such as those
described within DS-906 and DS-525.
According the DS-525, the issue of embargoed items is documented as a warning
in our Documentation:
https://wiki.duraspace.org/display/DSDOC/System+Administration#SystemAdministration-Movingitems
I consider this documentation insufficient as a solution to the problem of
embargo permissions getting overridden in the mapping. A more appropriate
solution would show to the user the exact changes that would happen to the item
and allow them to decide which policies should be enforce/changed on the item.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.duraspace.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
What Every C/C++ and Fortran developer Should Know!
Read this article and learn how Intel has extended the reach of its
next-generation tools to help Windows* and Linux* C/C++ and Fortran
developers boost performance applications - including clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Dspace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-devel