There are a numbers of ways in which DSpace may be configured and/or customized. This chapter of the documentation will discuss the configuration of the software and will also reference customizations that may be performed in the chapter following.
For ease of use, the Configuration documentation is broken into several parts:
local.cfg
file, dspace.cfg
and other configuration files which use similar conventions.local.cfg
file to store all your locally customized configurationsdspace.cfg
file settings (these settings specify the default configuration for DSpace)Optional or Advanced Configuration Settings - contain other more advanced settings that are optional in the dspace.cfg
configuration file.
The full table of contents follows:
In the following sections you will learn about the different configuration files that you will need to edit so that you may make your DSpace installation work.
DSpace provides a number of textual configuration files which may be used to configure your site based on local needs. These include:
[dspace]/config/dspace.cfg
: The primary configuration file, which contains the main configurations for DSpace.[dspace]/config/modules/*.cfg
: Module configuration files, which are specific to various modules/features within DSpace.[dspace]/config/local.cfg
: A (optional, but highly recommended) localized copy of configurations/settings specific to your DSpace (see The local.cfg Configuration Properties File below)[dspace]/config/
, some of these include:
default.license
: the default deposit license used by DSpace during the submission process (see Submission User Interface documentation)hibernate.cfg.xml
: The Hibernate class configuration for the DSpace database (almost never requires changing)item-submission.xml
: the default item submission process for DSpace (see Submission User Interface documentation)launcher.xml
: The configuration of the DSpace command-line "launcher" ( [dspace]/bin/dspace
, see the DSpace Command Launcher documentation)log4j2.xml
: The default logging settings for DSpace log files (usually placed in [dspace]/log
)submission-forms.xml
: The default deposit forms for DSpace, used by item-submission.xml
(see Submission User Interface documentation)As most of these configurations are detailed in other areas of the DSpace documentation (see links above), this section concentrates primarily on the "*.cfg" configuration files (namely dspace.cfg
and local.cfg
).
We will use the dspace.cfg
as our example for input conventions used throughout the system. These same input conventions apply to all DSpace *.cfg files.
All DSpace *.cfg files use the Apache Commons Configuration properties file syntax. This syntax is very similar to a standard Java properties file, with a few notable enhancements described below.
property.name = property value
Some property defaults are "commented out". That is, they have a "#" preceding them, and the DSpace software ignores the config property. This may cause the feature not to be enabled, or, cause a default property to be used.
The property value may contain references to other configuration properties, in the form ${property.name}
. A property may not refer to itself. Examples:
dspace.dir = /path/to/dspace dspace.name = My DSpace # property.name will be equal to "My DSpace is great!" property.name = ${dspace.name} is great! # property2.name will be equal to "/path/to/dspace/rest/of/path" property2.name = ${dspace.dir}/rest/of/path # However, this will result in an ERROR, as the property cannot reference itself property3.name = ${property3.name} |
Certain characters in *.cfg
files are considered special characters, and must be escaped in any values. The most notable of these special characters include:
This means that if a particular setting needs to use one of these special characters in its value, it must be escaped. Here's a few examples:
# WRONG SETTING # This setting is INVALID. DSpace is expecting your site name to be a single value, # But, this setting would create an array of two values: "DSpace" and "My Institution" dspace.name = DSpace, My Institution # CORRECT SETTING (commas is escaped) # Instead, if the name of your DSpace includes a comma, you need to escape it with "\," dspace.name = DSpace\, My Institution # WRONG SETTING # As the backslash is the escape character, this won't work property.name = \some\path # CORRECT SETTING # If you want a literal backslash, you need to escape it with "\\" # So, the below value will be returned as "\some\path" property.name = \\some\\path |
Additional examples of escaping special characters are provided in the documentation of the Apache Commons Configuration properties file syntax.
Because DSpace supports the Apache Commons Configuration properties file syntax, it is much easier to specify multiple values for a single setting. All you have to do is repeat the same property name multiple times in the same *.cfg
file.
For example:
# The below settings define *two* AuthenticationMethods that will be enabled, LDAP and Password authentication # Notice how the same property name is simply repeated, and passed different values. plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.LDAPAuthentication plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.PasswordAuthentication # Alternatively, you can also define them as a comma-separated list # (In this scenario, you would NOT escape the comma, as you want them to be considered multiple values) # So, this single line is exactly equavalent to the settings above: plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.LDAPAuthentication, org.dspace.authenticate.PasswordAuthentication |
Please be aware that this ONLY works if you are reusing the exact same configuration in the same configuration file. This causes the values to be "additive" (i.e they are appended to the same list).
However, as you'll see below, the local.cfg
file always overrides settings elsewhere. So, if the above "AuthenticationMethod" plugin was specified in both your authentication.cfg
and your local.cfg
, the value(s) in your local.cfg
would override the defaults in your authentication.cfg
(more on that below).
Additional examples of creating lists or arrays of values are provided in the documentation of the Apache Commons Configuration properties file syntax.
Because DSpace supports the Apache Commons Configuration properties file syntax, it also can include/embed property files within other property files by using the "include=
" setting.
For example, the dspace.cfg
includes/embeds all of the default config/modules/*.cfg
files via a series of "include=
" settings near the bottom of the dspace.cfg.
As an example, here's a small subset of those include calls:
# defines our modules subdirectory module_dir = modules # The following lines include specific "authentication*.cfg" files inside your dspace.cfg # This essentially "embeds" their configurations into your dspace.cfg, # treating them as if they were a single configuration file. include = ${module_dir}/authentication.cfg include = ${module_dir}/authentication-ip.cfg include = ${module_dir}/authentication-ldap.cfg include = ${module_dir}/authentication-password.cfg include = ${module_dir}/authentication-shibboleth.cfg |
This ability to include properties files within others is very powerful, as it allows you to inherit settings from other files, or subdivide large configuration files. Be aware that this essentially causes DSpace to treat all included configurations as if they were part of the parent file. This means that, in the above example, as far as DSpace is concerned, all the settings contained within the authentication*.cfg
files "appear" as though they are specified in the main dspace.cfg
.
This ability to include other files is also possible with the local.cfg
file, should you want to subdivide your localized settings into several locally specific configuration files.
While the DSpace API supports dynamically reloading configurations, the user or machine interfaces may still cache some configuration settings. This means that while the API layer may reload a new value, that new value may not always affect/change the behavior of your user interface (until you restart Tomcat). Also, please be aware that all DSpace configuration values loaded into Spring beans (for example configurations that appear in Spring XML configuration files or in @Value annotations) are cached by Spring. This means that they will not be reloadable within Spring beans until Tomcat is restarted. |
Because DSpace supports the Apache Commons Configuration, its configurations can now be reloaded without restarting your servlet container (e.g. Tomcat). By default, DSpace checks for changes to any of its runtime configuration files every 5 seconds. If a change has been made, the configuration file is reloaded. The 5 second interval is configurable in the config-definition.xml
(which defines the configuration scheme DSpace uses).
Additionally, DSpace provides the ability to easily override default configuration settings (in dspace.cfg or modules/*.cfg) using a local.cfg file (see The local.cfg Configuration Properties File) or using System Properties / Environment Varilables.
Both of these features are defined in DSpace's default "configuration scheme" or "configuration definition" in the [dspace]/config/config-definition.xml
file. This file defines the Apache Commons Configuration settings that DSpace utilizes by default. It is a valid "configuration definition" file as defined by Apache Commons Configuration. See their Configuration Definition File Documentation for more details.
You are welcome to customize the config-definition.xml
to customize your local configuration scheme as you see fit. Any customizations to this file will require restarting your servlet container (e.g. Tomcat).
By default, the DSpace config-definition.xml
file defines the following configuration scheme:
local.cfg
(see The local.cfg Configuration Properties File documentation below)dspace.cfg
(NOTE: all modules/*.cfg
are loaded by dspace.cfg
via "include=
" statements at the end of that configuration file. They are essentially treated as sub-configs which are embedded/included into the dspace.cfg
)-D[setting]=[value]
) override all other optionslocal.cfg
dspace.cfg
(and all modules/*.cfg
files) contain the default values for all settings.For more information on customizing our default config-definition.xml file, see the Apache Commons Configuration documentation on the configuration definition file. Internally, DSpace simply uses the DefaultConfigurationBuilder
class provided by Apache Commons Configuration to initialize our configuration scheme (and load all configuration files).
Because the |
It is important to remember that there are multiple copies of each configuration files in an installation of DSpace. The primary ones to be aware of are:
[dspace-source]/dspace/config/
or subdirectories. This also includes the [dspace-source]/local.cfg
[dspace]/config/
The DSpace server (webapp) and command line programs only look at the runtime configuration file(s).
When you are revising/changing your configuration values, it may be tempting to only edit the runtime file. DO NOT do this. Whenever you rebuild DSpace, it will "reset" your runtime configuration to whatever is in your source directories (the previous runtime configuration is copied to a date suffixed file, should you ever need to restore it).
Instead, we recommend to always make the same changes to the source version of the configuration file in addition to the runtime file. In other words, the source and runtime files should always be identical / kept in sync.
One way to keep the two files in synchronization is to edit your files in [dspace-source]/dspace/config/
and then run the following commands to rebuild DSpace and install the updated configs:
cd [dspace-source]/dspace/ mvn package cd [dspace-source]/dspace/target/dspace-installer ant update_configs |
This will copy the source configuration files into the runtime ([dspace]/config) directory. Another option to manually sync the files by copying them to each directory.
Please note that there are additional "ant" commands to help with configuration management:
[dspace]/config/
to *.old files and replaces them with what is in [dspace-source]/dspace/config/
[dspace]/config/
intact. Just copies new configs from[dspace-source]/dspace/config/
over to *.new files.local.cfg
Configuration Properties FileAs of DSpace 6 and above, the old "
|
If you are upgrading from an earlier version of DSpace, you will need to be aware that many configuration names/keys have changed. Because Apache Commons Configuration allows for auto-overriding of configurations, all configuration names/keys in different In order to create this powerful ability to override configurations in your Additionally, while the This means that DSpace 5.x (or below) configurations are NOT guaranteed compatible with DSpace 6. While you obviously can use your old configurations as a reference, you will need to start with fresh copy of all configuration files, and reapply any necessary configuration changes (this has always been the recommended procedure). However, as you'll see below, you'll likely want to do that anyways in order to take full advantage of the new |
It is possible to easily override default DSpace configurations (from dspace.cfg
or modules/*.cf
g files) in your own local.cfg
configuration file.
A example [dspace-source]/
is provided with DSpace. The example only provides a few key configurations which most DSpace sites are likely to need to customize. However, you may add (or remove) any other configuration to your dspace/config/
local.cfg.EXAMPLElocal.cfg
to customize it as you see fit.
To get started, simply create your own [dspace-source]/dspace/config/local.cfg
based on the example, e.g.
cd [dspace-source]/dspace/config/ cp local.cfg.EXAMPLE local.cfg |
You can then begin to edit your local.cfg
with your local settings for DSpace. There are a few key things to note about the local.cfg
file:
local.cfg
will automatically OVERRIDE a setting of the same name in the dspace.cfg
or any modules/*.cfg
file. This also means that you can copy ANY configuration (from dspace.cfg
or any modules/*.cfg
file) into your local.cfg
to specify a new value.
dspace.url
in local.cfg
will override the default value of
dspace.url
in dspace.cfg
.oai.solr.url
in local.cfg
will override the default value of oai.solr.url
in config/modules/oai.cfg
local.cfg
file uses the Apache Commons Configuration Property file syntax (like all *.cfg files) . For more information see the section on Configuration File Syntax above.local.cfg
also supports enhanced features like the ability to include other config files (via "include=
" statements).local.cfg
by specifying them as System Properties or Environment Variables.dspace.dir
in development/staging environment, you could specify it as a System Property (e.g. -Ddspace.dir=[new-location]
). This new value will override any value in both local.cfg
and dspace.cfg
.When you build DSpace (e.g. mvn package), this local.cfg
file will be automatically copied to [dspace]/config/local.cfg
. Similar to the dspace.cfg
, the "runtime" configuration (used by DSpace) is the one in [dspace]/config/local.cfg
. See the Why are there multiple copies of some config files? question above for more details on the runtime vs source configuration.
Here's a very basic example of settings you could place into your local.cfg
file (with inline comments):
# This is a simple example local.cfg file which shows off options # for creating your own local.cfg # This overrides the default value of "dspace.dir" in dspace.cfg dspace.dir = C:/dspace/ # This overrides the default value of "dspace.server.url" in dspace.cfg dspace.server.url = https://dspace.myuniversity.edu/server # The overrides the default "dspace.ui.url" setting it to the same value as my "baseUrl" above dspace.ui.url = https://dspace.myuniversity.edu # If our database settings are the same as the default ones in dspace.cfg, # then, we may be able to simply customize the db.username and db.password db.username = myuser db.password = mypassword # For DSpace, we want the LDAP and Password authentication plugins enabled # This overrides the default AuthenticationMethod in /config/modules/authentication.cfg # Since we specified the same key twice, these two values are appended (see Configuration File Syntax above) plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.LDAPAuthentication plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.PasswordAuthentication # We also can reference other configurations in values. # For instance, we can set the "mail.admin" and the "feedback.recipient" to be the same email mail.admin = myemail@myuniversity.edu feedback.recipient = ${mail.admin} # For the example, we'll override the default oai.path in /config/modules/oai.cfg # This puts our OAI-PMH interface at ${dspace.server.url}/oaipmh oai.path = oaipmh # We'll also override the default oai.solr.url in /config/modules/oai.cfg # Notice here we're referencing a configuration (solr.server) that only exists in dspace.cfg # This is allowed. Your local.cfg can reference configs from other *.cfg files. oai.solr.url = ${solr.server}/oaipmh # Finally, this local.cfg also supports adding "include=" statements, to include # additional local configuration files. # In this example, a local-rest.cfg and local-curate.cfg (in the same directory) # will automatically be included as part of this local.cfg. # This allows you to subdivide you local configs in as many (or few) config files # as you desire. include = local-rest.cfg include = local-curate.cfg |
dspace.cfg
Configuration Properties FileRemember, any of the below |
The dspace.cfg
contains basic information about a DSpace installation, including system path information, network host information, and other like items. It is the default configuration file for DSpace, used by DSpace when it is actively running. However, as noted above, any of these default configurations may be overridden in your own local.cfg
configuration file.
Property: |
|
Example Value: |
|
Informational Note: | Root directory of DSpace installation. Omit the trailing slash '/'. Note that this setting is used by default in other settings, e.g. (On Windows be sure to use forward slashes for the directory path! For example: "C:/dspace" is a valid path for Window.) |
Property: |
|
Example Value: | |
Informational Note: | Main URL at which DSpace backend ("server" webapp) is publicly available. If using port 80 (HTTP) or 443 (HTTPS), you may omit the port number. Otherwise the port number must be included. Do not include a trailing slash (' |
Property: |
|
Example Value: |
|
Informational note | Main URL at which the DSpace frontend (Angular User Interface) is publicly available. If using port 80 (HTTP) or 443 (HTTPS), you may omit the port number. Otherwise the port number must be included. Do not include a trailing slash (' This URL should match the URL you type in the browser to access your User Interface. In the backend, this URL is primarily used to build UI-based URLs in sitemaps, email messages, etc. Therefore, it need not be set on initial installation, but it should be configured as soon as your user interface is installed. If you are not using the DSpace UI (and running the backend "headless"), this may be set to the URL of whatever you consider your primary "user interface". |
Property: |
|
Example Value: |
|
Informational Note: | Short and sweet site name, used in e-mails, exports and machine interfaces (e.g. OAI-PMH). It is not currently used by the Angular UI. |
DSpace uses Solr for various indexing purposes, and uses a pool of open connections to manage communication with Solr. These properties configure the connections between DSpace and Solr.
See also the additional Solr configuration properties for specific indexes such as search, statistics, authority and OAI PMH.
Property: | solr.server |
Example Value: | solr.server = http://localhost:8983/solr |
Informational Note: | Base URL to the Solr server. Specific indexes append to this value. |
Property: |
|
Example Value: |
|
Informational Note: | The maximum number of connections that will be opened between DSpace and Solr. |
Property: | solr.client.maxPerRoute |
Example Value: | solr.client.maxPerRoute = 15 |
Informational Note: | The maximum number of connections that will be opened between DSpace and a specific Solr instance (if you have more than one). |
Property: | solr.client.keepAlive |
Example Value: | solr.client.keepAlive = 5000 |
Informational Note: | The default amount of time that a connection in use will be held open, in milliseconds. Solr may specify a different keep-alive interval and it will be obeyed. |
Property: | solr.client.timeToLive |
Example Value: | solr.client.timeToLive = 600 |
Informational Note: | The maximum amount of time before an open connection will be closed when idle, in seconds. New connections will be opened as needed, subject to the above limits. |
Many of the database configurations are software-dependent. That is, it will be based on the choice of database software being used. Currently, DSpace properly supports PostgreSQL and Oracle.
Oracle support has been deprecated in DSpace. It will no longer be supported as of June/July 2023. See https://github.com/DSpace/DSpace/issues/8214 We recommend all users install DSpace on PostrgreSQL (see above) |
Property: |
|
Example Value: |
|
Informational Note: | The above value is the default value when configuring with PostgreSQL. When using Oracle, use this value: |
Property: |
|
Example Value: |
|
Informational Note: | In the installation directions, the administrator is instructed to create the user "dspace" who will own the database "dspace". |
Property: |
|
Example Value: |
|
Informational Note: | This is the password that was prompted during the installation process (cf. 3.2.3. Installation) |
Property: |
|
Example Value: |
|
Informational Note: | If your database contains multiple schemas, you can avoid problems with retrieving the definitions of duplicate objects by specifying the schema name here that is used for DSpace by uncommenting the entry. This property is optional. For PostgreSQL databases, this is often best set to "public" (default schema). For Oracle databases, the schema is usually equivalent to the username of your database account. So, for Oracle, this may be set to |
Property: |
|
Example Value: |
|
Informational Note: | Maximum number of Database connections in the connection pool |
Property: |
|
Example Value: |
|
Informational Note: | Maximum time to wait before giving up if all connections in pool are busy (in milliseconds). |
Property: |
|
Example Value: |
|
Informational Note: | Maximum number of idle connections in pool. (-1 = unlimited) |
Property: |
|
Example Value: |
|
Informational Note: | This is a developer-based setting which determines whether you are allowed to run "./dspace database clean" to completely delete all content and tables in your database. This should always be set to "true" in Production to protect against accidentally deleting all your content by running that command. (Default is set to true) |
Alternately, you may supply a configured connection pool out of JNDI. The object must be named jdbc/dspace
(the full path is java:comp/env/jdbc/dspace
). DSpace will always look up this name and, if found, will use the returned object as its database connection pool. If not found, the above db.*
properties will be used to create the pool.
If you are using Tomcat, then the object might be defined using a <Resource>
element, or connected to a <Resource>
child of <GlobalNamingResources>
using a <ResourceLink>
element. See your Servlet container's documentation for details of configuring the JNDI initial context. For example, Tomcat provides a useful JNDI Datasource How-to
Earlier releases of DSpace provided a configuration property db.jndi
to specify the name to be looked up, but that has been removed. The name is specified in config/spring/api/core-hibernate.xml
if you really need to change it.
The configuration of email is simple and provides a mechanism to alert the person(s) responsible for different features of the DSpace software.
DSpace will look up a javax.mail.Session object in JNDI and, if found, will use that to send email. Otherwise it will create a Session using some of the properties detailed below.
Property: |
| |
Example Value: |
| |
Informational Note: | The address on which your outgoing SMTP email server can be reached. | |
Property: |
| |
Example Value: |
| |
Informational Note: | SMTP mail server authentication username, if required. This property is optional. | |
Property: |
| |
Example Value: |
| |
Informational Note: | SMTP mail server authentication password, if required. This property is optional. | |
Property: |
| |
Example Value: |
| |
Informational Note: | The port on which your SMTP mail server can be reached. By default, port 25 is used. Change this setting if your SMTP mailserver is running on another port. This property is optional. | |
Property: |
| |
Example Value: |
| |
Informational Note: | The "From" address for email. Change the 'myu.edu' to the site's host name. | |
Property: |
| |
Example Value: |
| |
Informational Note: | When a user clicks on the feedback link/feature, the information will be sent to the email address of choice. This configuration is currently limited to only one recipient. This is also the email address displayed on the contacts page. | |
Property: |
| |
Example Value: |
| |
Example Value: | Email address of the general site administrator (Webmaster). System notifications/reports and other sysadmin emails are sent to this email address. | |
Property: | mail.admin.name | |
Example Value: | mail.admin.name = DSpace Administrator | |
Example Value: | Name associated with the mail.admin email address. | |
Property: |
| |
Example Value: |
| |
Informational Note: | Enter the recipient for server errors and alerts. This property is optional and defaults to the | |
Property: |
| |
Example Value: |
| |
Informational Note: | Enter the recipient that will be notified when a new user registers on DSpace. This property is optional & defaults to no value. | |
Property: |
| |
Example Value: |
| |
Informational Note: | Set the default mail character set. This may be over-ridden by providing a line inside the email template '#set($charset = "encoding")'. Otherwise this default is used. | |
Property: |
| |
Example Value: |
| |
Informational Note: | A comma separated list of hostnames that are allowed to refer browsers to email forms. This property is optional. UNSUPPORTED in DSpace 7.0 | |
Property: |
| |
Example Value: |
| |
Informational Note: | If you need to pass extra settings to the Java mail library. Comma separated, equals sign between the key and the value. This property is optional. | |
Property: |
| |
Example Value: |
| |
Informational Note: | An option is added to disable the mailserver. By default, this property is set to ' | |
Property: |
| |
Example Value: |
| |
Informational Note: | Specifies the name of a javax.mail.Session object stored in JNDI under | |
Property: |
| |
Example Value: |
| |
Informational Note: | If no other language is explicitly stated in the submission-forms.xml, the default language will be attributed to the metadata values. See also Multilingual Support | |
Property: | mail.message.headers | |
Example Value: |
| |
Informational Note: | When processing a message template, setting a Velocity variable whose name is one of the values of this configuration property will add or replace a message header of the same name, using the value of the variable as the header's value. See "Templates can set message headers". | |
Property: | mail.welcome.enabled | |
Example Value: | mail.welcome.enabled = true | |
Informational Note: | Enable a "welcome letter" to the newly-registered user. By default this is false . See the welcome email template. |
Sometimes DSpace automatically sends e-mail messages to users, for example, to inform them of a new work flow task, or as a subscription e-mail alert. The wording of e-mails can be changed by editing the relevant file in [dspace]/config/emails
. Each file is commented. Be careful to keep the right number 'placeholders' (e.g. ${params[2]}) for the template's positional parameters.
Each file is a Velocity template. You can use the full Velocity Template Language to help you customize messages. There are two Velocity variables pre-defined by DSpace when processing an e-mail template:
params
is the array of message parameters provided by the DSpace code which is sending the message. These are indexed by number, starting at zero.config
is the table of DSpace configuration properties (such as dspace.name
). These are looked up using config.get(property name)
.## This is a comment. It will not be part of the message. This is the body of the message. The code which sends it supplied two parameters: ${params[0]} and ${params[1]}. The name of this DSpace instance is ${config.get('dspace.name')} and you can browse it at ${config.get('dspace.url')}. |
Also see the template config/emails/register
for an example of each.
Note: You should replace the contact-information "dspace-help@myu.edu or call us at xxx-555-xxxx
" with your own contact details in:config/emails/change_password
config/emails/register
A template can set specific message headers by defining Velocity variables which have been enabled for this use by naming them as values of the DSpace configuration property mail.message.headers
. In most cases the name of the Velocity variable will become the header's name, and the value of the variable, the header's value. For example: #set(My-Header, "Hello World!")
in a template will result in the message having a header My-Header: Hello World!
if DSpace's mail.message.headers includes "My-Header".
A few Velocity variable names are special in DSpace email templates:
name | meaning |
---|---|
subject | supplies the Subject: header's value. |
charset | sets the |
## This is a comment. It will not be part of the sent message. #set($subject = "This will be the Subject: of the message") This is the body of the message. |
Beginning with DSpace 6, your file storage location (aka bitstore) is now defined in the |
DSpace supports multiple options for storing your repository bitstreams (uploaded files). The files are not stored in the database, instead they are provided via a configured "assetstore" or "bitstore".
By default, the assetstore is simply a directory on your server ([dspace]/assetstore/
) under which bitstreams (files) are stored by DSpace.
At this time, DSpace supports two primary locations for storing your files:
[dspace]/assetstore/
directoryMore information on configuring or customizing the storage location of your files can be found in the Storage Layer documentation.
Logging configuration has now moved to |
Property: |
| |
Example Value: |
| |
Informational Note: | This is where your logging configuration file is located. You may override the default log4j configuration by providing your own. Existing alternatives are:
| |
Property: |
| |
Example value: |
| |
Informational Note: | This is where to put the DSpace logs. The default setting (shown above) writes all DSpace logs to the ${dspace.dir}/log/ directory. | |
Property: | loglevel.dspace (defined in log4j2.xml) | |
Example value: | loglevel.dspace = INFO | |
Informational Note: | Log level for all DSpace-specific code (org.dspace.* packages). By default, DSpace only provides general INFO logs (in order to keep log sizes reasonable). As necessary, you can temporarily change this setting to any of the following (ordered for most information to least): DEBUG, INFO, WARN, ERROR, FATAL Please be aware we do not recommend running at the DEBUG level in Production for significant periods of time, as it will cause the logs to be extremely large in size. | |
Property: | loglevel.other (defined in log4j2.xml) | |
Example value: | loglevel.other = INFO | |
Informational Note: | Log level for other third-party tools/APIs used by DSpace (non-DSpace specific code). By default, DSpace only provides general INFO logs (in order to keep log sizes reasonable). As necessary, you can temporarily change this setting to any of the following (ordered for most information to least): DEBUG, INFO, WARN, ERROR, FATAL Please be aware we do not recommend running at the DEBUG level in Production for significant periods of time, as it will cause the logs to be extremely large in size. |
Property: | plugin.classpath |
---|---|
Example Value: | /opt/dspace/plugins/aPlugin.jar:/opt/dspace/moreplugins |
Informational Note: | Search path for third-party plugin classes. This is a colon-separated list of directories and JAR files, each of which will be searched for plugin classes after looking in all the places where DSpace classes are found. In this way you can designate one or more locations for plugin files which will not be affected by DSpace upgrades. |
DSpace's search module is also known as "Discovery" and utilizes Apache Solr for indexing. It provides up-to-date features, such as filtering/faceting, hit highlighting, search snippets, etc. Detailed documentation is available for customization, see Discovery. |
The CNRI Handle system is a 3rd party service for maintaining persistent URL's. For a nominal fee, you can register a handle prefix for your repository. As a result, your repository items will be also available under the links http://handle.net/<<handle prefix>>/<<item id>>. As the base url of your repository might change or evolve, the persistent handle.net URL's secure the consistency of links to your repository items. For complete information regarding the Handle server, the user should consult Handle.Net Registry Support.
Property: |
|
Example Value |
|
Informational Note: | Canonical Handle URL prefix. By default, DSpace is configured to use http://hdl.handle.net/ as the canonical URL prefix when generating |
Property: |
|
Example Value |
|
Informational Note: | The default installed by DSpace is |
Property: |
|
Example Value: |
|
Informational Note: | The default files, as shown in the Example Value is where DSpace will install the files used for the Handle Server. |
Property | handle.additional.prefixes |
Example Value | handle.additional.prefixes = 1234.56789.0, 1234.56789.1, 987 |
Informational Note: | List any additional prefixes that need to be managed by this handle server. For example, any handle prefixes that came from an external repository whose items have now been added to this DSpace. Multiple additional prefixes may be added in a comma separated list. |
It is possible to delegate the administration of Communities and Collections. This functionality eliminates the need for an Administrator Superuser account for these purposes. An EPerson that will be attributed Delegate Admin rights for a certain community or collection will also "inherit" the rights for underlying collections and items. As a result, a community admin will also be collection admin for all underlying collections. Likewise, a collection admin will also gain admin rights for all the items owned by the collection.
Authorization to execute the functions that are allowed to user with WRITE permission on an object will be attributed to be the ADMIN of the object (e.g. community/collection/admin will be always allowed to edit metadata of the object). The default will be "true" for all the configurations.
Community Administration: Subcommunities and Collections | ||
Property: | core.authorization.community-admin.create-subelement | |
Example Value: | core.authorization.community-admin.create-subelement = true | |
Informational Note: | Authorization for a delegated community administrator to create subcommunities or collections. | |
Property: | core.authorization.community-admin.delete-subelement | |
Example Value: | core.authorization.community-admin.delete-subelement = true | |
Informational Note: | Authorization for a delegated community administrator to delete subcommunities or collections. | |
Community Administration: Policies and The group of administrators | ||
Property: | core.authorization.community-admin.policies | |
Example Value: | core.authorization.community-admin.policies = true | |
Informational Note: | Authorization for a delegated community administrator to administrate the community policies. | |
Property: | core.authorization.community-admin.admin-group | |
Example Value: | core.authorization.community-admin.admin-group = true | |
Informational Note: | Authorization for a delegated community administrator to edit the group of community admins. | |
Community Administration: Collections in the above Community | ||
Property: | core.authorization.community-admin.collection.policies | |
Example Value: | core.authorization.community-admin.collection.policies = true | |
Informational Note: | Authorization for a delegated community administrator to administrate the policies for underlying collections. | |
Property: | core.authorization.community-admin.collection.template-item | |
Example Value: | core.authorization.community-admin.collection.template-item = true | |
Informational Note: | Authorization for a delegated community administrator to administrate the item template for underlying collections. | |
Property: | core.authorization.community-admin.collection.submitters | |
Example Value: | core.authorization.community-admin.collection.submitters = true | |
Informational Note: | Authorization for a delegated community administrator to administrate the group of submitters for underlying collections. | |
Property: | core.authorization.community-admin.collection.workflows | |
Example Value: | core.authorization.community-admin.collection.workflows = true | |
Informational Note: | Authorization for a delegated community administrator to administrate the workflows for underlying collections. | |
Property: | core.authorization.community-admin.collection.admin-group | |
Example Value: | core.authorization.community-admin.collection.admin-group = true | |
Informational Note: | Authorization for a delegated community administrator to administrate the group of administrators for underlying collections. | |
Community Administration: Items Owned by Collections in the Above Community | ||
Property: | core.authorization.community-admin.item.delete | |
Example Value: | core.authorization.community-admin.item.delete = true | |
Informational Note: | Authorization for a delegated community administrator to delete items in underlying collections. | |
Property: | core.authorization.community-admin.item.withdraw | |
Example Value: | core.authorization.community-admin.item.withdraw = true | |
Informational Note: | Authorization for a delegated community administrator to withdraw items in underlying collections. | |
Property: | core.authorization.community-admin.item.reinstate | |
Example Value: | core.authorization.community-admin.item.reinstate = true | |
Informational Note: | Authorization for a delegated community administrator to reinstate items in underlying collections. | |
Property: | core.authorization.community-admin.item.policies | |
Example Value: | core.authorization.community-admin.item.policies = true | |
Informational Note: | Authorization for a delegated community administrator to administrate item policies in underlying collections. | |
Community Administration: Bundles of Bitstreams, related to items owned by collections in the above Community | ||
Property: | core.authorization.community-admin.item.create-bitstream | |
Example Value: | core.authorization.community-admin.item.create-bitstream = true | |
Informational Note: | Authorization for a delegated community administrator to create additional bitstreams in items in underlying collections. | |
Property: | core.authorization.community-admin.item.delete-bitstream | |
Example Value: | core.authorization.community-admin.item.delete-bitstream = true | |
Informational Note: | Authorization for a delegated community administrator to delete bitstreams from items in underlying collections. | |
Property: | core.authorization.community-admin.item.cc-license | |
Example Value: | core.authorization.community-admin.item.cc-license = true | |
Informational Note: | Authorization for a delegated community administrator to administer licenses from items in underlying collections. | |
Collection Administration: |
| |
Collection Administration: |
| |
Collection Administration: |
| |
Item Administration. | core.authorization.item-admin.policies | |
Item Administration: |
|
Property: | core.authorization.installitem.inheritance-read.append-mode |
Example Value: | core.authorization.installitem.inheritance-read.append-mode = false |
Informational Note: | Determine if the DEFAULT READ policies of the collection should be always appended to the policies of the new item (property set to true) or used only when no other READ policy has been defined in the submission process (property set to false). Please note that also in append mode an open access default policy will be NOT inherited if other policies have been defined in the submission (i.e. if the item was restricted) |
Property: |
|
Example Value: |
|
Informational Note: | Determine if super administrators (those whom are in the Administrators group) can login as another user from the "edit eperson" page. This is useful for debugging problems in a running DSpace instance, especially in the workflow process. The default value is false, i.e., no one may assume the login of another user. |
By default RSS feeds and subscription emails will include ALL items regardless of permissions set on them. If you wish to only expose items through these channels where the ANONYMOUS user is granted READ permission, then set the following options to false.
Property: |
|
Example Value: |
|
Informational Note: | When set to 'true' (default), items that haven't got the READ permission for the ANONYMOUS user, will be included in RSS feeds anyway. |
Property: |
|
Example Value: |
|
Informational Note: | When set to true (default), items that haven't got the READ permission for the ANONYMOUS user, will be included in Subscription emails anyway. |
These settings for proxy are commented out by default. Uncomment and specify both properties if proxy server is required for external http requests. Use regular host name without port number.
Property: |
|
Example Value |
|
Informational Note | Enter the host name without the port number. Only currently used for Creative Commons licensing feature (to contact their API), and Sitemap generation (to ping search server regarding updates) |
Property: |
|
Example Value |
|
Informational Note | Enter the port number for the proxy server. Only currently used for Creative Commons licensing feature (to contact their API), and Sitemap generation (to ping search server regarding updates) |
Property |
|
Example Value: |
|
Informational Note: | As of DSpace 7 (and above), this setting defaults to true. If "useProxies" is enabled, the authentication and statistics logging code will read the X-Forwarded-For header in order to determine the correct client IP address. As the User Interface uses Angular Universal (for SEO support), the proxy server that comes with Angular Universal is always enabled. By default, only your local server (127.0.0.1) and the public IP address of `dspace.ui.url` are "trusted" as a proxy. If your DSpace instance is protected by external proxy server, you may need to update the "proxies.trusted.ipranges" property below. This also affects IPAuthentication, and should be enabled for that to work properly if your installation uses a proxy server. |
Property | proxies.trusted.ipranges |
Example Value: | proxies.trusted.ipranges |
Informational Note: | By default, only proxies running on localhost (127.0.0.1) and the You can specify a range by only listing the first three ip-address blocks, e.g. 128.177.243 You can list multiple IP addresses or ranges by comma-separating them. |
Property | proxies.trusted.include_ui_ip |
Example Value: | proxies.trusted.include_ui_ip = true |
Informational Note: | This setting specifies whether to automatically trust IP address of the dspace.ui.url as a proxy. By default, this is always set to true to ensure the UI is fully trusted by the backend. However, if you are not using the Angular UI, you may choose to set this to "false" in order to only trust proxies running on localhost (127.0.0.1) by default. |
Property | server.forward-headers-strategy |
Example Value: | server.forward-headers-strategy = FRAMEWORK |
Informational Note: | This is a Spring Boot setting which may be overridden/specified in your local.cfg. By default, Spring Boot does not automatically use X-Forwarded-* Headers when generating links (and similar) in the REST API. When using a proxy in front of the REST API, you may need to modify this setting:
For more information see the Spring Boot docs at https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto-use-behind-a-proxy-server |
Media or Format Filters are classes used to generate derivative or alternative versions of content or bitstreams within DSpace. For example, the PDF Media Filter will extract textual content from PDF bitstreams, the JPEG Media Filter can create thumbnails from image bitstreams.
Media Filters are configured as Named Plugins, with each filter also having a separate configuration setting (in dspace.cfg) indicating which formats it can process. The default configuration is shown below.
Property: |
| |
Example Value: |
| |
Informational Note: | This setting lists the names of all enabled MediaFilter or FormatFilter plugins. To enable multiple plugins, list them on separate lines (as shown above) or provide a comma separated list. | |
Property: |
| |
Example Value: |
| |
Informational Note: | Assign "human-understandable" names to each filter. These names are used to enable/disable plugins using "filter.plugins" setting above. As with the previous setting, multiple plugins can be listed here on separate lines (or comma separated) | |
Property: |
| |
Example Value: |
| |
Informational Note: | Configure each filter's input format(s). These must match format names in the DSpace file format registry. | |
Property: | filter.org.dspace.app.mediafilter.publicPermission | |
Example Value: | filter.org.dspace.app.mediafilter.publicPermission = JPEGFilter | |
Optionally, configure filter(s) which should always create publicly accessible bitstreams (e.g. useful if you want thumbnails to always be publicly accessible). By default, any bitstreams created by a filter will inherit the same permissions as the original file (e.g. if original image is access restricted, then thumbnail will also be access restricted by default). | ||
Property: |
| |
Example Value: |
| |
Informational Note: | It this value is set for "true", all PDF extractions are written to temp files as they are indexed. This is slower, but helps to ensure that PDFBox software DSpace uses does not eat up all your memory. | |
Property: |
| |
Example Value: |
| |
Informational Note: | If this value is set for "true", PDFs which still result in an "Out of Memory" error from PDFBox are skipped over. These problematic PDFs will never be indexed until memory usage can be decreased in the PDFBox software. |
Names are assigned to each filter using the plugin.named.org.dspace.app.mediafilter.FormatFilter
field (e.g. by default the PDFilter is named "PDF Text Extractor".
Finally, the appropriate filter.<class path>.inputFormats
defines the valid input formats which each filter can be applied. These format names must match the short description
field of the Bitstream Format Registry.
You can also implement more dynamic or configurable Media/Format Filters which extend SelfNamedPlugin
.
For more information on Media/Format Filters, see the section on Mediafilters for Transforming DSpace Content. |
The subsections below give configuration details based on the types of crosswalks and packager plugins you need to implement.
For more information on using Packagers and Crosswalks, see the section on Importing and Exporting Content via Packages. |
The MODS crosswalk is a self-named plugin. To configure an instance of the MODS crosswalk, add a property to the DSpace configuration starting with "crosswalk.mods.properties.
"; the final word of the property name becomes the plugin's name. For example, a property name crosswalk.mods.properties.MODS
defines a crosswalk plugin named "MODS
".
The value of this property is a path to a separate properties file containing the configuration for this crosswalk. The pathname is relative to the DSpace configuration directory, i.e. the config
subdirectory of the DSpace install directory. Example from the dspace.cfg
file:
Properties: |
|
Example Values: |
|
Informational Note: | This defines a crosswalk named MODS whose configuration comes from the file |
The MODS crosswalk properties file is a list of properties describing how DSpace metadata elements are to be turned into elements of the MODS XML output document. The property name is a concatenation of the metadata schema, element name, and optionally the qualifier. For example, the contributor.author element in the native Dublin Core schema would be: dc.contributor.author. The value of the property is a line containing two segments separated by the vertical bar ("|
"_): The first part is an XML fragment which is copied into the output document. The second is an XPath expression describing where in that fragment to put the value of the metadata element. For example, in this property:
dc.contributor.author = <mods:name> <mods:role> <mods:roleTerm type="text">author</mods:roleTerm> </mods:role> <mods:namePart>%s</mods:namePart> </mods:name> |
Some of the examples include the string "%s
" in the prototype XML where the text value is to be inserted, but don't pay any attention to it, it is an artifact that the crosswalk ignores. For example, given an author named Jack Florey, the crosswalk will insert
<mods:name> <mods:role> <mods:roleTerm type="text">author</mods:roleTerm> </mods:role> <mods:namePart>Jack Florey</mods:namePart> </mods:name> |
into the output document. Read the example configuration file for more details.
The XSLT crosswalks use XSL stylesheet transformation (XSLT) to transform an XML-based external metadata format to or from DSpace's internal metadata. XSLT crosswalks are much more powerful and flexible than the configurable MODS and QDC crosswalks, but they demand some esoteric knowledge (XSL stylesheets). Given that, you can create all the crosswalks you need just by adding stylesheets and configuration lines, without touching any of the Java code.
The default settings in the dspace.cfg
file for submission crosswalk:
Properties: |
|
Example Value: |
|
Informational Note: | Configuration XSLT-driven submission crosswalk for MODS |
As shown above, there are three (3) parts that make up the properties "key":
crosswalk.submission.PluginName.stylesheet = 1 2 3 4 |
crosswalk
first part of the property key.submission
second part of the property key.PluginName
is the name of the plugin. The path value is the path to the file containing the crosswalk stylesheet (relative to /[dspace]/config
).
Here is an example that configures a crosswalk named "LOM" using a stylesheet in [dspace]/config/crosswalks/d-lom.xsl
:crosswalk.submission.LOM.stylesheet = crosswalks/d-lom.xsl
A dissemination crosswalk can be configured by starting with the property key crosswalk.dissemination. Example:crosswalk.dissemination.PluginName.stylesheet = path
The PluginName is the name of the plugin (!) . The path value is the path to the file containing the crosswalk stylesheet (relative to /[dspace]/config
).
You can make two different plugin names point to the same crosswalk, by adding two configuration entries with the same path:
crosswalk.submission.MyFormat.stylesheet = crosswalks/myformat.xslt crosswalk.submission.almost_DC.stylesheet = crosswalks/myformat.xslt |
The dissemination crosswalk must also be configured with an XML Namespace (including prefix and URI) and an XML schema for its output format. This is configured on additional properties in the DSpace configuration:
crosswalk.dissemination.PluginName.namespace.Prefix = namespace-URI crosswalk.dissemination.PluginName.schemaLocation = schemaLocation value |
For example:
crosswalk.dissemination.qdc.namespace.dc = http://purl.org/dc/elements/1.1/ crosswalk.dissemination.qdc.namespace.dcterms = http://purl.org/dc/terms/ crosswalk.dissemination.qdc.schemalocation = http://purl.org/dc/elements/1.1/ \ http://dublincore.org/schemas/xmls/qdc/2003/04/02/qualifieddc.xsd |
If you remove all XSLTDisseminationCrosswalks please disable the XSLTDisseminationCrosswalk in the list of selfnamed plugins. If no XSLTDisseminationCrosswalks are configured but the plugin is loaded the PluginManager will log an error message ("Self-named plugin class "org.dspace.content.crosswalk.XSLTDisseminationCrosswalk" returned null or empty name list!"). |
The XSLT crosswalks will automatically reload an XSL stylesheet that has been modified, so you can edit and test stylesheets without restarting DSpace. You can test a crosswalk by using a command-line utitlity. To test a dissemination crosswalk you have to run:
[dspace]/bin/dspace dsrun org.dspace.content.crosswalk.XSLTDisseminationCrosswalk <plugin name> <handle> [output-file] |
For example, you can test the marc plugin on the handle 123456789/3 with:
[dspace]/bin/dspace dsrun org.dspace.content.crosswalk.XSLTDisseminationCrosswalk marc 123456789/3 |
Informations from the script will be printed to stderr while the XML output of the dissemination crosswalk will be printed to stdout. You can give a third parameter containing a filename to write the output into a file, but be careful: the file will be overwritten if it exists.
Testing a submission crosswalk works quite the same way. Use the following command-line utility, it calls the crosswalk plugin to translate an XML document you submit, and displays the resulting intermediate XML (DIM). Invoke it with:
[dspace]/bin/dspace dsrun org.dspace.content.crosswalk.XSLTIngestionCrosswalk [-l] <plugin name> <input-file> |
where <plugin name> is the name of the crosswalk plugin to test (e.g. "LOM"), and <input-file> is a file containing an XML document of metadata in the appropriate format.
Add the -l
option to pass the ingestion crosswalk a list of elements instead of a whole document, as if the List form of the ingest() method had been called. This is needed to test ingesters for formats like DC that get called with lists of elements instead of a root element.
The QDC crosswalk is a self-named plugin. To configure an instance of the QDC crosswalk, add a property to the DSpace configuration starting with "crosswalk.qdc.properties.
"; the final word of the property name becomes the plugin's name. For example, a property name crosswalk.qdc.properties.QDC
defines a crosswalk plugin named "QDC
".
The following is from dspace.cfg file:
Properties: |
| |
Example Value: |
| |
Properties: |
| |
Example Value: |
| |
Properties: |
| |
Example Value: |
| |
Properties: |
| |
Example Value: |
| |
Informational Note: | Configuration of the QDC Crosswalk dissemination plugin for Qualified DC. (Add lower-case name for OAI-PMH. That is, change QDC to qdc.)}} |
In the property key "crosswalk.qdc.properties.QDC
" the value of this property is a path to a separate properties file containing the configuration for this crosswalk. The pathname is relative to the DSpace configuration directory /[dspace]/config
. Referring back to the "Example Value" for this property key, one has crosswalks/qdc.properties
which defines a crosswalk named QDC
whose configuration comes from the file [dspace]/config/crosswalks/qdc.properties
.
You will also need to configure the namespaces and schema location strings for the XML output generated by this crosswalk. The namespaces properties names are formatted:
crosswalk.qdc.namespace
.prefix = uri
where prefix is the namespace prefix and uri is the namespace URI. See the above Property and Example Value keys as the default dspace.cfg has been configured.
The QDC crosswalk properties file is a list of properties describing how DSpace metadata elements are to be turned into elements of the Qualified DC XML output document. The property name is a concatenation of the metadata schema, element name, and optionally the qualifier. For example, the contributor.author
element in the native Dublin Core schema would be: dc.contributor.author
. The value of the property is an XML fragment, the element whose value will be set to the value of the metadata field in the property key.
For example, in this property:
dc.coverage.temporal = <dcterms:temporal />
the generated XML in the output document would look like, e.g.:<dcterms:temporal>Fall, 2005</dcterms:temporal>
Ingestion crosswalk plugins are configured as named or self-named plugins for the interface org.dspace.content.crosswalk.IngestionCrosswalk
. Dissemination crosswalk plugins are configured as named or self-named plugins for the interface org.dspace.content.crosswalk.DisseminationCrosswalk
.
You can add names for existing crosswalks, add new plugin classes, and add new configurations for the configurable crosswalks as noted below.
Package ingester plugins are configured as named or self-named plugins for the interface org.dspace.content.packager.PackageIngester
. Package disseminator plugins are configured as named or self-named plugins for the interface org.dspace.content.packager.PackageDisseminator
.
You can add names for the existing plugins, and add new plugins, by altering these configuration properties. See the Plugin Manager architecture for more information about plugins.
If you are unfamiliar with the Event System in DSpace, and require additional information with terms like "Consumer" and "Dispatcher" please refer to EventSystemPrototype.
Property: |
|
Example Value: |
|
Informational Note: | This is the default synchronous dispatcher (Same behavior as traditional DSpace). |
Property: |
|
Example Value: |
|
Informational Note: | This is the default synchronous dispatcher (Same behavior as traditional DSpace). |
Property: |
|
Example Value: |
|
Informational Note: | The noindex dispatcher will not create search or browse indexes (useful for batch item imports). |
Property: |
|
Example Value: |
|
Informational Note: | The noindex dispatcher will not create search or browse indexes (useful for batch item imports). |
Property: |
|
Example Value: |
|
Informational Note: | Consumer to maintain the search/browse (Discovery) index. |
Property: |
|
Example Value: |
|
Informational Note: | Consumer to maintain the search/browse (Discovery) index. |
Property: |
|
Example Value: |
|
Informational Note: | Consumer related to EPerson changes |
Property: |
|
Example Value: |
|
Informational Note: | Consumer related to EPerson changes |
Property: |
|
Example Value: |
|
Informational Note: | Test consumer for debugging and monitoring. Commented out by default. |
Property: |
|
Example Value: |
|
Informational Note: | Test consumer for debugging and monitoring. Commented out by default. |
Property: |
|
Example Value: |
|
Informational Note: | Set this to true to enable testConsumer messages to standard output. Commented out by default. |
DSpace embargoes utilize standard metadata fields to hold both the "terms" and the "lift date". Which fields you use are configurable, and no specific metadata element is dedicated or predefined for use in embargo. Rather, you specify exactly what field you want the embargo system to examine when it needs to find the terms or assign the lift date.
Property: |
|
Example Value: |
|
Informational Note: | Embargo terms will be stored in the item metadata. This property determines in which metadata field these terms will be stored. An example could be dc.embargo.terms |
Property: |
|
Example Value: |
|
Informational Note: | The Embargo lift date will be stored in the item metadata. This property determines in which metadata field the computed embargo lift date will be stored. You may need to create a DC metadata field in your Metadata Format Registry if it does not already exist. An example could be dc.embargo.liftdate |
Property: |
|
Example Value: |
|
Informational Note: | You can determine your own values for the embargo.field.terms property (see above). This property determines what the string value will be for indefinite embargos. The string in terms field to indicate indefinite embargo. |
Property: |
|
Example Value: |
|
Informational Note: | To implement the business logic to set your embargos, you need to override the EmbargoSetter class. If you use the value DefaultEmbargoSetter, the default implementation will be used. |
Property: |
|
Example Value: |
|
Informational Note: | To implement the business logic to lift your embargos, you need to override the EmbargoLifter class. If you use the value DefaultEmbargoLifter, the default implementation will be used. |
More details on Embargo configuration, including specific examples can be found in the Embargo section of the documentation. |
DSpace comes with a Checksum Checker script ([dspace]/bin/dspace checker
) which can be scheduled to verify the checksum of every item within DSpace. Since DSpace calculates and records the checksum of every file submitted to it, this script is able to determine whether or not a file has been changed (either manually or by some sort of corruption or virus). The idea being that the earlier you can identify a file has changed, the more likely you'd be able to recover it (assuming it was not a wanted change).
Property: |
|
Example Value: |
|
Informational Note: | The Default dispatcher is case non is specified. |
Property: |
|
Example Value: |
|
Informational Note: | This option specifies the default time frame after which all checksum checks are removed from the database (defaults to 10 years). This means that after 10 years, all successful or unsuccessful matches are removed from the database. |
Property: |
|
Example Value: |
|
Informational Note: | This option specifies the time frame after which a successful match will be removed from your DSpace database (defaults to 8 weeks). This means that after 8 weeks, all successful matches are automatically deleted from your database (in order to keep that database table from growing too large). |
For more information on using DSpace's built-in Checksum verification system, see the section on Validating CheckSums of Bitstreams. |
It is possible for an authorized user to request a complete export and download of a DSpace item in a compressed zip file. This zip file may contain the following:
dublin_core.xml
license.txt
contents (listing of the contents)
handle file itself and the extract file if available
The configuration settings control several aspects of this feature:
Property: |
|
Example Value: |
|
Informational Note: | The directory where the exports will be done and compressed. |
Property: |
|
Example Value: |
|
Informational Note | The directory where the compressed files will reside and be read by the downloader. |
Property: |
|
Example Value: |
|
Informational Note | The length of time in hours each archive should live for. When new archives are created this entry is used to delete old ones. |
Property: |
|
Example Value: |
|
Informational Note | The maximum size in Megabytes (Mb) that the export should be. This is enforced before the compression. Each bitstream's size in each item being exported is added up, if their cumulative sizes are more than this entry the export is not kicked off. |
DSpace, through some advanced installation and setup, is able to send out an email to collections that a user has subscribed. The user who is subscribed to a collection is emailed each time an item id added or modified. The following property key controls whether or not a user should be notified of a modification.
Property: |
|
Example Value: |
|
Informational Note: | For backwards compatibility, the subscription emails by default include any modified items. The property key is COMMENTED OUT by default. |
It is now possible to hide metadata from public consumption that is only available to the Administrator.
Property: |
|
Example Value: |
|
Informational Note: | Hides the metadata in the property key above except to the administrator. Fields named here are hidden in the following places UNLESS the logged-in user is an Administrator:
To designate a field as hidden, add a property here in the form: |
Property: |
|
Example Value: |
|
Informational Note: | Whether or not a file is required to be uploaded during the "Upload" step in the submission process. The default is true. If set to "false", then the submitter (human being) has the option to skip the uploading of a file. |
DSpace has integration with the Sherpa/RoMEO API in order to allow importing data from Sherpa/RoMEO during the submission You must register for a free API key (see below for details).
Property: | sherpa.romeo.url |
Example Value: | sherpa.romeo.url = https://v2.sherpa.ac.uk/cgi/retrieve |
Informational Note: | The Sherpa/RoMEO endpoint. |
Property: | sherpa.romeo.apikey |
Example Value: | sherpa.romeo.apikey = YOUR-API-KEY |
Informational Note: | Allow to use a specific API key to raise the usage limit (500 calls/day for unregistred user). You MUST register for a free api access key at https://v2.sherpa.ac.uk/api/ |
The functionality rely on understanding to which Journal (ISSN) is related the submitting item. This is done out of box looking to some item metadata but a different strategy can be used as for example look to a metadata authority in the case that the Sherpa/RoMEO autocomplete for Journal is used (see AuthorityControlSettings)
The strategy used to discover the Journal related to the submission item is defined in the spring file /config/spring/api/sherpa.xml
<bean class="org.dspace.app.sherpa.submit.SHERPASubmitConfigurationService" id="org.dspace.app.sherpa.submit.SHERPASubmitConfigurationService"> <property name="issnItemExtractors"> <list> <bean class="org.dspace.app.sherpa.submit.MetadataValueISSNExtractor"> <property name="metadataList"> <list> <value>dc.identifier.issn</value> </list> </property> </bean> <!-- Use the follow if you have the SHERPARoMEOJournalTitle enabled <bean class="org.dspace.app.sherpa.submit.MetadataAuthorityISSNExtractor"> <property name="metadataList"> <list> <value>dc.title.alternative</value> </list> </property> </bean> --> </list> </property> </bean> |
The following configurations are for the Creative Commons license step in the submission process. Submitters are given an opportunity to select a Creative Common license to accompany the item. Creative Commons licenses govern the use of the content. For further details, refer to the Creative Commons website at http://creativecommons.org .
Creative Commons licensing is optionally available and may be configured for any given collection that has a defined submission sequence, or be part of the "default" submission process. This process is described in the Submission User Interface section of this manual. There is a Creative Commons step already defined, but it is commented out, so enabling Creative Commons licensing is typically just a matter of uncommenting that step.
When enabled, the Creative Commons public API is utilized. This allows DSpace to store metadata references to the selected CC license, while also storing the CC License as a bitstream. The following CC License information are captured:
The following configurations (in dspace.cfg) relate to the Creative Commons license process:
Property: |
|
Example Value: |
|
Informational Note: | Generally will never have to assign a different value - this is the base URL of the Creative Commons service API. |
Property: |
|
Example Value: |
|
Informational Note: | The field that holds the Creative Commons license URI. |
Property: |
|
Example Value: |
|
Informational Note: | The field that holds the Creative Commons license Name. |
Property: |
|
Example Value: |
|
Informational Note: | If true, the license assignment will add the field configured with the "cc.license.name" with the name of the CC license; if false, only "cc.license.uri" field is added. |
Property: |
|
Example Value: |
|
Informational Note: | If true, the license assignment will add a bitstream with the CC license RDF; if false, only metadata field(s) are added. |
Property: |
|
Example Value: |
|
Informational Note: | This list defines the values that will be excluded from the license (class) selection list, as defined by the web service at the URL: http://api.creativecommons.org/rest/1.5/classes |
Property: |
|
Example Value: |
|
Informational Note: | Should a jurisdiction be used? If so, which one? See http://creativecommons.org/international/ for a list of possible codes (e.g. nz = New Zealand, uk = England and Wales, jp = Japan) Commenting out this field will cause DSpace to select the latest, unported CC license (currently version 4.0). However, as Creative Commons 4.0 does not provide jurisdiction specific licenses, if you specify this setting, your DSpace will continue to use older, Creative Commons 3.0 jurisdiction licenses. |
Property | cc.license.locale |
Example Value: | cc.license.locale = en |
Informational Note: | Locale to be used (in the form: language or language_country), e.g. "en" or "en_US" If no default locale is defined the Creative Commons default locale will be used. |
General Web User Interface Configurations
Property: |
|
Example Value: |
|
Informational Note: | Sets whether to display the contents of the license bundle (often just the deposit license in the standard DSpace installation). UNSUPPORTED in DSpace 7.0 |
Property: |
|
Example Value: |
|
Informational Note: | This property sets the maximum width of generated thumbnails that are being displayed on item pages. |
Property: |
|
Example Value: |
|
Informational Note: | This property sets the maximum height of generated thumbnails that are being displayed on item pages. |
Property: |
|
Example Value: |
|
Informational Note: | This property sets the maximum width for the preview image. Only used for BrandedPreviewJPEGFilter |
Property: |
|
Example Value: |
|
Informational Note: | This property sets the maximum height for the preview image. Only used for BrandedPreviewJPEGFilter |
Property: |
|
Example Value: |
|
Informational Note: | This is the brand text that will appear with the image. Only used for BrandedPreviewJPEGFilter |
Property: |
|
Example Value: |
|
Informational Note: | An abbreviated form of the full Branded Name. This will be used when the preview image cannot fit the normal text. Only used for BrandedPreviewJPEGFilter |
Property: |
|
Example Value: |
|
Informational Note: | The height (in px) of the brand. Only used for BrandedPreviewJPEGFilter |
Property: |
|
Example Value: |
|
Informational Note: | This property sets the font for your Brand text that appears with the image. Only used for BrandedPreviewJPEGFilter |
Property: |
|
Example Value: |
|
Informational Note: | This property sets the font point (size) for your Brand text that appears with the image. Only used for BrandedPreviewJPEGFilter |
Property: |
|
Example Value: |
|
Informational Note: | The Dublin Core field that will display along with the preview. This field is optional. Only used for BrandedPreviewJPEGFilter |
Available in 7.6 or later |
Optionally, you can enable item counts to be displayed in the user interface for every Community and Collection. This uses the same configuration that was in place for DSpace 6 and earlier.
Property: |
|
Example Value: |
|
Informational Note: | When "true" this will display the count of archived items (in the User Interface's browse screens). By default this is "false" (disabled). When enabled, the counts may be counted in real time, or fetched from the cache (see next option). |
Property: |
|
Example Value: |
|
Informational Note: | When showing the strengths (i.e. item counts), should they be counted in real time, or fetched from the cache. Counts fetched in real time will perform an actual count of the index contents every time a page with this feature is requested, which may not scale. If you set the property key is set to cache ("true"), the counts will be cached on first load. |
The browse indexes for DSpace can be extensively configured. These configurations are used by Discovery. This section of the configuration allows you to take control of the indexes you wish to browse, and how you wish to present the results. The configuration is broken into several parts: defining the indexes, defining the fields upon which users can sort results, defining truncation for potentially long fields (e.g. authors), setting cross-links between different browse contexts (e.g. from an author's name to a complete list of their items), how many recent submissions to display, and configuration for item mapping browse.
Property: |
|
Example Value: |
|
Informational Note: | This is an example of how one "Defines the Indexes". See "Defining the Indexes" in the next sub-section. |
Property: |
|
Example Value: |
|
Informational Note: | This is an example of how one "Defines the Sort Options". See "Defining Sort Options" in the following sub-section. |
Optionally, you may configure a custom implementation use for the Browse DAOs both for read operations (create/update operations are handled by Event Consumers). However, as of DSpace 6, DSpace only includes one out-of-the-box option:
|
Property: |
|
Example Value: | browseDAO.class = org.dspace.browse.SolrBrowseDAO |
Informational Note: | This property configures the Java class that is used for READ operations by the Browse System. You need to have Discovery enabled (this is the default since DSpace 4.0) to use the Solr Browse DAOs |
If you make changes in this section be sure to update your SOLR indexes running the Discovery Maintenance Script, see Discovery |
DSpace comes with four default indexes pre-defined: author, title, date issued, and subjects. Users may also define additional indexes or re-configure the current indexes for different levels of specificity. For example, the default entries that appear in the dspace.cfg as default installation:
webui.browse.index.1 = dateissued:item:dateissued webui.browse.index.2 = author:metadata:dc.contributor.*,dc.creator:text webui.browse.index.3 = title:item:title webui.browse.index.4 = subject:metadata:dc.subject.*:text #webui.browse.index.5 = dateaccessioned:item:dateaccessioned |
There are two types of indexes which are provided in this default integration:
item
" indexes which have a format of webui.browse.index.<n> = <index-name> : item : <sort-type> : (asc | desc)
metadata
" indexes which have a format of webui.browse.index.<n>
= <index-name> : metadata :
<comma-separated-list-of-metadata-fields> : (date | text) : (asc |
dec) : <sort-type>
Please notice that the punctuation is paramount in typing this property key in the dspace.cfg
file. The following table explains each element:
Element | Definition and Options (if available) |
---|---|
| n is the index number. The index numbers must start from 1 and increment continuously by 1 thereafter. Deviation from this will cause an error during install or a configuration update. So anytime you add a new browse index, remember to increase the number. (Commented out index numbers may be used over again). |
| The name by which the index will be identified. In order for the DSpace UI to display human-friendly description for this index, you'll need to update the UI's language packs (e.g.
|
| Only two options are available: "
|
| (Only for "metadata" indexes) The schema used for the field to be index. First part of a metadata field name. The default is dc (for Dublin Core). |
| (Only for "metadata" indexes) The schema element. Second part of a metadata field name. In Dublin Core, for example, the author element is referred to as "Contributor". The user should consult the default Dublin Core Metadata Registry table in Appendix A. |
| (Only for "metadata" indexes) This is the qualifier to the <element> component. Third part of a metadata field name. The user has two choices: an asterisk "*" or a proper qualifier of the element. The asterisk is a wildcard and causes DSpace to index all types of the schema element. For example, if you have the element "contributor" and the qualifier "*" then you would index all contributor data regardless of the qualifier. Another example, you have the element "subject" and the qualifier "lcsh" would cause the indexing of only those fields that have the qualifier "lcsh". (This means you would only index Library of Congress Subject Headings and not all data elements that are subjects.) |
| (Optional, should be set for "item" indexes) This refers to the sort type / data type of the field:
|
| (Optional) The default sort order. Choose |
If you make changes in this section be sure to update your SOLR indexes running the Discovery Maintenance Script, see Discovery |
Sort options/types will be available when browsing a list of items (either on "item
" index type above or after selecting a specific value for "metadata" indexes). You can define an arbitrary number of fields to sort on. For example, the default entries that appear in the dspace.cfg as default installation:
webui.itemlist.sort-option.1 = title:dc.title:title webui.itemlist.sort-option.2 = dateissued:dc.date.issued:date webui.itemlist.sort-option.3 = dateaccessioned:dc.date.accessioned:date |
The format of each entry is web.browse.sort-option.<n> =
<sort-type-name>:<schema-prefix>.<element>.<qualifier>:<datatype>
. Please notice the punctuation used between the different elements. The following table explains the each element:
Element | Definition and Options (if available) |
---|---|
| n is an arbitrary number you choose. |
| The name by which the sort option will be identified. This is the name by which it is referred in the "webui.browse.index" settings (see Defining the Indexes). |
| The schema used for the field to be sorted on in the index. The default is dc (for Dublin Core). |
| The schema element. In Dublin Core, for example, the author element is referred to as "Contributor". The user should consult the default Dublin Core Metadata Registry table in Appendix A. |
| This is the qualifier to the <element> component. The user has two choices: an asterisk "*" or a proper qualifier of the element. |
| This refers to the datatype of the field: |
No configuration is necessary for hierarchical browse indexes (Browse by Subject Category). These are automatically generated based on the used controlled vocabularies in your submission forms. Default DSpace has one hierarchical browse index (Browse by Subject Category), since "srsc" is the only vocabulary used in the default submission-forms.xml.
Please note that when using another vocabulary, the UI's language packs (e.g. src/assets/i18n/en.json5) will need to be updated as well, e.g.:
"menu.section.browse_global_by_srsc": "By Subject Category"
"browse.metadata.srsc.breadcrumbs": "Browse by Subject Category"
"browse.comcol.by.srsc": "By Subject Category"
We set other browse values in the following section.
Property: | webui.browse.metadata.show-freq. | |
Example Value: | webui.browse.metadata.show-freq.1 = false | |
Informational Note: | This enable/disable the show of frequencies (count) in metadata browse <n> refers to the browse configuration. As default frequencies are shown for all metadata browse | |
Property: |
| |
Example Value: |
| |
Informational Note: | This sets the option for how the indexes are sorted. All sort normalizations are carried out by the OrderFormatDelegate. The plugin manager can be used to specify your own delegates for each datatype. The default datatypes (and delegates) are:
If you redefine a default datatype here, the configuration will be used in preferences to the default. However, if you do not explicitly redefine a datatype, then the default will still be used in addition to the datatypes you do specify. As of DSpace release 1.5.2, the multi-lingual MARC21 title ordering is configured as default, as shown in the example above. To use the previous title ordering (before release 1.5.2), comment out the configuration in your dspace.cfg file. |
Property: |
|
Example Value: |
|
Informational Note: |
Apart from the single (type=metadata) and full (type=item) browse pages, tag cloud is a new way to display the unique values of a metadata field.
To enable “tag cloud” browsing for a specific index you need to declare it in the dspace.cfg configuration file using the following option:
Property: | webui.browse.index.tagcloud.<n> |
Example Value: | webui.browse.index.tagcloud.1 = true |
Informational Note: | Enable/Disable tag cloud in browsing for a specific index. ‘n’ is the index number of the specific index which needs to be of type ‘metadata’. Possible values: true, false Default value is false. If no option exists for a specific index, it is assumed to be false. You do not have to re-index discovery when you change this configuration UNSUPPORTED in DSpace 7.0 |
Tag cloud configuration
The appearance configuration for the tag cloud is located in the Discovery xml configuration file (dspace/config/spring/api/discovery.xml). Without configuring the appearance, the default one will be applied to the tag cloud
In this file, there must be a bean named “browseTagCloudConfiguration” of class “org.dspace.discovery.configuration.TagCloudConfiguration”. This bean can have any of the following properties. If some is missing, the default value will be applied.
displayScore | Should display the score of each tag next to it? Default: false |
shouldCenter | Should display the tag as center aligned in the page or left aligned? Possible values: true | false. Default: true |
totalTags | How many tags will be shown. Value -1 means all of them. Default: -1 |
cloudCase | The letter case of the tags. Possible values: Case.LOWER | Case.UPPER | Case.CAPITALIZATION | Case.PRESERVE_CASE | Case.CASE_SENSITIVE Default: Case.PRESERVE_CASE |
randomColors | If the 3 css classes of the tag cloud should be independent of score (random=yes) or based on the score. Possible values: true | false . Default: true |
fontFrom | The font size (in em) for the tag with the lowest score. Possible values: any decimal. Default: 1.1 |
fontTo | The font size (in em) for the tag with the lowest score. Possible values: any decimal. Default: 3.2 |
cuttingLevel | The score that tags with lower than that will not appear in the rag cloud. Possible values: any integer from 1 to infinity. Default: 0 |
ordering | The ordering of the tags (based either on the name or the score of the tag) Possible values: Tag.NameComparatorAsc | Tag.NameComparatorDesc | Tag.ScoreComparatorAsc | Tag.ScoreComparatorDesc Default: Tag.GreekNameComparatorAsc |
When tagCloud is rendered there are some CSS classes that you can change in order to change the tagcloud appearance.
Class | Note |
---|---|
tagcloud | General class for the whole tagcloud |
tagcloud_1 | Specific tag class for tag of type 1 (based on score) |
tagcloud_2 | Specific tag class for tag of type 2 (based on score) |
tagcloud_3 | Specific tag class for tag of type 3 (based on score) |
We can define which fields link to other browse listings. This is useful, for example, to link an author's name to a list of just that author's items. The effect this has is to create links to browse views for the item clicked on. If it is a "single" type, it will link to a view of all the items which share that metadata element in common (i.e. all the papers by a single author). If it is a "full" type, it will link to a view of the standard full browse page, starting with the value of the link clicked on.
Property: |
|
Example Value: |
|
Informational Note: | This is used to configure which fields should link to other browse listings. This should be associated with the name of one of the browse indexes ( |
The format of the property key is webui.browse.link.<n> = <index name>:<display column metadata> Please notice the punctuation used between the elements.
Element | Definition and Options (if available) |
---|---|
| {{n is an arbitrary number you choose |
| This need to match your entry for the index name from webui.browse.index property key. |
| Use the DC element (and qualifier) |
Examples of some browse links used in a real DSpace installation instance:
|
|
|
Property: |
(property key broken up for display purposes only) | |
Example Value: |
| |
Informational Note: | It is possible include contextual information in the submission license using substitution variables. The text substitution is driven by a plugin implementation. |
Supported as of 7.3 and above. |
Please note that Syndication (RSS/Atom) feeds require that OpenSearch is enabled to function. When enabled, a syndication feed will be available on the DSpace homepage (for entire site), and on each community/collection homepage (specific to that community/collection). Because Syndication Feeds use OpenSearch, all OpenSearch settings also apply to Syndication Feeds.
Property: |
| |
Example Value: |
| |
Informational Note: | By default, OpenSearch & Syndication feeds are set to true (on) . Change key to "false" to disable. NOTE this setting affects OpenSearch Support as well | |
Property: |
| |
Example Value: |
| |
Informational Note: | By default, (set to false), URLs returned by the feed will point at the global handle resolver (e.g. http://hdl.handle.net/123456789/1). If set to true the local server URLs are used (e.g. http://myserver.myorg/handle/123456789/1). | |
Property: |
| |
Example Value: |
| |
Informational Note: | This property customizes each single-value field displayed in the feed information for each item. Each of the fields takes a single metadata field. The form of the key is <scheme prefix>.<element>.<qualifier> In place of the qualifier, one may leave it blank to exclude any qualifiers or use the wildcard "*" to include all qualifiers for a particular element. | |
Property: |
| |
Example Value: |
| |
Informational Note: | This property customizes each single-value field displayed in the feed information for each item. Each of the fields takes a single metadata field. The form of the key is <scheme prefix>.<element>.<qualifier> In place of the qualifier, one may leave it blank to exclude any qualifiers or use the wildcard "*" to include all qualifiers for a particular element. | |
Property: |
| |
Example Value: |
| |
Informational Note: | One can customize the metadata fields to show in the feed for each item's description. Elements are displayed in the order they are specified in dspace.cfg.Like other property keys, the format of this property key is: webui.feed.item.description = <scheme prefix>.<element>.<qualifier>. In place of the qualifier, one may leave it blank to exclude any qualifiers or use the wildcard "*" to include all qualifiers for a particular element. | |
Property: |
| |
Example Value: |
| |
Informational Note: | The name of field to use for authors (Atom only); repeatable. | |
Property: |
| |
Example Value: |
| |
Informational Note: | Customize the image icon included with the site-wide feeds. This must be an absolute URL. | |
Property: |
| |
Example Value: |
| |
Informational Note: | This optional property adds structured DC elements as XML elements to the feed description. They are not the same thing as, for example, webui.feed.item.description. Useful when a program or stylesheet will be transforming a feed and wants separate author, description, date, etc. | |
Property: |
| |
Example Value: |
| |
Informational Note: | This optional property adds structured DC elements as XML elements to the feed description. They are not the same thing as, for example, webui.feed.item.description. Useful when a program or stylesheet will be transforming a feed and wants separate author, description, date, etc. | |
Property: |
| |
Example Value: |
| |
Informational Note: | This optional property adds structured DC elements as XML elements to the feed description. They are not the same thing as, for example, webui.feed.item.description. Useful when a program or stylesheet will be transforming a feed and wants separate author, description, date, etc. | |
Property: |
| |
Example Value: |
| |
Informational Note: | This optional property enables Podcast Support on the RSS feed for the specified collection handles. The podcast is iTunes compatible and will expose the bitstreams in the items for viewing and download by the podcast reader. Multiple values are separated by commas. For more on using/enabling Media RSS Feeds to share content via iTunesU, see: Enable Media RSS Feeds | |
Property: |
| |
Example Value: |
| |
Informational Note: | This optional property enables Podcast Support on the RSS feed for the specified community handles. The podcast is iTunes compatible and will expose the bitstreams in the items for viewing and download by the podcast reader. Multiple values are separated by commas. For more on using/enabling Media RSS Feeds to share content via iTunesU, see: Enable Media RSS Feeds | |
Property: |
| |
Example Value: |
| |
Informational Note: | This optional property for Podcast Support, allows you to choose which MIME types of bitstreams are to be enclosed in the podcast feed. Multiple values are separated by commas. For more on using/enabling Media RSS Feeds to share content via iTunesU, see: Enable Media RSS Feeds | |
Property: |
| |
Example Value: |
| |
Informational Note: | This optional property for the Podcast Support will allow you to use a value for a metadata field as a replacement for actual bitstreams to be enclosed in the RSS feed. A use case for specifying the external sourceuri would be if you have a non-DSpace media streaming server that has a copy of your media file that you would prefer to have the media streamed from. For more on using/enabling Media RSS Feeds to share content via iTunesU, see: Enable Media RSS Feeds |
OpenSearch is a small set of conventions and documents for describing and using "search engines", meaning any service that returns a set of results for a query. See extensive description in the Business Layer section of the documentation.
Please note that RSS/Atom feeds require that OpenSearch is enabled to function.
OpenSearch uses all the configuration properties for DSpace RSS to determine the mapping of metadata fields to feed fields. Note that a new field for authors has been added (used in Atom format only).
Property: |
|
Example Value: |
|
Informational Note: | Whether or not OpenSearch is enabled. By default, the feature is enabled to support RSS/Atom feeds. Change to "false" to disable. |
Property: | websvc.opensearch.svccontext |
Example Value: | websvc.opensearch.svccontext = opensearch |
Informational Note: | The URL path where OpenSearch is made available on the backend. For example, "opensearch" means it is available at ${dspace.server.url}/opensearch |
Property: |
|
Example Value: |
|
Informational Note: | Context for HTML request URLs. Change only for non-standard servlet mapping. |
Property: |
|
Example Value: |
|
Informational Note: | Present autodiscovery link in every page head. |
Property: |
|
Example Value: |
|
Informational Note: | Number of hours to retain results before recalculating. This applies to the Manakin interface only. |
Property: |
|
Example Value: |
|
Informational Note: | A short name used in browsers for search service. It should be sixteen (16) or fewer characters. |
Property: |
|
Example Value: |
|
Informational Note: | A longer name up to 48 characters. |
Property: |
|
Example Value: |
|
Informational Note: |
|
Property: |
|
Example Value: |
|
Informational Note: | Location of favicon for service, if any. They must by 16 x 16 pixels. You can provide your own local favicon instead of the default. |
Property: |
|
Example Value: |
|
Informational Note: | Sample query. This should return results. You can replace the sample query with search terms that should actually yield results in your repository. |
Property: |
|
Example Value: |
|
Informational Note: | Tags used to describe search service. |
Property: |
|
Example Value: |
|
Informational Note: | Result formats offered. Use one or more comma-separated from the list: html, atom, rss. Please note that html is required for auto discovery in browsers to function, and must be the first in the list if present. |
The following configuration is used to change the disposition behavior of the browser. That is, when the browser will attempt to open the file or download it to the user-specified location. For example, the default size is 8MB. When an item being viewed is larger than 8MB, the browser will download the file to the desktop (or wherever you have it set to download) and the user will have to open it manually.
Property: |
|
Example value: |
|
Informational Note: | The default value is set to 8MB. This property key applies to the REST API. |
Other values are possible:
4 MB = 41943048 MB = 838860816 MB = 16777216
The setting is used to configure the "depth" of request for html documents bearing the same name.
Property: |
|
Example Value: |
|
Informational Note: | When serving up composite HTML items in the UI, how deep can the request be for us to serve up a file with the same name? For example, if one receives a request for "foo/bar/index.html" and one has a bitstream called just "index.html", DSpace will serve up the former bitstream (foo/bar/index.html) for the request if webui.html.max-depth-guess is 2 or greater. If webui.html.max-depth-guess is 1 or less, then DSpace would not serve that bitstream, as the depth of the file is greater. If webui.html.max-depth-guess is zero, the request filename and path must always exactly match the bitstream name. The default is set to 3. UNSUPPORTED IN DSpace 7.0 |
To aid web crawlers index the content within your repository, you can make use of sitemaps. For best SEO, Sitemaps are enabled by default and update automatically (see cron setting).
Property: |
|
Example Value: |
|
Informational Note: | The directory where the generate sitemaps are stored. |
Property: |
|
Example Value: | sitemap.engineurls = http://www.google.com/webmasters/sitemaps/ping?sitemap= |
Informational Note: | Comma-separated list of search engine URLs to "ping" when a new Sitemap has been created. Include everything except the Sitemap UL itself (which will be URL-encoded and appended to form the actual URL "pinged").Add the following to the above parameter if you have an application ID with Yahoo: http://search.yahooapis.com/SiteExplorererService/V1/updateNotification?appid=REPLACE_ME?url=_ . (Replace the component _REPLACE_ME with your application ID). There is no known "ping" URL for MSN/Live search. |
Property: | sitemap.cron |
Example Value: | sitemap.cron = 0 15 1 * * ? |
Informational Note: | The DSpace sitemaps are regenerated on a regular basis based on the Cron syntax provided in this configuration. By default, sitemaps are updated daily at 1:15am local time. Cron syntax is defined at https://www.quartz-scheduler.org/api/2.3.0/org/quartz/CronTrigger.html Remove (comment out) this config to disable the sitemap scheduler. Sitemap scheduler can also be disabled by setting to "-" (single dash) in local.cfg. |
Two features fall under the header of Authority Control: Choice Management and Authority Control of Item ("DC") metadata values. Authority control is a fully optional feature in DSpace 1.6. Implemented out of the box are the Library of Congress Names service, and the Sherpa Romeo authority plugin.
For an in-depth description of this feature, please consult: Authority Control of Metadata Values
Property: |
| |
Example Value: |
| |
Informational Note: | List of all enabled authority control plugins | |
Property: |
| |
Example Value: |
| |
Property: |
| |
Example Value: |
| |
Informational Note: | Location (URL) of the Library of Congress Name Service | |
Property: |
| |
Informational Note: | Please refers to the Sherpa/RoMEO Publishers Policy Database Integration section for details about such properties. See Configuring the Sherpa/RoMEO Publishers Policy Database Integration | |
Property: |
| |
Example Value: | orcid.api.url = https://pub.orcid.org/v3.0 | |
Informational Note: | Location (URL) of the ORCID v3 Public API | |
Property: |
| |
Example Value: |
| |
Informational Note: | This sets the default lowest confidence level at which a metadata value is included in an authority-controlled browse (and search) index. It is a symbolic keyword, one of the following values (listed in descending order): accepted, uncertain, ambiguous, notfound, failed, rejected, novalue, unset. See |
See Multilingual Support for more details/examples.
Property: |
|
Example Value: |
|
Informational Note: | The default language for the application is set with this property key. This is a locale according to i18n and might consist of country, country_language or country_language_variant. If no default locale is defined, then the server default locale will be used. The format of a local specifier is described here: http://java.sun.com/j2se/1.4.2/docs/api/java/util/Locale.html |
Property: |
|
Example Value: |
|
|
|
Informational Note: | All the locales that are supported by this instance of DSpace. Comma separated list. However, the DSpace 7 UI has a similar "languages" setting in environment.*.ts |
The table above, if needed and is used will result in:
If you set webui.supported.locales make sure that all the related additional files for each language are available. LOCALE should correspond to the locale set in webui.supported.locales, e. g.: for webui.supported.locales = en, de, fr, there should be:
[dspace-source]/dspace/modules/server/src/main/resources/Messages.properties
[dspace-source]/dspace/modules/server/src/main/resources/Messages_en.properties
[dspace-source]/dspace/modules/server/src/main/resources/Messages_de.properties
[dspace-source]/dspace/modules/server/src/main/resources/Messages_fr.properties
[dspace-source]/dspace/modules/server/src/main/resources/Messages_LOCALE.properties
[dspace-source]/dspace/config/submission-forms_LOCALE.xml
[dspace-source]/dspace/config/default_LOCALE.license - should be pure ASCII
[dspace-source]/dspace/config/emails/change_password_LOCALE
[dspace-source]/dspace/config/emails/feedback_LOCALE
[dspace-source]/dspace/config/emails/internal_error_LOCALE
[dspace-source]/dspace/config/emails/register_LOCALE
[dspace-source]/dspace/config/emails/submit_archive_LOCALE
[dspace-source]/dspace/config/emails/submit_reject_LOCALE
[dspace-source]/dspace/config/emails/submit_task_LOCALE
[dspace-source]/dspace/config/emails/subscription_LOCALE
[dspace-source]/dspace/config/emails/suggest_LOCALE
Property: |
|
Example Value: |
|
Informational Note: | This property sets where DSpace temporarily stores uploaded files. |
SFX Server is an OpenURL Resolver.
Property: |
|
Example Value: |
|
| |
Informational Note: | SFX query is appended to this URL. If this property is commented out or omitted, SFX support is switched off. |
All the parameters mapping are defined in [dspace]/config/sfx.xml
file. The program will check the parameters in sfx.xml
and retrieve the correct metadata of the item. It will then parse the string to your resolver.
For the following example, the program will search the first query-pair which is DOI of the item. If there is a DOI for that item, your retrieval results will be, for example: http://researchspace.auckland.ac.nz/handle/2292/5763
Example. For setting DOI in sfx.xml
<query-pairs> <field> <querystring>rft_id=info:doi/</querystring> <dc-schema>dc</dc-schema> <dc-element>identifier</dc-element> <dc-qualifier>doi</dc-qualifier> </field> </query-pairs> |
If there is no DOI for that item, it will search next query-pair based on the [dspace]/config/sfx.xml
and then so on.
Example of using ISSN, volume, issue for item without DOI[http://researchspace.auckland.ac.nz/handle/2292/4947]
For parameter passing to the <querystring>
<querystring>rft_id=info:doi/</querystring> |
Please refer to these:[http://ocoins.info/cobgbook.html]
[http://ocoins.info/cobg.html]
Program assume won't get empty string for the item, as there will at least author, title for the item to pass to the resolver.
For contributor author, program maintains original DSpace SFX function of extracting author's first and last name.
<field> <querystring>rft.aulast=</querystring> <dc-schema>dc</dc-schema> <dc-element>contributor</dc-element> <dc-qualifier>author</dc-qualifier> </field> <field> <querystring>rft.aufirst=</querystring> <dc-schema>dc</dc-schema> <dc-element>contributor</dc-element> <dc-qualifier>author</dc-qualifier> </field> |
DSpace now supports controlled vocabularies to confine the set of keywords that users can use while describing items.
The need for a limited set of keywords is important since it eliminates the ambiguity of a free description system, consequently simplifying the task of finding specific items of information.
The controlled vocabulary add-on allows the user to choose from a defined set of keywords organized in an tree (taxonomy) and then use these keywords to describe items while they are being submitted.
We have also developed a small search engine that displays the classification tree (or taxonomy) allowing the user to select the branches that best describe the information that he/she seeks.
The taxonomies are described in XML following this (very simple) structure:
<node id="acmccs98" label="ACMCCS98"> <isComposedBy> <node id="A." label="General Literature"> <isComposedBy> <node id="A.0" label="GENERAL"/> <node id="A.1" label="INTRODUCTORY AND SURVEY"/> </isComposedBy> </node> </isComposedBy> </node> |
You are free to use any application you want to create your controlled vocabularies. A simple text editor should be enough for small projects. Bigger projects will require more complex tools. You may use Protegé to create your taxonomies, save them as OWL and then use a XML Stylesheet (XSLT) to transform your documents to the appropriate format. Future enhancements to this add-on should make it compatible with standard schemas such as OWL or RDF.
New vocabularies should be placed in [dspace]/config/controlled-vocabularies/
and must be according to the structure described. A validation XML Schema (named controlledvocabulary.xsd
) is also available in that directory.
Vocabularies need to be associated with the correspondent DC metadata fields. Edit the file [dspace]/config/input-forms.xml
and place a "vocabulary" tag under the "field" element that you want to control. Set value of the "vocabulary" element to the name of the file that contains the vocabulary, leaving out the extension (the add-on will only load files with extension "*.xml"). For example:
<field> <dc-schema>dc</dc-schema> <dc-element>subject</dc-element> <dc-qualifier></dc-qualifier> <!-- An input-type of twobox MUST be marked as repeatable --> <repeatable>true</repeatable> <label>Subject Keywords</label> <input-type>twobox</input-type> <hint> Enter appropriate subject keywords or phrases below. </hint> <required></required> <vocabulary [closed="false"]>nsi</vocabulary> </field> |
The vocabulary element has an optional boolean attribute closed that can be used to force input only with the JavaScript of controlled-vocabulary add-on. The default behavior (i.e. without this attribute) is as set closed="false". This allow the user also to enter the value in free way.
The following vocabularies are currently available by default:
The following section explains how to configure either optional features or advanced features that are not necessary to make DSpace "out-of-the-box"
The [dspace]/config/registries directory contains three XML files. These are used to load the initial contents of the Dublin Core Metadata registry and Bitstream Format registry and SWORD metadata registry. After the initial loading (performed by ant fresh_install above), the registries reside in the database; the XML files are not updated.
In order to change the registries, you may adjust the XML files before the first installation of DSpace. On an already running instance it is recommended to change bitstream registries via DSpace admin UI, but the metadata registries can be loaded again at any time from the XML files without difficulty. The changes made via admin UI are not reflected in the XML files.
The default metadata schema is Dublin Core, so DSpace is distributed with a default Dublin Core Metadata Registry. Currently, the system requires that every item have a Dublin Core record.
There is a set of Dublin Core Elements, which is used by the system and should not be removed or moved to another schema. See Appendix: Default Dublin Core Metadata registry.
Note: altering a Metadata Registry has no effect on corresponding parts, e.g. item submission interface, item display, item import and vice versa. Every metadata element used in submission interface or item import must be registered before using it.
Note also that deleting a metadata element will delete all its corresponding values.
If you wish to add more metadata elements, you can do this in one of two ways. Via the DSpace admin UI you may define new metadata elements in the different available schemas. But you may also modify the XML file (or provide an additional one), and re-import the data as follows:
[dspace]/bin/dspace registry-loader -metadata [xml file] |
The XML file should be structured as follows:
<dspace-dc-types> <dc-type> <schema>dc</schema> <element>contributor</element> <qualifier>advisor</qualifier> <scope_note>Use primarily for thesis advisor.</scope_note> </dc-type> </dspace-dc-types> |
The set of metadata registry files which is read by the MetadataImporter tool is configured by the metadata.registry.load
property in dspace.cfg
or local.cfg
. If you wish to use the importer to load a new metadata namespace from a new file, you will need to add the path to your new registry file as an additional value of this property before running the tool.
The bitstream formats recognized by the system and levels of support are similarly stored in the bitstream format registry. This can also be edited at install-time via [dspace]/config/registries/bitstream-formats.xml or by the administration Web UI. The contents of the bitstream format registry are entirely up to you, though the system requires that the following two formats are present:
A usage instrumentation plugin is configured as a Spring bean in the applicationContext.xml for each of the various user interface web applications. It will require the injection of an instance of EventService, which it will use to register itself on the UsageEvent bus. See the configuration file for examples.
More than one such plugin may be configured – each will receive all usage events.
If you wish to write your own, it must extend the abstract class org.dspace.usage.AbstractUsageEventListener.
The Passive plugin is provided as the class org.dspace.usage.PassiveUsageEventListener. It absorbs events without effect, and serves as a simple example of how to write a UsageEvent listener.
The Tab File Logger plugin is provided as the class org.dspace.usage.TabFileUsageEventListener. It writes event records to a file in tab-separated column format. If left unconfigured, it will write to [DSpace]/log/usage-events.tsv
. To specify the file path, provide an absolute path, or a path relative to log.dir, as the value for usageEvent.tabFileLogger.file in dspace.cfg.
DSpace contains a workflow system to review submissions as described in detail as part of the architecture of the business logic layer and in Configurable Workflow. The file [dspace]/config/modules/workflow.cfg contains additional properties to configure details of the workflow system.
The property workflow.reviewer.file-edit
controls whether files may be added/edited/removed during review (set to true) or whether files can be downloaded during review only.
#Allow the reviewers to add/edit/remove files from the submission #When changing this property you might want to alert submitters in the license that reviewers can alter their files workflow.reviewer.file-edit=false |
The workflow system will send notifications on new Items waiting to be reviewed to all EPersons that may resolve those. Tasks can be taken to avoid that two EPersons work on the same task at the same time without knowing from each other. When a EPerson returns a task to the pool without resolving it (by accepting or rejecting the submission), another E-Mail is sent. In case you only want to be notified of completely new tasks entering a step of the workflow system, you may switch off notifications on tasks returned to the pool by setting workflow.notify.returend.tasks to false in config/modules/workflow.cfg as shown below:
# Notify reviewers about tasks returned to the pool workflow.notify.returned.tasks = false |
By default notifications are sent for tasks returned to the pool.
DSpace can often recognize that a given access request comes from a web spider that is indexing your repository. These accesses can be flagged for separate treatment (perhaps exclusion) in usage statistics. This requires patterns to match against incoming requests. These patterns exist in files that you will find in config/spiders
.
In the spiders
directory itself, you will find a number of files provided by iplists.com. These files contain network address patterns which have been discovered to identify a number of known indexing services and other spiders. You can add your own files here if you wish to exclude more addresses that you know of. You will need to include your files' names in the list configured in config/modules/solr-statistics.cfg
. The iplists.com-*.txt
files can be updated using a tool provided by DSpace. See SOLR Statistics for details.
In the spiders
directory you will also find two subdirectories. agents
contains files filled with regular expressions, one per line. An incoming request's User-Agent
header is tested with each expression found in any of these files until an expression matches. If there is a match, the request is marked as being from a spider, otherwise not. domains
similarly contains files filled with regular expressions which are used to test the domain name from which the request comes. You may add your own files of regular expressions to either directory if you wish to test requests with patterns of your own devising.
You can resolve a configuration property name to its value using the command dspace dsprop -p some.property.name
. The output is undecorated and may be suitable for use in scripts.
The dsprop command has these options:
name | argument | meaning |
---|---|---|
--property -p | name | the name of the desired configuration property. This option is required. |
--module -m | name | the name of the module in which the property is found. If omitted, the value of --property is the entire name. If used, the name will be composed as module.property. For example, "-m dspace -p url " will look up the value of dspace.url . |
--raw -r | if used, this prevents the substitution of other property values into the value of the requested property. It is also useful to see all of the propery values when a specific property has an array of values (i.e. the configuration supports specifying multiple values). Otherwise, by default , dsprop may only return the first value in the array. | |
--help -h -? | Display help similar to this table. |