goobi_config.properties
In the configuration file goobi_config.properties
, some fundamental settings are done for Goobi Workflow. The file is usually located at the following file system path:
For example, this configuration file looks as follows:
General
This configuration file has been used in Goobi Workflow for a very long time and therefore contains partly obsolete settings which are supported nowadays only for compatibility reasons. These are marked separately and if necessary describe an alternative how to replace these settings.
Since the settings have been added over a long period of time and are still being added, different naming conventions have always been used in the variable names. Therefore, special attention must be paid to the correct use of upper and lower case as well as underscores and periods in the variable names.
This configuration file contains settings for many different topics. Sometimes it is unavoidable that certain settings fit to several topics and, depending on the application purpose, can also be in different categories. If certain settings cannot be found at the expected place, it is recommended to search the page with the search function of the browser (usually Ctrl+F).
Many settings have default values that are chosen to be useful for most users. Therefore, not all settings need to be specified in the configuration file or can simply be commented out.
Comments are marked with a hash symbol (#
) at the beginning of the line. This is also useful to disable settings.
Data types used
Data types are specified for the settings in this configuration file. Unless otherwise specified, the following values are allowed:
Type | Description |
---|---|
Text | Any text can be specified here. |
Boolean | Here the values 'true' or 'false' can be used to enable or disable a functionality. |
Number | Any integer numbers can be specified here. Comma numbers are not allowed and are not used by any settings so far. If necessary, the setting specifies which range of values can be processed. |
Time | This data type is actually intended for very large numbers and is used for time periods in this configuration file. The usage is described in more detail in the respective settings. |
Basic information about Goobi Workflow
There is some basic information about the installed Goobi Workflow instance and about Goobi in general, specified in the configuration and partially displayed on the login page in the web browser.
Property | Type | Default value | Description |
---|---|---|---|
| Text |
| The URL specified here leads to the general Goobi web page. There you can find more information about Goobi Workflow, the Goobi Viewer and Goobi-to-go. The documentation and the community section are also linked there. |
| Text |
| The name of the software is entered here. It will be displayed on the Goobi Workflow login page. |
| Text | Here you can optionally specify the URL of an associated home page for the currently installed Goobi Workflow instance. | |
| Text | The URL of an associated website for the currently installed Goobi Workflow instance can optionally be specified here. | |
| Boolean |
| This switch indicates whether Goobi Workflow is in development mode. On production systems this value is always |
Directories
Some directory paths can be set in the configuration file. Most of them are specified relative to the Goobi directory. The Goobi directory is usually located in /opt/digiverso/goobi/
.
Some directories contain the text sequence {processtitle}
. This is used in the respective directory names to insert the automatically generated title of a process. This ensures that the corresponding directories are created and used separately for each process.
Property | Type | Default value | Description |
---|---|---|---|
| Text |
| This is the root directory of Goobi. It contains common directories such as |
| text |
| All files of processes are stored in this directory. |
| Text |
| This directory contains information about Goobi users. |
| Text | This directory can be used to write an intermediate result to an XML file when importing Opac data. This is created in the directory specified here under the name | |
| Text |
| Process log files are stored in this directory. **This value replaces the value |
| Text |
| Process log files are stored in this directory. **This value is deprecated and was replaced with |
| Text |
| Files to be uploaded to other systems can be copied to this directory. The directory and all files in it will be deleted after the upload. |
| Boolean |
| This parameter specifies whether more space should be made available on external disks. |
| Text | The "swap" directory is used to have more space available on the current system. The directory is usually located on a network hard disk or an external disk that must be mounted in the operating system before use. To use swapping, | |
| text |
| This directory is used to store the original images for the respective process. |
| Text |
| In this directory additional data for the respective process will be stored. |
| Text |
| Additional resources for the respective process are stored in this directory. |
| Text | This directory contains files that are created during the processing of the process and are to be processed later. | |
| Text | At this point any other | |
| Text |
| This directory is used to store |
| Text |
| This directory contains |
| Text |
| This directory contains |
| Text |
| This directory contains additional files for OCR processing. |
| Text |
| Files for importing processes are stored in this directory. |
| Text |
| Files for exporting processes are stored in this directory. |
| Boolean |
| This value can be set to |
| Boolean |
| This value can be set to |
General user settings
All custom user settings are stored by Goobi Workflow in the internally used database. The settings specified here are relevant for pages where no user is logged in (for example, the login page) and therefore the user-specific settings do not exist. Other settings in this category apply to all users and are not account-specific customizable.
Property | Type | Default value | Description |
---|---|---|---|
| Text | This setting can be used to specify the default language of the Goobi Workflow user interface. This language will be used before a user is logged in and the language set for him/her will be loaded. The language abbreviations of the languages available on the Goobi Workflow instance can be used as language. By default these are | |
| Boolean |
| This switch can be set to |
| Boolean |
| This switch can be used to specify whether profile pictures are used for users. Profile pictures are specified in the user accounts. If this setting is enabled and a user has no profile picture, the Goobi logo will be used by default. |
Minimum password length
Property | Type | Default value | Description |
---|---|---|---|
| Number |
| This value specifies the minimum password length for users. If a length less than 1 is specified, this value is replaced by 1. |
The password length is only checked when creating an account and when changing the own password. Existing passwords that are too short can still be used as long as this value is increased afterwards.
Administrators have the possibility to generate a new random password for users. These are always generated 10 characters longer than the minimum password length.
Additional user permissions
Additional user permissions can be specified. For this purpose, a new entry with the 'userRight' property is made for each added permission. Thus, this value can occur multiple times and will be interpreted as a list by Goobi Workflow.
Property | Type | Default value | Description |
---|---|---|---|
| Text | This setting can be used to add additional user permissions. |
This could look like this
Note: You should not enter user permissions whose name already exists in Goobi Workflow. This can lead to wrong behavior of some functions.
Additional functionalities in the user interface
Goobi Workflow allows some optional functionalities for the user interface in the web browser. For this purpose there are the following switches that can be set to 'true' to enable functionalities:
Property | Type | Default value | Description |
---|---|---|---|
| Boolean |
| This switch can be used to set whether the Intranda web interface is used as user interface. Nowadays this switch is always |
| Boolean |
| This switch sets whether an accessible design is loaded by default (for example on the login page). This is useful if some users depend on the accessible design and the user-specific accessible design is not yet loaded on the login page. |
| Boolean |
| This switch can be set to show statistics on the start page (after login). |
| Boolean |
| This switch can be set if a user should have a button in the user interface to complete steps by himself. |
| Boolean |
| This switch can be set to show extended download buttons for tasks in the task list. |
| Boolean |
| This switch can be set to interpose a confirmation prompt before executing scripts. |
| Boolean |
| This switch can be set to display a button when downloading a process that allows to re-import the process. |
The following setting is used to filter the list of displayed sessions in the session overview. The setting itself can be used multiple times, each time specifying a client name (for example browser name) to be filtered from the session list.
Property | Type | Default value | Description |
---|---|---|---|
| Text | This setting specifies a name of a client which should not be displayed in the session list. |
For example, this looks like this if there are multiple names:
Activate LDAP
The actual LDAP configuration is located in the database used by Goobi Workflow. In this database, there is a data record with numerous setting options for each LDAP group used. Whether LDAP is included can be controlled with the following parameter.
Property | Type | Default value | Description |
---|---|---|---|
| Boolean |
| This value indicates whether an LDAP service should be used. |
Configure truststore
The truststore is used in Goobi Workflow to manage certificates and SSH keys. These can be used, for example, for authentication to the LDAP server or to other servers. To use the truststore, the following values must be configured.
Property | Type | Default value | Description |
---|---|---|---|
| Text | This value specifies where the truststore is located. | |
| Text | This value specifies the password for authentication in the truststore. |
OpenID Connect
Normally, user accounts are stored in the mariadb database managed by Goobi Workflow. Additionally there is the possibility to authenticate users with OpenID accounts.
Property | Type | Default value | Description |
---|---|---|---|
| Boolean |
| Setting this value to |
| Boolean |
| If this value is set to |
| Text | This specifies the API endpoint (URL or URI) used to authenticate the user. Specifying this value also configures the provider of the OpenID service. | |
| Text | Since a second API endpoint is used for logout, it must be explicitly specified here. This endpoint is also specified in the form of a URL or URI. | |
| Text | The issue service of the OpenID provider is configured here. | |
| Text | The JWK service of the OpenID provider is configured here. | |
| Text | This specifies the client id that Goobi Workflow uses against the OpenID service. | |
| Text |
| The value specified here can be set in the user database in the |
| Boolean |
| If this value is set to |
Single Sign On (SSO)
SSO can be used to allow and configure authentication via HTTP headers. This allows or disallows staying logged in to a session in the browser using HTTP header fields.
Property | Type | Default value | Description |
---|---|---|---|
| Boolean |
| Setting this value to |
| Text |
| This value determines where exactly the |
| Text |
| The text specified here will be requested as HTTP header field. The value sent in this field will be read and must match the SSO ID. |
| Boolean |
| If this value is set to |
Set up external users
The following settings can be used to determine whether users with external accounts can be logged in to the system and, if so, how default values should be set that otherwise exist for normal accounts in the database.
Property | Type | Default value | Description |
---|---|---|---|
| Boolean |
| If this value is set to |
| Text | Since external accounts are not assigned to any institution, an alternative institution name for all external accounts can be specified here. | |
| Text | Here you can specify an LDAP group to which users with external accounts should be assigned by default. |
Database settings
In Goobi Workflow it is possible to search for specific terms in processes, tasks and other records. Since the search is handled by the SQL database used in the background, there are some settings available to adapt the search to the needs of each project.
Property | Type | Default value | Description |
---|---|---|---|
| Boolean |
| If this switch is set to |
| Text |
| The search mode can be used to specify how to search the database. If |
| Text |
| This character (or character string) is used as prefix in a database search query in connection with the SQL command |
| Text |
| This character (or character string) is used as suffix in a database search query in connection with the SQL command |
| Text | An SQL index can be used for the search. The name of the index used is specified here. |
For the settings DatabaseLeftTruncationCharacter
and DatabaseRightTruncationCharacter
, %
is specified in each case. This will cause the database search to be performed with SQL as follows (This example is for illustration purposes only and does not work this way in the actual database):
This selects all records in which the search term occurs at any position. For example, if you omit the prefix %
and search for search term%
, you can search at the beginning of a record. This means, for example, that all books beginning with "The" can be searched for. If the prefix and suffix are omitted, only the search term is searched for and all records are selected that exactly match the search term.
To make database searches easier, aliases can be defined to group multiple properties together as one meta-property. For example, when searching for a person, it would be quite time-consuming to search for all authors, publishers, clerks, other persons, etc. For this reason, search terms can be listed and grouped under one name.
Property | Type | Default value | Description |
---|---|---|---|
| Text | This value can be used to specify a comma-separated list of terms to be summarized under the term specified in |
For example, following aliases could be configured:
Processes and process log
The following settings can be used to set the process log and some details for the editing of processes.
Property | Type | Default value | Description |
---|---|---|---|
| Boolean |
| This value can be set to |
| Boolean |
| This value can be set to |
| Boolean |
| This value is set to |
| Boolean |
| This value can be set to |
| Boolean |
| This value is set to |
| Number |
| This value is used as limit for displaying batches and processes. |
| Boolean |
| If this value is set to |
Configuration of jobs
For automatically executed background processes, it is possible to specify when they should be executed. The first three properties in the following list, marked with daily
, are executed every day. The number of milliseconds specified is the time between 0:00 and the time the task is executed. This has the advantage that certain tasks can be executed at night, for example, when the load on the server is low.
The second advantage of this configuration is that the times of day can be set according to the difference between server time and the most used user time of day. This can happen when a server is located in another country (or uses UTC) and employees worldwide from different time zones work together on the server.
If -1 is specified, the corresponding job will be disabled.
The number of milliseconds can be calculated as follows:
One second has 1000 milliseconds
One minute has 60 seconds and thus 60 000 milliseconds
One hour has 60 minutes and thus 3 600 000 milliseconds
One day has 24 hours and thus 86 400 000 milliseconds.
So the given time should be between 0 and 86 400 000 to avoid errors. A few examples:
For 0:00 o'clock 0 is indicated
For 3:00 o'clock (3:00 AM) 3 * 3 600 000 = 10 800 000 is indicated
For 18:30 (6:30 PM), 18 * 3 600 000 + 30 * 60 000 = 66 600 000 is given
For the setting 'goobiAuthorityServerUploadFrequencyInMinutes' a time in minutes is specified.
Property | Type | Default value | Description |
---|---|---|---|
| Time |
| This setting specifies when to backupt the processing of events from the last 24 hours. |
| Time |
| This setting determines when steps are executed for which a delay is enabled. |
| Time |
| This setting determines when the locally managed vocabulary is synchronized with other servers. |
| Time |
| This value is used for requesting the authority server. Server requests are made in the background every n minutes, where n is the number of minutes specified here. For example, if 2 is specified, a request will be made every 2 minutes. |
Downloadable information
In Goobi Workflow, processes, templates, masterpieces and metadata can not only be searched and displayed, but also exported to various file formats and downloaded. Some data from the database are already taken into account by default:
processes.Title
The title of a processprocesses.processesID
The ID of a processprocesses.creationdate
The creation date of a processprocesses.sortHelperImages
The number of images in the processprocesses.sortHelperMetadata
The number of metadata in the processprojects.title
The title of the project in which the process is locatedlog.lastError
The last detected error in the editing of this process
In addition, the downloadAvailableColumn
setting can be used to include other properties in the exported files. For this purpose the mentioned setting can be used multiple times. All matching rows will be read in together by Goobi Workflow and processed as a coherent list.
Property | Type | Default value | Description |
---|---|---|---|
| Text | This specifies exactly one additional table column to be included in the export. |
In each line exactly one table column name from the Goobi database is specified. The following table columns are currently available (Goobi version 22.08):
prozesseeigenschaften.prozesseeigenschaftenID
prozesseeigenschaften.Titel
prozesseeigenschaften.WERT
prozesseeigenschaften.IstObligatorisch
prozesseeigenschaften.DatentypenID
prozesseeigenschaften.Auswahl
prozesseeigenschaften.prozesseID
prozesseeigenschaften.creationDate
prozesseeigenschaften.container
vorlageneigenschaften.vorlageneigenschaftenID
vorlageneigenschaften.Titel
vorlageneigenschaften.WERT
vorlageneigenschaften.IstObligatorisch
vorlageneigenschaften.DatentypenID
vorlageneigenschaften.Auswahl
vorlageneigenschaften.vorlagenID
vorlageneigenschaften.creationDate
vorlageneigenschaften.container
werkstueckeeigenschaften.werkstueckeeigenschaftenID
werkstueckeeigenschaften.Titel
werkstueckeeigenschaften.WERT
werkstueckeeigenschaften.IstObligatorisch
werkstueckeeigenschaften.DatentypenID
werkstueckeeigenschaften.Auswahl
werkstueckeeigenschaften.werkstueckeID
werkstueckeeigenschaften.creationDate
werkstueckeeigenschaften.container
metadata.processid
metadata.name
metadata.value
metadata.print
It should be noted that only the column name is specified in the configuration. Otherwise the columns cannot be found, because the column names specified here are directly composed with the expected table names and searched. This has the side effect that by specifying for example 'Title' the title of processes, the title of templates and the title of masterpieces are taken into account.
For example, the following configuration can be made:
This would result in the following additional table columns being used:
prozesseeigenschaften.Titel
prozesseeigenschaften.DatentypenID
vorlageneigenschaften.Titel
vorlageneigenschaften.DatentypenID
werkstueckeeigenschaften.Titel
werkstueckeeigenschaften.DatentypenID
metadata.name
metadata.value
metadata.print
Success and error messages for tasks
Manual tasks can be either completed successfully or set to error state by users in Goobi. In order to provide more information about the cause and resolution of errors, error and success messages can be pre-configured to be available later as a drop-down menu when completing (or canceling) tasks.
The following examples show how such messages can be used:
Note: Messages cannot be translated automatically and should be specified in a language that is understandable to as many users involved as possible. For international projects, English should be used.
Any number of messages can be specified. The respective drop-down menus are only available if at least one corresponding message is specified. All messages for error descriptions start with the prefix task.error.
. All messages for problem fixes start with the prefix task.solution.
.
After each prefix there is a short text which should be displayed as a dropdown item. Spaces must be escaped in it. After the equal sign follows a detailed description. This will be displayed later in the step details. At the placeholder {}
the additionally specified remark (from the text field below the dropdown menu) will be inserted later.
Scripts
Scripts can be configured to set up the file system. In a Goobi installation there are already suitable scripts included, but they are not set as default values here.
Property | Type | Default value | Description |
---|---|---|---|
| Text | This script can be used to create and set up user directories. Example: | |
| Text | This script can be used to create and set up the metadata directory. Example: | |
| Text | This script can be used to create system links (to other directories or files). Example: | |
| Text | This script can be used to delete system links (to other directories or files). Example: |
Include S3 cloud
Amazon provides a cloud system where data objects can be stored in "buckets". This can be integrated by Goobi Workflow and used to exchange data with other servers.
To use S3, access data from the S3 service used is required. These must be specified in this configuration file.
Property | Type | Default value | Description |
---|---|---|---|
| Boolean |
| This value specifies whether an S3 store should be used. |
| Boolean |
| This value specifies whether the |
| Text | This value specifies a domain name or IP address where the service can be reached. Usually a port number must be specified, for example: | |
| Text | This value specifies the name of the bucket used. | |
| Text | This value specifies the account ID that Goobi uses to access the service. | |
| Text | This value specifies the access key or password that Goobi uses to identify itself for the account used. | |
| Number |
| This value specifies how many times to retry a failed interaction. |
| Number |
| This value specifies how long to wait for a server response when connecting. The value is specified in milliseconds. |
| Number |
| This value specifies how long to wait for a server response when interacting. The value is specified in milliseconds. |
Proxy server settings
A Goobi server can use a proxy server for certain transactions with other servers or clients. By default, no proxy server is configured. To use a proxy server, you must first enable its use.
Property | Type | Default value | Description |
---|---|---|---|
| Boolean |
| This switch is set to |
| Text | This value specifies the URL of the proxy server. | |
| Number |
| This value specifies the port number of the proxy server. |
| Text | Multiple IP addresses or URLs can be specified here to which Goobi connects without a proxy server. For this, this value may occur multiple times with one address each. |
The default values for http_proxyIgnoreHost
are predefined as follows. The list can be extended as needed:
Server and API settings
This category includes some settings that can be used to configure URLs and credentials to specific web services. Settings are also available to determine the behavior of the internal REST API. Especially for URLs, make sure to use the correct protocol (HTTP or HTTPS) and port number if the corresponding server or service uses one other than 80.
Property | Type | Default value | Description |
---|---|---|---|
| Boolean |
| This value can be set to |
| Text | Here, an additional text can be specified that should be used as salt value for encrypting the authentication data for the REST API. | |
| Text | The Goobi Workflow REST API uses a JSON Web Token (JWT) for authentication. This is specified here. To send an authenticated request to the REST API, the token must be specified in the request. | |
| Text | The Goobi URL where the Goobi Workflow Server can be reached on the Internet can be specified here. This URL is only specified for internal purposes and can therefore also be set to | |
| Text | The URL of the plugin server is specified here. The plugin server is also a REST API interface of the Goobi Workflow Server used to offer plugins for download. It is used by the integrated plugin management. | |
| Text | This URL specifies an OCR service used by Goobi Workflow or OCR plugins to perform OCR analysis on a document. | |
| Number |
| This timeout (in milliseconds) specifies the time Goobi Workflow waits for a response from the content server. |
| Text | This specifies the URL of the authority server used to manage vocabulary data. | |
| Text | This specifies the user name used by Goobi Workflow to log in to the Authority server to retrieve vocabulary data. | |
| Text | This specifies the password used by Goobi Workflow to authenticate to the Authority server to retrieve vocabulary data. | |
| Number |
| This specifies the frequency with which Goobi Workflow makes requests to the Authority server. |
| Text | This value contains the authentication information that Goobi Workflow uses to authenticate itself to the Geonames web service for a query. |
Configure message queues
Goobi Workflow uses multiple message queues to communicate with other processes on the same server (localhost) or other servers. ActiveMQ is always used for production use. For development purposes, SQS can be used in some cases. Since the entire constellation and configuration of the message queues is somewhat confusing, all configuration possibilities are documented here for the sake of completeness, even if individual constellations are not used on production systems. In each case, it is indicated which configurations are relevant for a production system.
Message queues used
Goobi Workflow uses one or more slow queues to transmit normal process communication notifications.
There is a fast queue for transmitting particularly small or time-critical information.
An internal DLQ (Dead Letter Queue) is used to catch undeliverable notifications on the same server.
An external DLQ is used to catch undeliverable notifications between multiple servers.
There is a separate queue for commands that can be sent either on the same server or between different servers. These can be executable scripts, for example.
Simple Queue Service (SQS)
In principle, all queues can be operated with ActiveMQ. The external DLQ and the queue for commands have the special feature that they can work either with ActiveMQ or with SQS (Simple Queue Service). As long as ActiveMQ is used for these queues, it is possible to switch between a localhost service and an external service. The localhost service is set with default parameters and does not need to be configured further. If an external service is to be used or other individual configurations are to be made, this is configured in the file goobi_activemq.xml
. The SQS service, on the other hand, is always located on the same server (localhost) and does not need to be configured.
Configuration
Property | Type | Default value | Description |
---|---|---|---|
| Boolean |
| This value is set to |
| Text | goobiFolder + | A configuration file for ActiveMQ can be specified here. In this file also the URL and the port for the communication with other servers are configured. If this property is set and thus the default value is overwritten, an absolute path must be specified. |
| text |
| This setting is used by Spring Framework and specifies the URL (or |
| Number |
| This setting is used by Spring Framework and specifies the port of the ActiveMQ service. |
| Text | This is the account name that Goobi Workflow uses to register with ActiveMQ. | |
| Text | This is the password Goobi Workflow uses to authenticate itself with ActiveMQ. | |
| Number |
| Here you can specify the number of slow message queues. With a higher value more data transmissions can be executed in parallel. A speed advantage arises especially with large amounts of data, if the used server has many processor cores and these are released by the operating system for Goobi or ActiveMQ. |
| Boolean |
| If this setting is set to |
| Text |
| This value can be set to |
| Boolean |
| If the queue service is set to |
Additionally the names of the respective queues can be configured. This is normally not required and is documented here for completeness.
Property | Type | Default value | Description |
---|---|---|---|
| Text |
| This is the queue for fast information exchange of small information units. |
| Text |
| This is the queue (or several) for exchanging larger data packets. |
| Text |
| This is the queue for external communication with other servers. |
| Text |
| This is the queue for non-deliverable information generated by communication with other processes on other servers. |
| Text |
| This is the queue to send commands between servers. |
| Text |
| This is the queue for non-deliverable information that is generated when communicating with other processes on the same server. |
Metadata editor
The metadata editor has many setting options that can be sorted both technically and thematically. As a compromise, and because there is no "one" correct sorting, all settings are sorted by categories, such as "User Interface", "Export", etc. For OCR settings, for example, this means that showing/not showing the OCR button is configured in the "User Interface" section, while technical details about OCR are described in the "Export" section.
General settings
In the General Settings you can find settings concerning the editor itself and default values for new documents.
Property | Type | Default value | Description |
---|---|---|---|
| Boolean |
| This value can be set to |
| Boolean |
| This value can be set to |
| Text |
| This setting can be used to specify the default pagination system. Valid values are |
| Time |
| This value specifies how long a document edited in the metadata editor is reserved for a user and locked for other users. The reservation is set to prevent multiple users from editing a document at the same time and overwriting changes made by other users unnoticed. The reservation is removed as soon as the user saves the document and leaves the metadata editor or the lock time has expired. The lock time is specified in milliseconds, the default value is half an hour and is calculated for example with |
| Boolean |
| This value can be set to |
| Number |
| This value specifies the number of backups of the |
User interface
The "User Interface" category documents settings that can be used to configure the display of content or the display/non-display of buttons.
Property | Type | Default value | Description |
---|---|---|---|
| Boolean |
| This value can be set to |
| Boolean |
| This value can be set to |
| Boolean |
| This value can be set to |
| Boolean |
| This value can be set to |
| Number |
| This value specifies the maximum number of characters to be displayed in names of document structure elements. If a name is longer than the value specified here, only the first characters are displayed according to the maximum length. This value can be set to |