Files
DSpace/dspace/config/modules/rest.cfg
2023-10-26 16:16:27 +02:00

196 lines
11 KiB
INI

#---------------------------------------------------------------#
#--------------------REST CONFIGURATIONS------------------------#
#---------------------------------------------------------------#
# These configs are used by the RESTv7 module #
#---------------------------------------------------------------#
# Allowed Cross-Origin-Resource-Sharing (CORS) origins (in "Access-Control-Allow-Origin" header).
# Only these origins (client URLs) can successfully authenticate with your REST API.
# Defaults to ${dspace.ui.url} if unspecified (as the UI must have access to the REST API).
# Multiple allowed origin URLs may be comma separated. Wildcard value (*) is NOT SUPPORTED.
# (Requires reboot of servlet container, e.g. Tomcat, to reload)
rest.cors.allowed-origins = ${dspace.ui.url}
# Whether or not to allow credentials (e.g. cookies) sent by the client/browser in CORS
# requests (in "Access-Control-Allow-Credentials" header).
# For DSpace, we default this to "true" to support external authentication via Shibboleth (and similar).
# However, if any of the "allowed-origins" above are *not* trusted, you may choose to set this to "false"
# for additional security. Defaults to "true" if unspecified.
# (Requires reboot of servlet container, e.g. Tomcat, to reload)
rest.cors.allow-credentials = true
# This property determines the max embeddepth for a FullProjection. This is also used by the SpecificLevelProjection
# as a fallback in case the property is defined on the bean
rest.projections.full.max = 2
# This property determines the max embed depth for a SpecificLevelProjection
rest.projection.specificLevel.maxEmbed = 5
# This property determines the max amount of rest operations that can be performed at the same time, for example when
# batch removing bitstreams. The default value is set to 1000.
rest.patch.operations.limit = 1000
# Define which configuration properties are exposed through the http://<dspace.server.url>/api/config/properties/
# rest endpoint. If a rest request is made for a property which exists, but isn't listed here, the server will
# respond that the property wasn't found. This property can be defined multiple times to allow access to multiple
# configuration properties.
# (Requires reboot of servlet container, e.g. Tomcat, to reload)
rest.properties.exposed = plugin.named.org.dspace.curate.CurationTask
rest.properties.exposed = google.analytics.key
rest.properties.exposed = websvc.opensearch.enable
rest.properties.exposed = versioning.item.history.include.submitter
rest.properties.exposed = researcher-profile.entity-type
rest.properties.exposed = orcid.application-client-id
rest.properties.exposed = orcid.authorize-url
rest.properties.exposed = orcid.scope
rest.properties.exposed = orcid.disconnection.allowed-users
rest.properties.exposed = registration.verification.enabled
rest.properties.exposed = websvc.opensearch.svccontext
rest.properties.exposed = submit.type-bind.field
rest.properties.exposed = google.recaptcha.key.site
rest.properties.exposed = google.recaptcha.version
rest.properties.exposed = google.recaptcha.mode
rest.properties.exposed = cc.license.jurisdiction
rest.properties.exposed = identifiers.item-status.register-doi
rest.properties.exposed = authentication-password.domain.valid
rest.properties.exposed = coar-notify.enabled
rest.properties.exposed = ldn.notify.inbox
#---------------------------------------------------------------#
# These configs are used by the deprecated REST (v4-6) module #
#---------------------------------------------------------------#
# record stats in DSpace statistics module
rest.stats = true
#------------------------------------------------------------------#
# REST API Reporting Tools #
#------------------------------------------------------------------#
# TODO: Currently only supported by deprecated REST (v4-6) module
# This project is intended as an optional add-on to DSpace to provide
# Quality Control Reporting for Collection Managers.
#
# See https://github.com/DSpace-Labs/DSpace-REST-Reports
#
# These reports utilize the DSpace REST API to provide a Collection
# Manager with
# - an overview of their collections
# - a tool to query metadata for consistency
#
# 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.
##### 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 = static/reports/index.html
rest.report-url.item-query = static/reports/query.html
#rest.report-url.custom =
##### database specific way to format a regex SQL clause #####
# 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 ~ ?
##### Configure REST Report Filters #####
# 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,\
##### Configuration Settings used by REST Report Filters #####
# Define the set of supported bitstream bundle names for your repository as a comma separated list
rest.report-supp-bundles = ORIGINAL,THUMBNAIL,TEXT,LICENSE
# Define the bitstream mime types that will be interpreted as a "document".
# Generally, a "document" should be expected to be searchable and to have a TEXT bitstream. An institution may expect document types to
# have a thumbnail.
rest.report-mime-document = text/plain,application/pdf,text/html,application/msword,text/xml,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
# Define the standard/preferred bitstream mime types for document items for your repository
# This setting allows the reporting tools to report on "supported" and "unsupported" document types.
rest.report-mime-document-supported = application/pdf
# Define the standard/preferred bitstream mime types for image items for your repository
# This setting allows the reporting tools to report on "supported" and "unsupported" image types.
rest.report-mime-document-image = image/jpeg,image/jp2
# Minimum size for a supported PDF in the repository
# PDF bitstreams smaller than this size will be highlighted in a report.
# PDF files smaller than this size are potentially corrupt.
rest.report-pdf-min-size = 20000
# Maximum size for a typical PDF in the repository
# PDF bitstreams larger than this size will be highlighted in a report.
# PDF files larger than this size may be slow to retrieve.
rest.report-pdf-max-size = 25000000
# Minimum size for a thumbnail - could indicate a corrupted original
# Thumbnail bitstreams smaller than this size will be highlighted in a report.
# Thumbnail files smaller than this size are potentially corrupt.
rest.report-thumbnail-min-size = 400
# Bitstream descriptor to identify generated thumbnails
# The ImageMagick Thumbnail generator tags the thumbnails it has created with a standard description.
# This description identifies thumbnails that can safely be re-generated.
rest.report-gen-thumbnail-desc = Generated Thumbnail
#### Metadata Filtering by Regular Expression #####
# Used by org.dspace.rest.filter.ItemFilterDefsMeta
# This class filters items based on metadata properties.
# These filters are useful for filtering a small set of items. These filters will be inefficient as a query tool.
# regex to detect compound subjects - detect subject terms that should be split into individual terms
rest.report-regex-compound-subject = .*;.*
# regex to detect compound authors - detect author/creator names taht should be split into individual fields
rest.report-regex-compound-author = .* and .*
# regex to detect unbreaking metadata - detect long unbreaking text that may not render properly on a page
# Be sure to escape commas to prevent Apache Config from breaking regex into array values
rest.report-regex-unbreaking = ^.*[^ ]{50\,50}.*$
# regex to detect url in description - detect description fields that contain URL's
rest.report-regex-url = ^.*(http://|https://|mailto:).*$
# regex to identify full text content from the provenance field
# This test has been used to identfiy "full-text" content when harvesting DSpace content by Summon
rest.report-regex-fulltext = ^.*No\\. of bitstreams(.|\\r|\\n|\\r\\n)*\\.(PDF|pdf|DOC|doc|PPT|ppt|DOCX|docx|PPTX|pptx).*$
# regex to identify very long metadata fields that may be slow to render
# Be sure to escape commas to prevent Apache Config from breaking regex into array values
rest.report-regex-long = ^[\\s\\S]{6000\,}$
# regex to identify partial XML entities within a description field (a frequent problem found in ProQuest ETD's)
rest.report-regex-xml-entity = ^.*&#.*$
# regex to identify non ascii characters in metadata
rest.report-regex-non-ascii = ^.*[^\\p{ASCII}].*$
# The maximum number of results to return for 1 request
rest.search.max.results = 100