All Versions
- DSpace 7.x (Current Release)
- DSpace 8.x (Unreleased)
- DSpace 6.x (EOL)
- DSpace 5.x (EOL)
- More Versions...
Contribute to the DSpace Development Fund
The newly established DSpace Development Fund supports the development of new features prioritized by DSpace Governance. For a list of planned features see the fund wiki page.
DSpace 7.0 only supports this when using the older, deprecated REST API v6
In DSpace 7.0, REST Quality Control Reports are currently only supported if you also install the old REST API v6 (deprecated) webapp. Tentative plans to migrate these reports to support the new REST API have begun in https://jira.lyrasis.org/browse/DS-4301.
DSpace REST Report Tool Tutorial
The following repository contains a tutorial demonstrating the usage of the REST Base Report Tools: https://github.com/terrywbrady/restReportTutorial/blob/master/README.md
These reports utilize the DSpace REST API to provide a Collection Manager with
When deploying the DSpace REST API, and institution may choose to make the API publicly accessible or to restrict access to the API.
If these reports are deployed in a protected manner, the reporting tools can be configured to bypass DSpace authorization when reporting on collections and items.
REST Reports - Summary of API Calls
REST Reports - Collection Report Screenshots with Annotated API Calls
REST Reports - Metadata Query Screenshots with Annotated API Calls
This code is part of the DSpace 6 code base.
The REST reports will be enabled by default in DSpace 6. To disable the execution of these reports, remove the following line from dspace-rest/src/main/webapp/WEB-INF/web.xml
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/static/*</url-pattern> </servlet-mapping>
The reports can be configured with anonymous access or the reports can be configured to bypass authorization checks.
Bypassing authorization checks allows collection owners to view the status of all items in the repository without authenticating through the REST API. This option is recommended if you have secured access to your REST API.
If your REST API is publicly accessible, deploy the reports with anonymous access and consider providing an authorization token for access to the report calls.
# Enable/disable authorization for the reporting tools. # By default, the DSpace REST API will only return communities/collections/items that are accessible to a particular user. # If the REST API has been deployed in a protected manner, the reporting tools can be configured to bypass authorization checks. # This will allow all items/collections/communities to be returned to the report user. # Set the rest-reporting-authenticate option to false to bypass authorization rest.reporting-authenticate = false
# Configure the report pages that can be requested by name # Create a map of named reports that are available to a report tool user # Each map entry should be prefixed with rest-report-url # The map key is a name for a report # The map value is a URL to a report page # A list of available reports will be available with the call /rest/reports. # If a request is sent to /rest/reports/[report key], the request will be re-directed to the specified URL # # This project currently contains 2 sample reports. Eventually, additional reports could be introduced through this mechanism. rest.report-url.collections = /rest/static/index.html rest.report-url.item-query = /rest/static/query.html
Enable the appropriate path to use to resolve an item handle restReport.js. (Depends on https://github.com/DSpace/DSpace/pull/1366/files)
this.ROOTPATH = "/handle/"
Override the following function in your report file to enable/disable password AuthN for the REST reports. (Depends on https://github.com/DSpace/DSpace/pull/1369)
This setting can be found in restReport.js
//disable this setting if Password Authentication is not supported this.makeAuthLink = function(){return true;};
# The REST Report Tools may pass a regular expression test to the database. # The following configuration setting will construct a SQL regular expression test appropriate to your database engine rest.regex-clause = text_value ~ ?
# A filter contains a set of tests that will be applied to an item to determine its inclusion in a particular report. # Private items and withdrawn items are frequently excluded from DSpace reports. # Additional filters can be configured to examine other item properties. # For instance, items containing an image bitstream often have different requirements from a item containing a PDF. # The DSpace REST reports come with a variety of filters that examine item properties, item bitstream properties, # and item authorization policies. The existing filters can be used as an example to construct institution specific filters # that will test conformity to a set of institutional policies. # plugin.sequence.org.dspace.rest.filter points to a list of classes that contain available filters. # Each class must implement the ItemFilterList interface. # ItemFilterDefs: Filters that examine simple item and bitstream type properties # ItemFilterDefsMisc: Filters that examine bitstream mime types and dependencies between bitstreams # ItemFilterDefsMeta: Filters that examine metadata properties # ItemFilterDefsPerm: Filters that examine item and bitstream authorization policies plugin.sequence.org.dspace.rest.filter.ItemFilterList = \ org.dspace.rest.filter.ItemFilterDefs,\ org.dspace.rest.filter.ItemFilterDefsMisc,\ org.dspace.rest.filter.ItemFilterDefsPerm # org.dspace.rest.filter.ItemFilterDefsMeta,\
The configuration file contains other settings that will control the behavior of the filters that you have enabled.
Include sortable.js in index.html and query.html
<!-- <script src="sorttable.js"></script> -->
Enable sortable in the report code in restCollReport.js and restQueryReport.js
var CollReport = function() { Report.call(this); //If sortable.js is included, uncomment the following //this.hasSorttable = function(){return true;} var QueryReport = function() { Report.call(this); //If sortable.js is included, uncomment the following //this.hasSorttable = function(){return true;}
var CollReport = function() { Report.call(this); //If sortable.js is included, uncomment the following this.hasSorttable = function(){return true;} var QueryReport = function() { Report.call(this); //If sortable.js is included, uncomment the following this.hasSorttable = function(){return true;}
This feature is not a part of the DSpace 5 code base. Please see the following notes to enable a DSpace 5 compatible version of these reports.
Change the following code into restCollReport.js and restQuery.js to pull the correct id for each DSpace Object
var CollReport = function() { Report.call(this); var QueryReport = function() { Report.call(this);
var CollReport = function() { Report.call(this); this.getId = function(obj) {return obj.id;} var QueryReport = function() { Report.call(this); this.getId = function(obj) {return obj.id;}