goobi_config.properties
In der Konfigurationsdatei goobi_config.properties
werden einige grundlegende Einstellungen für Goobi Workflow eingestellt. Die Datei befindet sich üblicherweise an folgendem Speicherpfad:
Beispielhaft sieht diese Konfigurationsdatei wie folgt aus:
Allgemeines
Diese Konfigurationsdatei wird schon seit sehr langer Zeit in Goobi Workflow verwendet und beinhaltet daher teilweise veraltete Einstellungen, die heutzutage nur noch aus Kompatibilitätsgründen unterstützt werden. Diese sind gesondert gekennzeichnet und beschreiben gegebenenfalls eine Alternative, wie diese Einstellungen zu ersetzen sind.
Da die Einstellungen über einen langen Zeitraum ergänzt wurden und immer noch werden, haben sich immer wieder andere Namenskonventionen in den Variablennamen bewährt. Daher muss insbesondere auf den richtigen Gebrauch von Groß- und Kleinschreibung sowie Unterstrichen und Punkten in den Variablennamen geachtet werden.
Diese Konfigurationsdatei beinhaltet Einstellungen zu vielen unterschiedlichen Themen. Teilweise lässt es sich nicht vermeiden, dass bestimmte Einstellungen zu mehreren Themen passen und je nach Anwendungszweck auch in verschiedenen Kategorien stehen können. Sollten bestimmte Einstellungen nicht an der erwarteten Stelle wiederzufinden sein, wird empfohlen, mit der Suchfunktion des Browsers (üblicherweise Strg+F) die Seite zu durchsuchen.
Viele Einstellungen haben Standardwerte, die so gewählt sind, dass sie für die meisten Anwender sinnvoll sind. Daher müssen nicht alle Einstellungen in der Konfigurationsdatei angegeben werden oder können einfach auskommentiert werden.
Kommentare werden mit einem Raute-Symbol (#
) am Zeilenanfang markiert. Dies ist auch nützlich, um Einstellungen zu deaktivieren.
Verwendete Datentypen
Für die Einstellungen in dieser Konfigurationsdatei sind Datentypen angegeben. Sofern es nicht anders angegeben ist, sind folgende Werte zulässig:
Basisinformationen über Goobi Workflow
Es gibt einige grundlegende Informationen über die installierte Goobi Workflow-Instanz und über Goobi allgemein, die in der Konfiguration angegeben und teilweise auf der Login-Seite im Webbrowser angezeigt werden.
Verzeichnisse
Es können einige Verzeichnispfade in der Konfigurationsdatei gesetzt werden. Die meisten davon werden relativ zum Goobi-Verzeichnis angegeben. Das Goobi-Verzeichnis befindet sich üblicherweise in /opt/digiverso/goobi/
.
Einige Verzeichnisse beinhalten die Textsequenz {processtitle}
. Diese wird in den jeweiligen Verzeichnisnamen verwendet, um den automatisch generierten Titel eines Vorgangs einzusetzen. Damit wird erreicht, dass die entsprechenden Verzeichnisse für jeden Vorgang separat angelegt und verwendet werden.
Allgemeine Nutzer-Einstellungen
Alle benutzerdefinierten Nutzereinstellungen speichert Goobi Workflow in der intern verwendeten Datenbank. Die hier angegebenen Einstellungen sind für Seiten relevant, auf denen kein Nutzer angemeldet ist (zum Beispiel die Login-Seite) und daher die nutzerspezifischen Einstellungen nicht existieren. Andere Einstellungen in dieser Kategorie gelten für alle Nutzer und sind nicht accountspezifisch anpassbar.
Minimale Passwort-Länge
Die Passwort-Länge wird nur beim Anlegen eines Accounts und beim Ändern des eigenen Passwortes geprüft. Bestehende und zu kurze Passwörter können weiter genutzt werden, sofern dieser Wert im Nachhinein erhöht wird.
Für Administratoren besteht die Möglichkeit, ein neues zufälliges Passwort für Nutzer zu generieren. Diese werden immer 10 Zeichen länger generiert, als es die minimale Passwort-Länge vorgibt.
Weitere Benutzerberechtigungen
Es können weitere Benutzerberechtigungen angegeben werden. Dazu wird für jede hinzugefügte Berechtigung ein neuer Eintrag mit der Eigenschaft userRight
vorgenommen. Somit kann dieser Wert mehrfach vorkommen und wird von Goobi Workflow als Liste interpretiert.
Das kann zum Beispiel so aussehen:
Hinweis: Es sollten keine Benutzerberechtigungen eingetragen werden, deren Bezeichnung bereits in Goobi Workflow existieren. Dies kann zu falschem Verhalten von einigen Funktionen führen.
Zusätzliche Funktionen in der Benutzeroberfläche
Goobi Workflow lässt einige optionale Funktionalitäten für die Benutzeroberfläche im Webbrowser zu. Dafür gibt es folgende Schalter, die auf true
gesetzt werden können, um Funktionalitäten zu aktivieren:
Die folgende Einstellung wird verwendet, um die Liste der angezeigten Sessions in der Session-Übersicht zu filtern. Die Einstellung selbst kann mehrfach verwendet werden, wobei jedes Mal ein Client-Name (zum Beispiel Browser-Name) angegeben wird, der aus der Session-Liste herausgefiltert werden soll.
Das sieht bei mehreren Namen zum Beispiel so aus:
LDAP aktivieren
Die eigentliche LDAP-Konfiguration befindet sich in der von Goobi Workflow verwendeten Datenbank. In dieser gibt es für jede verwendete LDAP-Gruppe einen Datensatz mit zahlreichen Einstellungsmöglichkeiten. Ob LDAP eingebunden wird, ist mit folgendem Parameter steuerbar.
Truststore konfigurieren
Der Truststore wird in Goobi Workflow verwendet, um Zertifikate und SSH-Schlüssel zu verwalten. Diese können zum Beispiel für die Authentifikation am LDAP-Server oder an anderen Servern verwendet werden. Um den Truststore verwenden zu können, ist die Konfiguration folgender Werte erforderlich.
OpenID Connect
Normalerweise werden Benutzeraccounts in der von Goobi Workflow verwalteten mariadb-Datenbank gespeichert. Zusätzlich gibt es die Möglichkeit, Benutzer mit OpenID-Accounts zu authentifizieren.
Single Sign On (SSO)
Mit SSO kann eine Authentifizierung über HTTP-Header zugelassen und konfiguriert werden. Diese erlaubt oder verbietet es, mittels HTTP-Header-Feldern bei einer Sitzung im Browser angemeldet zu bleiben.
Externe Benutzer einrichten
Mit den folgenden Einstellungen kann bestimmt werden, ob Benutzer mit externen Accounts am System angemeldet werden können und wie gegebenenfalls Standardwerte gesetzt werden sollen, die sonst für normale Accounts in der Datenbank existieren.
Datenbank-Einstellungen
In Goobi Workflow kann in Vorgängen, Aufgaben und anderen Datensätzen nach bestimmten Begriffen gesucht werden. Da die Suche von der im Hintergrund verwendeten SQL-Datenbank übernommen wird, stehen einige Einstellungen zur Verfügung, um die Suche an den Bedarf der jeweiligen Projekte anzupassen.
Bei den Einstellungen DatabaseLeftTruncationCharacter
und DatabaseRightTruncationCharacter
wird jeweils %
angegeben. Das führt dazu, dass die Suche in der Datenbank mit SQL wie folgt ausgeführt wird (Dieses Beispiel dient lediglich der Veranschaulichung und funktioniert nicht so in der eigentlichen Datenbank):
Es werden damit also alle Datensätze ausgewählt, in denen der Suchbegriff an beliebiger Stelle vorkommt. Wird zum Beispiel der Präfix %
weggelassen und nach suchbegriff%
gesucht, so kann am Anfang eines Datensatzes gesucht werden. Damit kann zum Beispiel nach allen Büchern gesucht werden, die mit "The" anfangen. Werden Präfix und Suffix weggelassen, so wird nur noch nach dem Suchbegriff gesucht und es werden alle Datensätze ausgewählt, die exakt dem Suchbegriff entsprechen.
Um Datenbanksuchen einfacher zu machen, können Aliasse definiert werden, mit denen mehrere Eigenschaften als eine Metaeigenschaft zusammengefasst werden. Wenn man zum Beispiel nach einer Person sucht, wäre es recht aufwändig, nach allen Autoren, Veröffentlichern, Sachbearbeitern, anderen Personen usw. zu suchen. Aus diesem Grund können Suchbegriffe aufgelistet und unter einem Namen zusammengefasst werden.
Zum Beispiel könnten folgende Aliasse konfiguriert werden:
Vorgänge und Vorgangslog
Mit den folgenden Einstellungen können das Vorgangs-Log und einige Details zur Bearbeitung von Vorgängen eingestellt werden.
Konfiguration von Jobs
Für automatisch ausgeführte Hintergrundprozesse kann angegeben werden, wann diese ausgeführt werden sollen. Die ersten drei Eigenschaften in der folgenden Liste, gekennzeichnet mit daily
, werden jeden Tag ausgeführt. Die angegebene Zahl an Millisekunden ist die Zeit zwischen 0:00 Uhr und dem Zeitpunkt der Ausführung der Aufgabe. Das hat den Vorteil, dass bestimmte Aufgaben zum Beispiel nachts ausgeführt werden können, wenn die Auslastung des Servers gering ist.
Der zweite Vorteil dieser Konfiguration ist, dass die Tageszeiten entsprechend der Differenz zwischen Serverzeit und der meistbenutzten Nutzer-Tageszeit eingestellt werden können. Das kann vorkommen, wenn ein Server in einem anderen Land steht (oder UTC benutzt) und Mitarbeiter weltweit aus verschiedenen Zeitzonen zusammen auf dem Server arbeiten.
Wird -1 angegeben, so wird der entsprechende Job deaktiviert.
Die Anzahl der Millisekunden kann wie folgt berechnet werden:
Eine Sekunde hat 1000 Millisekunden
Eine Minute hat 60 Sekunden und damit 60 000 Millisekunden
Eine Stunde hat 60 Minuten und damit 3 600 000 Millisekunden
Ein Tag hat 24 Stunden und damit 86 400 000 Millisekunden
Der angegebene Zeitpunkt sollte also zwischen 0 und 86 400 000 liegen, um Fehler zu vermeiden. Ein paar Beispiele:
Für 0:00 Uhr wird 0 angegeben
Für 3:00 Uhr (3:00 AM) wird 3 * 3 600 000 = 10 800 000 angegeben
Für 18:30 Uhr (6:30 PM) wird 18 * 3 600 000 + 30 * 60 000 = 66 600 000 angegeben
Für die Einstellung goobiAuthorityServerUploadFrequencyInMinutes
wird eine Zeit in Minuten angegeben.
Herunterladbare Informationen
In Goobi Workflow können Vorgänge, Vorlagen, Werkstücke und Metadaten nicht nur gesucht und angezeigt, sondern auch in verschiedene Dateiformate exportiert und heruntergeladen werden. Dabei werden einige Daten aus der Datenbank standardmäßig bereits berücksichtigt:
prozesse.Titel
Der Titel eines Vorgangsprozesse.ProzesseID
Die ID eines Vorgangsprozesse.erstellungsdatum
Das Erstellungsdatum eines Vorgangsprozesse.sortHelperImages
Die Anzahl an Bildern im Vorgangprozesse.sortHelperMetadata
Die Anzahl an Metadaten im Vorgangprojekte.Titel
Der Titel des Projektes, in dem sich der Vorgang befindetlog.lastError
Der zuletzt erkannte Fehler in der Bearbeitung dieses Vorgangs
Zusätzlich können mit der Einstellung downloadAvailableColumn
weitere Eigenschaften in den exportierten Dateien berücksichtigt werden. Dafür kann die genannte Einstellung mehrfach verwendet werden. Alle passenden Zeilen werden von Goobi Workflow zusammen eingelesen und als zusammenhängende Liste weiterverarbeitet.
In jeder Zeile wird genau ein Tabellen-Spaltenname aus der Goobi-Datenbank angegeben. Zur Verfügung stehen aktuell (Goobi Version 22.08) folgende Tabellenspalten:
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
Zu beachten ist, dass nur der Spaltenname in der Konfiguration angegeben wird. Andernfalls können die Spalten nicht gefunden werden, da die hier angegebenen Spaltennamen direkt mit den erwarteten Tabellennamen zusammengesetzt und gesucht werden. Das hat den Seiteneffekt, dass durch die Angabe von zum Beispiel Titel
der Titel von Vorgängen, der Titel von Vorlagen und der Titel von Werkstücken berücksichtigt werden.
Es kann zum Beispiel folgende Konfiguration vorgenommen werden:
Dies würde dazu führen, dass zusätzlich folgende Tabellenspalten verwendet werden:
prozesseeigenschaften.Titel
prozesseeigenschaften.DatentypenID
vorlageneigenschaften.Titel
vorlageneigenschaften.DatentypenID
werkstueckeeigenschaften.Titel
werkstueckeeigenschaften.DatentypenID
metadata.name
metadata.value
metadata.print
Erfolgs- und Fehlermeldungen für Aufgaben
Manuelle Aufgaben können von Benutzern in Goobi entweder erfolgreich abgeschlossen oder in den Fehlerzustand versetzt werden. Um mehr Informationen über die Ursache und die Behebung von Fehlern zur Verfügung zu stellen, können Fehler- und Erfolgsmeldungen vorkonfiguriert werden, die später beim Abschließen (oder Abbrechen) von Aufgaben als Dropdown-Menü zur Verfügung stehen sollen.
Folgende Beispiele zeigen, wie solche Meldungen verwendet werden können:
Hinweis: Die Meldungen können nicht automatisch übersetzt werden und sollten in einer Sprache angegeben werden, die für möglichst alle beteiligten Nutzer verständlich ist. Bei internationalen Projekten sollte Englisch verwendet werden.
Es können beliebig viele Meldungen angegeben werden. Die jeweiligen Dropdown-Menüs stehen nur zur Verfügung, wenn mindestens eine entsprechende Meldung angegeben ist. Alle Meldungen für Fehlerbeschreibungen beginnen mit dem Präfix task.error.
. Alle Meldungen für Problembehebungen beginnen mit dem Präfix task.solution.
.
Nach dem jeweiligen Präfix kommt ein kurzer Text, der als Dropdown-Item angezeigt werden soll. Leerzeichen müssen darin escaped werden. Nach dem Gleichheitszeichen folgt eine ausführliche Beschreibung. Diese wird später in den Schritt-Details angezeigt. An dem Platzhalter {}
wird später die zusätzlich angegebene Bemerkung (aus dem Textfeld unterhalb des Dropdown-Menüs) eingesetzt.
Scripts
Es können Scripts zum Einrichten des Dateisystems konfiguriert werden. In einer Goobi Installation sind bereits passende Scripts enthalten, diese sind hier allerdings nicht als Standardwerte gesetzt.
S3 Cloud einbinden
Amazon stellt ein Cloud-System zur Verfügung, in dem Datenobjekte in "Buckets" gespeichert werden können. Dieses kann von Goobi Workflow eingebunden und zum Austausch von Daten mit anderen Servern verwendet werden.
Für die Nutzung von S3 sind Zugangsdaten vom verwendeten S3-Service erforderlich. Diese müssen in dieser Konfigurationsdatei angegeben werden.
Proxy-Server-Einstellungen
Ein Goobi Server kann für bestimmte Transaktionen mit anderen Servern oder Clients einen Proxy-Server verwenden. Standardmäßig ist kein Proxy-Server konfiguriert. Um einen Proxy-Server verwenden zu können, muss zunächst die Verwendung aktiviert werden.
Die Standardwerte für http_proxyIgnoreHost
sind wie folgt vordefiniert. Die Liste kann je Bedarf ergänzt werden.
Server- und API-Einstellungen
Diese Kategorie umfasst einige Einstellungen, mit denen URLs und Zugangsdaten zu bestimmten Webservices konfiguriert werden können. Außerdem sind Einstellungen verfügbar, mit denen das Verhalten der internen REST-API bestimmt werden kann. Insbesondere bei URL-Angaben ist auf das richtige Protokoll (HTTP oder HTTPS) und auf die Port-Nummer zu achten, sofern der entsprechende Server bzw. Service eine andere als 80 verwendet.
Message Queues konfigurieren
Goobi Workflow verwendet mehrere Message Queues, um mit anderen Prozessen auf dem selben Server (localhost) oder anderen Servern zu kommunizieren. Dabei wird im Produktiveinsatz immer ActiveMQ verwendet. Zu Entwicklungszwecken kann teilweise SQS verwendet werden. Da die gesamte Konstellation und Konfiguration der Message Queues etwas unübersichtlich ist, sind hier der Vollständigkeit halber alle Konfigurationsmöglichkeiten dokumentiert, auch wenn einzelne Konstellationen nicht auf Produktivsystemen zum Einsatz kommen. Es ist jeweils angegeben, welche Konfigurationen für ein Produktivsystem relevant sind.
Verwendete Message Queues
Goobi Workflow verwendet eine oder mehrere langsame Queues zur Übertragung von normalen Benachrichtigungen im Bereich der Prozesskommunikation.
Es gibt eine schnelle Queue zum Übertragen von besonders kleinen bzw. zeitlich kritischen Informationen.
Eine interne DLQ (Dead Letter Queue) wird verwendet, um nicht zustellbare Benachrichtigungen auf dem selben Server aufzufangen.
Eine externe DLQ wird verwendet, um nicht zustellbare Benachrichtigungen zwischen mehreren Servern aufzufangen.
Es gibt eine eigene Queue für Befehle, die entweder auf dem selben Server oder zwischen verschiedenen Servern verschickt werden können. Das können zum Beispiel ausführbare Scripts sein.
Simple Queue Service (SQS)
Grundsäzlich können alle Queues mit ActiveMQ betrieben werden. Die externe DLQ und die Queue für Befehle haben die Besonderheit, dass sie entweder mit ActiveMQ oder mit SQS (Simple Queue Service) funktionieren können. Solange für diese Queues ActiveMQ verwendet wird, kann zwischen einem localhost-Service und einem externen Service umgeschaltet werden. Der localhost-Service ist mit Standardparametern belegt und muss nicht weiter konfiguriert werden. Soll ein externer Service verwendet werden oder andere individuelle Konfigurationen vorgenommen werden, so wird dies in der Datei goobi_activemq.xml
konfiguriert. Der SQS-Service hingegen befindet sich immer auf dem selben Server (localhost) und muss nicht konfiguriert werden.
Konfiguration
Es können zusätzlich die Namen der jeweiligen Queues konfiguriert werden. Dies ist normalerweise nicht erforderlich und ist hier der Vollständigkeit halber dokumentiert.
Metadateneditor
Der Metadateneditor hat viele Einstellungsmöglichkeiten, die sich sowohl technisch, als auch thematisch sortieren lassen können. Als Kompromiss, und weil es nicht "die" richtige Sortierung gibt, sind alle Einstellungen nach Kategorien, wie zum Beispiel "Benutzeroberfläche", "Export", usw. sortiert. Für OCR-Einstellungen heißt das zum Beispiel, dass das Anzeigen/Nicht Anzeigen des OCR-Buttons im Bereich "Benutzeroberfläche" konfiguriert wird, während technische Details zum OCR im Bereich "Export" beschrieben sind.
Allgemeine Einstellungen
In den Allgemeinen Einstellungen sind Einstellungen zu finden, die den Editor selbst und Standardwerte für neue Dokumente betreffen.
Benutzeroberfläche
In der Kategorie "Benutzeroberfläche" sind Einstellungen dokumentiert, mit denen die Darstellung von Inhalten oder die Anzeige/Nicht-Anzeige von Buttons konfiguriert werden kann.
Bilddateien und Vorschaubilder
In dieser Kategorie sind Einstellungen für Bilddateien, Vorschaubilder, die Darstellung von Bildern und das Tiling (Kachelung) von Bildern in der Benutzeroberfläche dokumentiert.
Die maximale Größe von Bilddateien (in Bytes) wird mit zwei unabhängig konfigurierbaren Werten definiert. Mit dem Wert MaxImageFileSize
wird eine Zahl angegeben, wie zum Beispiel 1
, 5
oder 10
. Mit dem zusätzlichen Wert MaxImageFileSizeUnit
wird die Maßeinheit angegeben. Diese in Kombination ergeben die Maximale Anzahl an Bytes, die eine Bilddatei nicht überschreiten darf. Wichtig: Es können nur ganze Zahlen verwendet werden.
Da es viele missverständliche Maßeinheiten gibt, sind in der folgenden Tabelle alle akzeptierten Werte und ihre intern verwendeten numerischen Werte angegeben.
Damit können zum Beispiel folgende Einstellungen vorgenommen werden:
oder
Mit den folgenden Werten können Informationen zu unterstützten Bild- und Kachel-Größen (Tile-Größen) für JSON-API-Anfragen konfiguriert werden. Mit der folgenden API-Anfrage können diese Informationen zu Bildern aus Vorgängen abgefragt werden:
Dabei können alle Werte mehrfach verwendet werden und mehrere Werte in der API-Anfrage zurückgeben.
Eine Konfiguration könnte zum Beispiel wie folgt aussehen:
Beim Abschließen von Schritten werden verschiedene interne Datenüberprüfungen vorgenommen. Unter anderem wird die Anzahl an vorhandenen und bearbeiteten Bilddateien überprüft. Mit dem Wert historyImageSuffix
können ein oder mehrere Dateitypen angegeben werden, die für diese Zählung berücksichtigt werden.
Diese Einstellung wird zwar für Dateiendungen verwendet und kann auch allgemeine Texte beinhalten, mit denen ein Dateiname enden soll, es werden allerdings keine regulären Ausdrücke interpretiert.
Sollen zum Beispiel alle *.tif
, *.jpg
und *.jpeg
-Dateien berücksichtigt werden, so könnte folgende Liste zusammengestellt werden:
Validierung
Diese Kategorie beinhaltet Einstellungen zur Validierung von Vorgängen, Bilddateien und Metadaten.
Export
In dieser Kategorie werden Einstellungen beschrieben, die den Export von Vorgängen in herunterladbare oder auf dem Server zwischenspeicherbare Dateien mitbeeinflussen.
Zuletzt aktualisiert