Konfiguration von Scope

Die Konfiguration erlaubt das Setzen und Ändern unterschiedlicher Konfigurationsparameter für den Server bzw. die Scope-Welt. Sie findet sich für Admin-User direkt im Admin-Panel.

Sprache

Standard-Sprache (Server)
defaultServerLocale = [ de_DE | en_US | en_GB ]
Die Standardsprache des Servers.
Standard-Sprache (Client)
defaultUserLocale = [ de_DE | en_US | en_GB ]
Setzt die Standardsprache der Web-Oberfläche. Die Einstellung wirkt sich nur auf neue Anwender aus. Jeder Nutzer hat im Client jederzeit die Möglichkeit, die verwendete Sprache selbst einzustellen.
Standard-Zeitzone
defaultServerTimeZone = Europe/Berlin
Die Standard-Zeitzone des Servers für die Darstellung von Datum und Zeit (siehe  Date-Felder).
Liste der Zeitzonen
Suchansicht
search.view = [ normal | extended ]
Die normale Ansicht ist ein einfaches Eingabefeld für den Suchtext. Die erweiterte Ansicht setzt konfigurierte Facettensuchen bei einem oder mehreren Elementtypen voraus. Dann bietet sich dem Anwender eine einfache Möglichkeit, in einzelnen Feldern zu suchen.
Suchfilter
search.filter = [ fuzzy | phonetic ]

fuzzy verwendet die Levenshtein-Distanz, die mit search.fuzziness eingestellt wird.
phonetic verwendet den Double Metaphone-Algorithmus, um ähnlich klingende, evtl. falsch geschriebene Treffer in die Ergebnisliste aufzunehmen (z.B. Standard und Standart).

Wenn der Suchfilter umgestellt wird, muss der komplette Suchindex neu aufgebaut werden.

Unschärfe
search.fuzziness = [ 0 | 1 | 2 ]
Die Levenshtein-Distanz ist eine positive ganze Zahl, die den Abstand zwischen zwei Buchstabenfolgen misst. Mit diesem Parameter stellt man die Unschärfe der Suche ein. 0 ist gleichbedeutend mit exakter Suche. 1 erlaubt einfache Wortvertauschungen. Je größer der Wert, desto unschärfer ist die Suche.
Maximale phonetische Code-Länge
search.phonetic.maxCodeLength = 8
Die maximale Code-Länge ist eine positive ganze Zahl, die die maximale Länge des phonetischen Codes vorgibt. Je länger der phonetische Code sein darf desto genauer sind die angezeigten Treffer. Bei einer Code-Länge von 4 ist der Code sowohl für Cricket wie auch für Cricketgame KRKT. Beide Begriffe werden von der Suche als identisch angesehen. Bei einer Code-Länge von 8 ist der Code für Cricket KRKT, für Cricketgame aber KRKTKM. Die beiden Beriffe sind also für die Suche verschieden.
Gewichtung des Formularinhalts
search.weight.content = 2.0
Die Gewichtung von Suchtreffern im Formularinhalt.
Gewichtung des Formularnames
search.weight.name = 3.0
Die Gewichtung von Suchtreffern im Formularnamen.
Gewichtung des Pfads
search.weight.breadcrumb = 0.1
Die Gewichtung von Suchtreffern im Pfad des Formulars.
Gewichtung des Formulartyps
search.weight.typename = 0.05
Die Gewichtung von Suchtreffern im Namen des Formulartyps.
Gewichtung des Metadaten von Dateien
search.weight.metadata = 0.2
Die Gewichtung von Suchtreffern in den Metadaten von Dateien.
Dateiformate ausschließen
search.extensionDenyList = dxf
Eine Liste von Datei-Formaten, die nicht in den Suchindex aufgenommen werden. Mehrere Einträge müssen durch Komma separiert angegeben werden.
Arguments des Tika-Servers
search.tika.args = 
Die Arguments, mit denen der Tika-Server gestartet wird (siehe Tika-Wiki).
JVM-Arguments des Tika-Servers
search.tika.jvmargs = -Xmx2g
Die JVM-Arguments, mit denen der Tika-Server gestartet wird.
URL des Tika-Servers
search.tika.url = http://localhost
Die Url, hinter der ein Tika-Server erwartet wird. Wird kein Tika-Server gefunden, wird ein neuer Tika-Server gestartet.
Port des Tika-Servers
search.tika.port = 8200
Der Port, hinter dem ein Tika-Server erwartet wird. Wird kein Tika-Server gefunden, wird ein neuer Tika-Server gestartet, der auf diesem Port lauscht.
Download-URL von Installationsdateien des Tika-Servers
search.tika.downloadUrl = https://rewoo.de/downloads/tika/
URL, um eine Installationsdatei des Tika-Servers herunterzuladen.
Wartezeit nach dem Start des Tika-Servers
search.tika.startupDelayMS = 1000
Der Zeitraum in Millisekunden, die nach dem Start des Tika-Servers gewartet wird, bis ein erster Verbindungsversuch unternommen wird.
Maximale Zeit für eine Anfrage an den Tika-Server
search.tika.timeoutMS = 60000
Die Zeit in Millisekunden, die eine Anfrage an den Tika-Server maximal dauern darf, bevor sie abgebrochen wird.

E-Mail-Versand

Generelle E-Mail-Einstellungen

Aktivierung
mail.mute = [ true | false ]
Schalter, um den E-Mail-Versand global zu aktivieren bzw. zu deaktivieren.
E-Mail-Adresse
mail.sender = REWOO Scope <info@rewoo.com>
Name und E-Mail-Adresse des Absenders.
globale Umleitung
mail.redirect.enabled = [ true | false ]
Alle an Anwender verschickte Mails werden umgeleitet an die Adressen in mail.redirect.to
Adressen für die Umleitung
mail.redirect.to = 
Eine Komma-separierte Liste an Adressen, an die die E-Mails umgeleitet werden, wenn mail.redirect.enabled aktiviert ist.
Host
mail.host = localhost
Adresse des Rechners, der die E-Mails verschickt (SMTP)
Port
mail.port = 587
Port auf diesem Rechner, über den der SMTP-Dienst erreichbar ist.
Benutzername
mail.username = 
Benutzername, falls eine Authentifizierung für den Versand notwendig ist.
Password
mail.password = 
Passwort, falls eine Authentifizierung für den Versand notwendig ist.
Parameter
mail.props = mail.smtp.auth:true,mail.smtp.socketFactory.port:587,mail.smtp.socketFactory.class:javax.net.DefaultSocketFactory,mail.smtp.socketFactory.fallback:false
Einstellungen für den E-Mail-Versand.

E-Mail-Versand mit STARTTLS

Wenn der E-Mail-Versand mit STARTTLS abgesichert werden soll, sind folgende Einstellungen vorzunehmen:
mail.port = 465
mail.props = mail.smtp.auth:true,mail.smtp.socketFactory.port:465,mail.smtp.socketFactory.class:javax.net.ssl.SSLSocketFactory,mail.smtp.socketFactory.fallback:false,mail.smtp.starttls.enable:true

E-Mail-Versand von Alerts und Messages

Mit diesen Optionen werden die automatischen E-Mails konfiguriert, die bei der Erzeugung von Alerts und Messages versendet werden.
Author
mail.author = REWOO Scope
Name, der unter dem E-Mail-Text im Gruß steht.

E-Mail-Versand der Systemaktion EMAIL

Mit diesen Optionen werden die automatischen E-Mails konfiguriert, die durch die Systemaktion EMAIL versendet werden.
Maximale Größe des Anhangs
mail.maxAttachmentSizeInMB = 50
Wird bei der Definition der EMAIL-Systemaktion ein Filelinks-Feld angegeben, werden die dort hinterlegten Dateien als Attachment an die E-Mail angehängt. Dieser Parameter begrenzt dabei die Maximalgröße in Megabyte, welche die Attachments einer E-Mail nicht überschreiten dürfen. Wird die Größe überschritten, so wird die E-Mail nicht versendet und die auslösende Aktion abgebrochen.

E-Mail-Versand von Fehlerberichten

First-Level-Support
mail.firstLevelSupport = support@rewoo.com
Wenn es zu einem Fehlverhalten der Software kommt, kann der Anwender einen Bericht erstellen und als E-Mail an diese Adresse verschicken lassen.
Log-Level
mail.logging.level = [ FATAL | ERROR | WARN | INFO | DEBUG | TRACE ]
Log-Level, ab dem eine Fehlermeldung per Mail an die unter mail.firstLevelSupport spezifizierte Adresse geschickt wird. Ein niedriger Wert als ERROR sollte vermieden werden, da bei jedem Eintrag im Log eine separate E-Mail versendet wird.

Telefon-Anbindung

Standard-Protokoll für Desktop
phone.desktop.protocol = [ tel | callto | sip | skype | phone ]
Das Standardprotokoll für Telefonnummern in Desktop-Browsern. Dieses Protokoll kann von jedem Anwender individuell oder durch explizites Setzen vor die Telefonnummer überschrieben werden.
Standard-Protokoll für Mobile
phone.mobile.protocol = [ tel | callto | sip | skype | phone ]
Das Standardprotokoll für Telefonnummern in Browsern von mobilen Geräten. Dieses Protokoll kann von jedem Anwender individuell oder durch explizites Setzen vor die Telefonnummer überschrieben werden.

Datei-Konverter

Allgemeine Konverter-Einstellungen

Liste mit zu ignorierenden Dateiendungen
converter.extensionDenyList = exe,dll
Komma-separierte Liste mit Dateiendungen, die vom Datei-Konverter ignoriert werden sollen.
Pfad für Test-Dateien
converter.testFiles.path = 
Absoluter Pfad zum Verzeichnis, in dem Dateien liegen, die beim Test der Konverter über das Admin-Panel herangezogen werden.

Konfiguration des ImageMagick-Konverters

Dieser Konverter ist für die Darstellung aller Bildformate notwendig: jpg, jpeg, png, gif, tiff, bmp, eps, svg, ai, psd, wmf (vollständige Liste unterstützter Formate).
Pfad
converter.imagemagick.imageMagickHome = /usr/bin/
Absoluter Pfad zum Verzeichnis, in dem das Programm convert von ImageMagick liegt.
Timeout
converter.imagemagick.timeout = 360000
Zeit in Millisekunden, die eine Konvertierung mit ImageMagick maximal dauern darf, bevor sie abgebrochen wird.
Überprüfung des MimeTypes
converter.imagemagick.checkMimeType = true
Dieser Schalter aktiviert die Prüfung des MimeTypes gegen die hinterlegte White-List, um eine Sicherheitslücke in ImageMagick abzusichern (siehe ImageTragick).
Bildformat
converter.imagemagick.targetFormat = [ png | jpg | gif | bmp ]
Format, in das alle Bilder für die Anzeige in der Anwendung umgewandelt werden.
Thumbnail-Größe
converter.imagemagick.thumbnailSize = 160
Maximale Breite und Höhe eines Thumbnails.

Konfiguration des Office-Konverters

Dieser Konverter ist für die Darstellung aller Office-Formate und Textformate notwendig: doc, docx, xls, xlsx, ppt, pptx, vsd, vxd, vsdx, pub, odt, ods, odp, txt, rtf, csv (vollständige Liste unterstützter Formate).
Pfad
converter.openoffice.openOfficeHome = /opt/LibreOffice5.x/
Absoluter Pfad zum Programm-Verzeichnis von LibreOffice oder Apache OpenOffice.
Port
converter.openoffice.ports = 8100
Port, den der LibreOffice Server-Dienst verwenden soll. Hier kann auch eine Liste von Port-Nummern in einer kommaseparierten Liste angegeben werden, um mehrere LibreOffice-Server gleichzeitig zu starten.
Timeout für Konvertierung
converter.openoffice.timeout = 600000
Zeit in Millisekunden, die eine Konvertierung mit LibreOffice maximal dauern darf, bevor sie abgebrochen wird.
Maximale Anzahl an Konvertierungen
converter.openoffice.killAfter = 200
Maximale Anzahl an Konvertierungen, bis der LibreOffice-Server neu gestartet wird. Dies ist bei manchen Versionen von LibreOffice notwendig, da mit jeder Konvertierung mehr Arbeitsspeicher reserviert wird.
Startversuche
converter.openoffice.numberOfRestartAttempts = 2
Maximale Anzahl an Versuchen, den LibreOffice neu zu starten.
Timeout in Warteschlage
converter.openoffice.taskQueueTimeout = 30000
Maximale Zeit in Millisekunden, die ein Konvertierungsjob in der Warteschlange verbringen darf, bevor er abgebrochen wird.

Konfiguration des Acme CAD Konverters

Dieser Konverter ist für die Darstellung von CAD-Dateien notwendig: dxf, dwg.
Pfad
converter.acme.bin = /home/rewoo/rewoo/scripts/proxy-acme.sh
Absoluter Pfad zum Skript, mit dem der ACME CAD Konverter gestartet wird.
Farbtafel
converter.acme.fallbackCTB = monochrome.ctb
Default CTB Datei für die Konvertierung von DXF-Dateien.
Timeout
converter.acme.timeoutMS = 360000
Zeit in Millisekunden, die eine Konvertierung mit dem ACME CAD Konverter maximal dauern darf, bevor sie abgebrochen wird.

ETL

Anlegen neuer Felder
etlconfig.global.protectedmode = [ true | false ] 
Schalter, ob Formularfelder automatisch dem Formular hinzugefügt werden (false) oder nicht (true), wenn sie nicht existieren
Wartezeit
etlconfig.global.fileChangeWait = 2000

Zeit in Millisekunden, die der ETL-Prozess die Datei auf Veränderung beobachtet, bevor er sie einliest

Für jedes Vorsystem muss noch ein Satz von job-spezifischen Parametern angelegt werden.

Scheduler

Langlaufende oder wiederkehrende Aufgaben stehen als Jobs zur Verfügung. Viele dieser Jobs werden nur von Hand über das Admin-Panel gestartet und benötigen keinen Zeitplan. Die zeitgesteuerten Jobs werden entsprechend der Cron-Syntax konfiguriert (siehe die Dokumentation des Quartz-Schedulers)

Allgemeine Einstellungen

Wartezeit nach Systemstart
quartz.startDelay = 30000
Zeit zwischen dem Start von Scope und dem ersten Ausführen der Jobs in Millisekunden
Größe der Warteschlange
quartz.queueSizePerJob = 10
Größe der Warteschlange pro Quartz-Job

Anonymisierung des Datenbestands

Job zum Anonymisieren des Datenbestands, d.h. Element-Namen und Formularwerte werden nach einem vorgegebenen Plan verfälscht.
Cron-Parameter
jobs.AnonymizerJob.cron = 
Cron-Trigger, wird nicht benötigt, da nur von Hand gestartet
Aktivierung
jobs.AnonymizerJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Löscht alle abgelaufenen Session

Job zum Löschen aller abgelaufenen Sessions.
Cron-Parameter
jobs.ClearTimedOutSessionsJob.cron = 0 3 * * * ? * 
Cron-Trigger, Standard ist drei Minuten nach jeder vollen Stunde
Aktivierung
jobs.ClearTimedOutSessionsJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Konvertieren der Dateien

Job zum Konvertieren aller Dateien, für die noch kein Standardformat (png, pdf, swf) vorliegt
Cron-Parameter
jobs.ConverterJob.cron = 0 0 1 * * ? *
Cron-Trigger, Standard ist jede Nacht um 1 Uhr Serverzeit
Aktivierung
jobs.ConverterJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.
Zeitraum in Tagen
jobs.ConverterJob.periodInDays = 2
Erstellt eine Vorschau für Dateien, die in den letzten 2 Tagen hinzugefügt wurden. Ist die Anzahl an Tagen 0, werden alle Dateien im System überprüft.

Berechnung von Checksummen

Job zum Berechnen von Checksummen für alle Dateien, für die noch keine Checksumme vorliegt. Anhand dieser Checksumme kann überprüft werden, ob die Datei seit dem Speichern unverändert vorliegt, oder ob sie korrumpiert oder manipuliert wurde.
Cron-Parameter
jobs.CreateChecksumsJob.cron = 0 0 1 * * ? *
Cron-Trigger, Standard ist jede Nacht um 1 Uhr Serverzeit
Aktivierung
jobs.CreateChecksumsJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Erstellen von Snapshots

Job zum Erzeugen eines Snapshots der Scope-Installation. Dieser Snapshot enthält alle notwendigen Daten, um diese Scope-Instanz wiederherzustellen (Datenbank, abgelegte Dateien, ETL-Konfiguration, Lizenz, Account-Daten).
Cron-Parameter
jobs.CreateSnapshotJob.cron = 
Cron-Trigger, ist nicht gesetzt, da Snapshots in der Regel von Hand erstellt werden
Aktivierung
jobs.CreateSnapshotJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Löschen von Formularwerten

Job zum Löschen von Formularwerten. Eigentlich ist es in REWOO Scope nicht vorgesehen, dass Werte gelöscht werden. Da aber der Gesetzgeber für personenbezogene Daten vorschreibt, dass diese aus Gründen des Datenschutzes auf Anfrage endgültig gelöscht werden müssen, gibt es diesen Job. Dabei ist es nur möglich die Werte von Elementen zu löschen, die entweder archiviert oder verworfen wurden.
Cron-Parameter
jobs.DeleteElementValuesJob.cron = 
Cron-Trigger, wird nicht benötigt, da nur von Hand gestartet
Aktivierung
jobs.DeleteElementValuesJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Verzögerte Ausführen von Formel-Aktionen

Job zur verzögerten Ausführen von Systemaktionen.
Cron-Parameter
jobs.ExecuteDelayedFormulaActionsJob.cron = * */5 * * * ?
Cron-Trigger, Standard ist alle 5 Minuten
Aktivierung
jobs.ExecuteDelayedFormulaActionsJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Einlesen von Daten (ETL)

Job zum Einlesen von Daten mittels eines ETL-Prozesses.
Cron-Parameter
jobs.ExecuteETLJob.cron = */30 * * * * ?
Cron-Trigger, Standard ist alle 30 Sekunden
Aktivierung
jobs.ExecuteETLJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Installationsspezifische, externe Jobs

Sollen eigene Scripte oder Programme in regelmäßigen Abständen von REWOO Scope ausgeführt werden, können dafür eigene Cron-Jobs angelegt werden. In den folgenden Konfigurations-Parametern ist appname generisch und kann in den Namen des Programmes abgeändert werden. Dadurch können mehrere externe Jobs erstellt werden.
jobs.ExternalLauncherJob.appname.cron
Cron-Ausdruck, der festlegt, in welchen Intervallen die Anwendung ausgeführt werden soll.
jobs.ExternalLauncherJob.appname.enabled = [ true | false ]
Bestimmt, ob die Anwendung überhaupt ausgeführt wird.
jobs.ExternalLauncherJob.appname.path
Legt fest, unter welchem Pfad die auszuführende Anwendung liegt. Hierbei obliegt es dem Admin sicherzustellen, dass die Anwendung auch wirklich aufgerufen werden kann.
jobs.ExternalLauncherJob.appname.timeout
Die maximale Zeit in Millisekunden, die gewartet wird, bevor der gestartete Prozess abgeschossen wird. Das soll verhindern, dass eine externe Anwendung einen Cron-Thread dauerhaft blockiert.

Auflisten aller ungültigen Formeln

Job um alle Formeln aufzulisten, deren Syntax falsch ist, die Referenzen auf nicht existierende Elemente enthalten, die Selbst-Referenzen enthalten und die Referenzierungen von realen Elementen auf Vorlagen enthalten. Da die Konsistenz der Formeln direkt beim Speichern geprüft wird, sollte diese Menge stets leer sein.
Cron-Parameter
jobs.FindInvalidFormulasJob.cron = 
Cron-Trigger, wird nicht benötigt, da nur von Hand gestartet
Aktivierung
jobs.FindInvalidFormulasJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Neuberechnen der Rechte

Job zum Neuberechnen der Rechte. Dieser Job wird nur bei Problemen mit den Zugriffsrechten als Reparaturfunktion benötigt.
Cron-Parameter
jobs.RebuildAclJob.cron = 
Cron-Trigger, wird nicht benötigt, da nur von Hand gestartet
Aktivierung
jobs.RebuildAclJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Neuaufbau des Suchindex

Job zum Neuaufbau des Suchindex. Diese Operation ist sehr rechenintensiv und sollte nicht regelmäßig ausgeführt werden.
Cron-Parameter
jobs.RebuildSearchIndexJob.cron = 
Cron-Trigger, wird nicht benötigt, da nur von Hand gestartet
Aktivierung
jobs.RebuildSearchIndexJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Record Management

Job zur Durchführung des Record Managements. Über Regeln kann konfiguriert werden, zu welchem Zeitpunkt bei bestimmten Elementen der Status geändert bzw. die Werte gelöscht werden.
Cron-Parameter
jobs.RecordManagementJob.cron = 0 0 2 3 * ? *
Cron-Trigger, Standard ist jeden dritten des Monats um 2 Uhr nachts
Aktivierung
jobs.RecordManagementJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Neuaufbau der Formelabhängigkeiten

Job zum Neuaufbau der Formelabhängigkeiten. Bei Referenzierungen anderer Datenfelder werden Referenzzeiger aufgebaut, damit bei Werteänderungen die abhängigen Formeln ebenfalls neu ausgewertet werden. Dieser Job wird nur bei Problemen mit der Aktualisierung von Formelwerten als Reparaturfunktion benötigt.
Cron-Parameter
jobs.RecreateDependenciesJob.cron = 
Cron-Trigger, wird nicht benötigt, da nur von Hand gestartet
Aktivierung
jobs.RecreateDependenciesJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Reparatur der PREV-/NEXT Strukturen

Job zum Neuberechnen der PREV-/NEXT-Strukturen. Alle Formeln, die in PrevLinks-/NextLinks-Feldern zu finden sind sowie alle davon abhängigen Formeln (d.h. insbesondere auch alle Formeln, welche die Schlüsselwörter PREV bzw. NEXT verwenden) werden neu ausgewertet. Es wird dabei nur dann eine neue Version des Formulars erzeugt, wenn sich bei der Auswertung ein anderer Wert ergibt. Dieser Job wird nur benötigt, wenn zuvor manuell vom alten Berechnungsalgorithmus für PrevLinks- und NextLinks-Felder auf den neuen Algorithmus umgeschaltet wurde. Zu beachten ist, dass aufgrund der geänderten Auswertungslogik in den meisten Fällen zusätzlich zur Neuberechnung der PREV-/NEXT-Strukturen auch die bisherigen Formeln innerhalb der PrevLinks- und NextLinks-Felder angepasst werden müssen.
Cron-Parameter
jobs.RecreatePrevNextJob.cron = 
Cron-Trigger, wird nicht benötigt, da nur von Hand gestartet
Aktivierung
jobs.RecreatePrevNextJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Neuauswertung aller Formeln

Job zum Neuauswerten aller Formeln. Alle Formeln werden nochmal ausgewertet, aber es wird nur eine neue Version des Formulars erzeugt, wenn sich bei der Auswertung ein anderer Wert ergibt. Dieser Job wird nur bei Problemen mit der Aktualisierung von Formelwerten als Reparaturfunktion benötigt.
Cron-Parameter
jobs.ReevaluateDatasheetsJob.cron = 
Cron-Trigger, wird nicht benötigt, da gewöhnlich nur von Hand gestartet
Aktivierung
jobs.ReevaluateDatasheetsJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Neuaufbau des TableView-Caches

Job zum Neuaufbau des TableView-Caches.
Cron-Parameter
jobs.ReInitializeTableViewCacheJob.cron = 
Cron-Trigger, wird nicht benötigt, da gewöhnlich nur von Hand gestartet
Aktivierung
jobs.ReInitializeTableViewCacheJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Reparaturskript ausführen

Job für die Reparatur des Datenbestands. Diese Möglichkeit ist nur in den seltensten Fällen erforderlich. Weil mit dem Skript Schaden bis zum Totalverlust der Daten möglich ist, sind hier nur von der REWOO GmbH zertifizierte Skripte zugelassen.
Cron-Parameter
jobs.RepairByScriptJob.cron = 
Cron-Trigger, wird nicht benötigt, da nur von Hand gestartet
Aktivierung
jobs.RepairByScriptJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Reparatur von Formeln im Defaultwert

Job für die Reparatur von Formeln, die im Defaultwert des Feldes stehen. Alle Feldreferenzen werden von Feld-Ids in Feld-Namen und wieder zurück in Feld-Ids umgewandelt. Dadurch werden eventuelle Fehler in diesen Referenzen behoben. Dieser Job wird nur bei Problemen mit Feldreferenzen in Defaultformeln als Reparaturfunktion benötigt.
Cron-Parameter
jobs.RepairDefaultFormulasJob.cron = 
Cron-Trigger, wird nicht benötigt, da nur von Hand gestartet
Aktivierung
jobs.RepairDefaultFormulasJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Einspielen von Snapshots

Job zum Einspielen eines Snapshots.
Cron-Parameter
jobs.RestoreSnapshotJob.cron = 
Cron-Trigger, ist nicht gesetzt, da Snapshots in der Regel von Hand eingespielt werden
Aktivierung
jobs.RestoreSnapshotJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Scannen nach Schadprogrammen

Job zum Starten eines externen Malware-Scanners, der die gespeicherten Dateien nach bekannten Schadprogrammen durchsucht.
Cron-Parameter
jobs.SearchForMalwareJob.cron = 
Cron-Trigger, ist nicht gesetzt, da die Scans von Hand gestartet werden
Aktivierung
jobs.SearchForMalwareJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Indexierung neuer Werte

Job zum Indexieren neuer Werte und Dateien. Diese sind erst nach erfolgreichem Durchlauf des Jobs indexiert und damit über die Suche auffindbar.
Cron-Parameter
jobs.UpdateIndexJob.cron = */10 * * * * ?
Cron-Trigger, Standard ist alle 10 Sekunden.
Aktivierung
jobs.UpdateIndexJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Aktualisierung von Formeln mit Datumsabhängigkeit

Job zur Neuauswertung von Formeln mit Datumsabhängigkeit (siehe TODAY, PERIODIC, SMA)
Cron-Parameter
jobs.UpdateDayClockChangeDependenciesJob.cron = 0 0 1 * * ? *
Cron-Trigger, Standard ist jede Nacht um 1 Uhr Serverzeit
Aktivierung
jobs.UpdateClockChangeDependenciesJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Aktualisierung von Formeln mit Zeitabhängigkeit

Job zur Neuauswertung von Formeln mit Zeitabhängigkeit (siehe NOW)
Cron-Parameter
jobs.UpdateIntradayClockChangeDependenciesJob.cron = 
Cron-Trigger
Aktivierung
jobs.UpdateIntradayClockChangeDependenciesJob.enabled = [ true | falsefalse ]
Schalter, ob dieser Job ausführbar ist.

Überprüfung der Dateien

Job zum Überprüfen, dass alle Dateien unverändert vorliegen.
Cron-Parameter
jobs.ValidateChecksumsJob.cron = 
Cron-Trigger, wird nicht benötigt, da nur von Hand gestartet
Aktivierung
jobs.ValidateChecksumsJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Exportieren der Daten als XML

Job zum Exportieren aller Typen, Layouts, Elemente, Formularwerten, Tabellenansichten und Gantts als XML-Datei, die zusammen mit den Dateien in ein zml-Archiv gepackt wird. Siehe auch den Job "Importieren von XML-Daten".
Cron-Parameter
jobs.XmlExportJob.cron = 
Cron-Trigger, wird nicht benötigt, da nur von Hand gestartet
Aktivierung
jobs.XmlExportJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

Importieren von XML-Daten

Job zum Importieren von Typen, Layouts, Elementen, Datenblattwerten, Portofolios und Gantts aus einer XML-Datei, und von Dateien aus einem zml-Archiv. Siehe auch den Job "Exportieren der Dateien als XML".
Cron-Parameter
jobs.XmlImportJob.cron = 
Cron-Trigger, wird nicht benötigt, da nur von Hand gestartet
Aktivierung
jobs.XmlImportJob.enabled = [ true | false ]
Schalter, ob dieser Job ausführbar ist.

LDAP und AD

Vorgehen

Seit Version v4.0 ist es möglich, ein LDAP Directory Service in REWOO Scope einzubinden. Um Benutzer, die in einem LDAP verwaltet werden, in REWOO Scope einzubinden, geht man wie folgt vor:
  1. LDAP anpassen
  2. REWOO Scope konfigurieren
  3. Benutzer aus LDAP auswählen und Login-Point zuweisen

Konfiguration von OpenLDAP

REWOO-Schema einbinden
Für OpenLDAP hat die REWOO Software GmbH ein eigenes Schema entwickelt, welches auf Objektklassen von sehr häufig eingesetzten Standard-Schemas aufsetzt. Das heißt, es erweitert die Objekt-Klassen und/oder Schemas:

  • cosine
  • inetOrgPerson
  • person
  • posixAccount
Das Schema führt keine neuen Attribute ein. Stattdessen werden einige Attribute, die wir für REWOO Scope benötigen, von MAY auf MUST geändert.

slapd.conf
Um das zusätzliche Schema einzubinden, muss die Konfiguration des OpenLDAP-Servers angepasst werden. Die Datei rewoo.schema muss in das Verzeichnis für die schema-Dateien kopiert werden und anschließend in der slapd.conf eingefügt werden. Fügen Sie der Liste der include-Zeilen diese hinzu: include /etc/ldap/schema/rewoo.schema.
Das könnte dann in etwa wie folgt aussehen:

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/rewoo.schema
Starten Sie anschließend den slapd neu und untersuchen Sie das Logfile auf mögliche Fehler.
slapd.d 

In aktuelleren OpenLDAP-Versionen wurde das Konzept der slapd.conf-Datei zugunsten einer LDIF-Struktur in /etc/ldap/slapd.d aufgegeben. Dadurch wird der slapd nicht mehr per einzelner Konfigurationsdatei eingestellt, sondern über LDIF-Dateien. Der Vorteil ist, dass Änderungen an der Konfiguration on the fly ohne Neustart des slapd durchgeführt werden können.
Wenn Sie einen OpenLDAP-Server mit LDIF-Konfiguration betreiben, verwenden Sie bitte die Datei rewoo.ldif, passen Sie an Ihre Umgebung an (dies betrifft insbesondere die Reihenfolge an der das Schema eingebunden werden soll, muss vermutlich angepasst werden) und laden Sie sie dann, z. B. mit ldapadd, in den slapd.

User einrichten
Sobald der slapd wieder zur Verfügung steht, können Sie Nutzer, die REWOO Scope benutzen können sollen editieren. Fügen Sie den betroffenen Benutzern als neues Attribut die Objekt-Klasse rewooUser hinzu. Achten Sie darauf, dass vor dem Speichern der Änderung die Attribute uid, userPassword und displayName gesetzt sind. Ansonsten wird das Speichern fehlschlagen.

Konfiguration des Active Directory Service

Für Active Directory empfehlen wir, eine neue Gruppe einrichten. Richten Sie als AD-Administrator eine neue Benutzergruppe, z. B. RewooUser, ein. Fügen Sie alle Benutzer, die REWOO Scope benutzen sollen, als Mitglieder der Gruppe RewooUser hinzu.

REWOO Scope für einen Directory Service konfigurieren

Um REWOO Scope für die Verwendung mit einem Directory Service zu konfigurieren, loggen Sie sich als Administrator ein. Wechseln Sie auf die Konfigurations-Seite. Die meisten Parameter, die Sie für das Einrichten eines LDAP-basierten Verzeichnisdienstes benötigen, sind bereits mit Dummy-Einträgen vorbereitet. Da sich die Einrichtung bei Verwendung von OpenLDAP und Active Directory Service etwas unterscheidet, werden beide Dienste im Folgenden getrennt voneinander behandelt.

Setzen Sie über den Edit-Link alle Werte so, wie es in Ihrer Umgebung benötigt wird. Die Werte sind gültig bzw. aktiv, sobald Sie sie gesetzt haben. Setzen Sie daher den Wert für ldap.enabled erst ganz zum Schluss auf true.

REWOO Scope für OpenLDAP konfigurieren

Um ein OpenLDAP als Directory Service zu verwenden, suchen Sie bitte die Konfigurations-Parameter, die mit ldap. beginnen. Im Folgenden werden die für OpenLDAP wichtigen Parameter und deren Bedeutung aufgelistet.
Anzeigename
ldap.attribute.displayName = displayName
Attribut, welches den String enthält, der an Stelle des Login-Namens angezeigt werden soll
E-Mail
ldap.attribute.email = <mail>
Attribut, welches die eMail-Adresse des Benutzers enthält
Login-Name
ldap.attribute.username = uid
Attribut, welches den Login-Namen enthält; identisch mit dem Namen, den der Benutzer zur Anmeldung angibt
LDAP-Aktivierung
ldap.enabled = [ true | false ]
schaltet Authentifizierung über ein LDAP ein oder aus; wenn LDAP verwendet werden soll, diesen Wert auf true setzen
Active Directory
ldap.isAD = [ true | false ]
schaltet zwischen ActiveDirectory oder LDAP um; bei OpenLDAP bleibt der Schalter auf false
Ausschließlich LDAP-Authentifizierung
ldap.only = [ true | false ]
dieser Parameter schaltet um zwischen reiner LDAP-Authentifizierung und gemischter Authentifizierung. Bei reiner LDAP-Authentifizierung wird nur das LDAP zur Authentifizierung verwendet. Die REWOO-Datenbank wird dann zur Authentifizierung nicht herangezogen. Gilt ausschließlich für Benutzer mit den Rollen Standard und Concurrent.
LDAP-Zweig
ldap.search.base = ou=people,dc=rewoo,dc=lan
der Zweig im LDAP, unter dem nach möglichen Benutzern gesucht werden soll; setzen Sie diesen Wert auf den Zweig, in dem sich in Ihrem LDAP die Benutzer befinden - fragen Sie bei Ihrem LDAP-Administrator nach, z. B. ou=people,dc=firma,dc=com
Suchfilter
ldap.search.filter = (&(objectClass=inetOrgPerson)(objectClass=RewooUser))
setzt den Filter, um die Ergebnismenge zu begrenzen; fragen Sie Ihren LDAP-Administrator, zu welchen Objektklassen die REWOO-User gehören; die Syntax entspricht der in RFC 4515 definierten
Benutzer für die Suche
ldap.search.user = (leer)
Distinguish Name (DN) des Benutzers, der das LDAP durchsuchen darf, z. B. cn=search.user,dc=firma,dc=com; das wird nur benötigt, wenn ein LDAP nicht anonym durchsucht werden darf
Passwort
ldap.search.password = ****
setzt das Passwort für den Search-User; das wird nur benötigt, wenn das LDAP nicht anonym durchsucht werden darf
Weiterleitung
ldap.search.referral = [ follow | ignore | throw ]
Konfiguration der Weiterleitungen auf andere LDAP Server
Suchumfang
ldap.search.scope = [ baseObject | oneLevel | wholeSubtree ]
Konfiguration des Suchumfangs
URL
ldap.server.url = ldap://localhost
Hostname des Servers, auf dem der LDAP-Service läuft, z. B. ldap://ldap.example.com
Mehrere Server können durch Leerzeichen getrennt angegeben werden.
Die Angabe eines Ports ist optional und wird mit einem Doppelpunkt hinter den Servernamen gesetzt, z. B. ldap://ldap.example.com:389
Um eine sichere Verbindung zu verwenden, kann auf das Protokoll ldaps:// gewechselt werden.
TLS
ldap.server.useTLS = [ true | false ]
Schaltet TLS ein oder aus.
Paging
ldap.paging.enabled = [ true | false ]
Schaltet das Paging von Such-Ergebnissen ein oder aus. Dadurch wird es möglich, eine größere Menge an Suchergebnisse zu erhalten, als es die Maximalgröße einer einzelnen Page erlaubt. Bitte beachten Sie, dass hierfür Ihr LDAP-Server den RFC 2696 unterstützen muss.
Seitengröße
ldap.paging.size = 500
Gibt die Anzahl der Entries vor, die eine Page maximal enthalten kann. Dieser Schalter hat nur dann eine Auswirkung, wenn ldap.paging.enabled gesetzt wurde. Bitte beachten Sie, dass das Limit nicht höher gesetzt werden darf, als es die Einstellungen des LDAP-Servers generell zulassen.

REWOO Scope für Active Directory konfigurieren

Um ein Active Directory zur Authentifizierung der Nutzer zu verwenden, müssen im Grunde die gleichen Einstellungen gemacht werden, wie bei einem OpenLDAP. Der Unterschied besteht darin, dass ein Active Directory nicht anonym durchsucht werden darf und daher immer eine erfolgreiche Anmeldung vorausgehen muss.
Daneben erfolgt die Anmeldung am Dienst nicht über den Distinguished Name des Benutzer-Objektes, sondern so, wie man sich unter Windows anmelden würde mit domain username. Daher gibt es einige zusätzliche Schalter und Einstellungen, die für eine Anmeldung über ein Active Directory gesetzt werden müssen.
Anzeigename
ldap.attribute.displayName = <displayName>
dieser Wert wird verwendet, um den vollen Namen des Benutzers an Stelle des Anmeldenamens anzuzeigen
E-Mail
ldap.attribute.email = <mail>
Über dieses Attribut wird die eMail-Adresse des Benutzers gesetzt bzw. ausgelesen
Login-Name
ldap.attribute.username = uid
Setzen Sie diesen Wert bei einem ActiveDirectory bitte auf sAMAccountName
Windows-Domäne
ldap.domain = test,rewoo
Setzen Sie hier den Namen der (Windows)-Domäne, in der sich die Benutzer befinden. Mehrere Domänen werden durch Kommata getrennt.
AD-Aktivierung
ldap.enabled = [false | true]
schaltet Authentifizierung über ein AD ein oder aus; wenn AD verwendet werden soll, diesen Wert auf true setzen
Active Directory
ldap.isAD = [false | true]
setzen Sie diesen Wert auf true; aktiviert in der Anmeldemaske ein Dropdown-Menu in dem der Nutzer die Domäne auswählen kann/muss, an der er sich anmelden will
Ausschließlich LDAP-Authentifizierung
ldap.only = [true | false]
bewirkt, dass sich Benutzer der Rollen Standard und Concurrent nur über das AD anmelden können
AD-Zweig
ldap.search.base = cn=Users,dc=<prefix>,dc=<firma>,dc=<domain>
setzen Sie hier den Zweig unter dem die Benutzer gespeichert sind. Passen Sie <prefix>, <firma> und <domain> an Ihre Umgebung an, z. B. cn=Users,dc=dev,dc=rewoo,dc=com
Suchfilter
ldap.search.filter = (&(objectClass=organizationalPerson)(objectClass=user)
(memberOf=cn=rewooUser,cn=Users,dc=<prefix>,dc=<firma>,dc=<domain>))
passen Sie <prefix>, <firma> und <domain> an Ihre Umgebung an, z. B.: (&(objectClass=organizationalPerson)(objectClass=user) (memberOf=cn=rewooUser,cn=Users,dc=dev,dc=rewoo,dc=com)); wenn sie eine andere Gruppe für Rewoo-Benutzer erstellt haben, als oben vorgeschlagen, dann verwenden Sie bitte diese Gruppe an Stelle von rewooUser
Benutzer für die Suche
ldap.search.user = 
setzen Sie hier den Benutzer ein, der das AD durchsuchen darf; wenn sich Benutzer aus verschiedenen Domänen einloggen können sollen, dann sollte der Search-User alle Domänen durchsuchen können dürfen, z. B. dev/search
Passwort
ldap.search.password = ****
Passwort des Benutzers, der zum Durchsuchen des AD verwendet werden soll
Weiterleitung
ldap.search.referral = [follow | ignore | throw]
Konfiguration der Weiterleitungen auf andere LDAP Server
Suchumfang
ldap.search.scope = [baseObject | oneLevel | wholeSubtree]
Konfiguration des Suchumfangs
URL
ldap.server.url = ldap://localhost
Hostname des Servers, auf dem das Active Directory läuft, z. B. ldap://directory.ka.rewoo.com
mehrere Server können durch Leerzeichen getrennt angegeben werden
eine optionale Angabe des Ports ist möglich, z. B. ldap://ldap.example.com:389
um eine sichere Verbindung zu verwenden, kann auf das Protokoll ldaps:// gewechselt werden
TLS
ldap.server.useTLS = [ true | false ]
Schaltet TLS ein oder aus.
Paging
ldap.paging.enabled = [ true | false ]
Schaltet das Paging von Such-Ergebnissen ein oder aus. Dadurch wird es möglich, eine größere Menge an Suchergebnisse zu erhalten, als es die Maximalgröße einer einzelnen Page erlaubt.
Seitengröße
ldap.paging.size = 500
Gibt die Anzahl der Entries vor, die eine Page maximal enthalten kann. Dieser Schalter hat nur dann eine Auswirkung, wenn ldap.paging.enabled gesetzt wurde. Bitte beachten Sie, dass das Limit nicht höher gesetzt werden darf, als es die Einstellungen des AD-Servers generell zulassen.

Setzen Sie über den Edit-Link alle Werte entsprechend Ihrer Umgebung. Alle Werte sind aktiv, sobald Sie Speichern/Save im editieren-Dialog gedrückt haben. Setzen Sie daher den Wert für ldap.enabled erst als letztes auf true.

Sicherheit

Es gibt zwei Möglichkeiten, die Kommunikation zwischen REWOO Scope und dem LDAP-Service abzusichern.

Entweder wird das Protokoll ldaps:// bei der Angabe der Server-Url verwendet, damit für die Verbindung SSL verwendet wird.

Oder der Schalter ldap.server.userTLS wird aktiviert, damit TLS zum Einsatz kommt.

SAML2-Konfiguration

Strikte Prüfung
saml2.strict = [ true | false ]
Ist dieser Schalter an, werden nicht signierte oder unverschlüsselte Nachrichten zurückgewiesen, wenn in den Einstellungen signierte oder verschlüsselte Nachrichten aktiviert sind. In Produktivsystemen sollte dieser Schalter immer an sein.
Debug
saml2.debug = [ true | false ]
Ein Schalter, um Fehler ins Log zu schreiben.
Username
saml2.attribute.username = http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
Der Name des Attributs, das den Username enthält. Setzt man diesen Parameter auf "NameID" wird statt eines normalen Attributs das speziell hierfür vorgesehen Attribut "NameID" ausgelesen, welches ein Kindelement des "Subject"-Tags in der SAML-Antwort darstellt.

Service Provider

ID
saml2.sp.entityid = urn:scope.rewoo.com
Id des Service Providers (muss eine URI sein)
Service URL
saml2.sp.assertion_consumer_service.url = /auth/signInSaml2
relative URL, an welche der IdP die Antwort schickt
Service Binding
saml2.sp.assertion_consumer_service.binding = urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST
SAML Protokollanbindung für die Antwort des IdP. Momentan unterstützen wir nur HTTP-POST
Logout-Antwort-URL
saml2.sp.single_logout_service.url = /auth/signOut
Relative URL, die nach dem Logout vom IdP aufgerufen werden soll.
Logout Binding
saml2.sp.single_logout_service.binding = urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect
SAML Protokollanbindung für die Logout-Nachricht des IdP. Momentan unterstützen wir nur HTTP-Redirect
Namensformat
saml2.sp.nameidformat = urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
Format des Namens, mit dem der Anwender identifiziert wird. Mögliche Formate:
  • urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
  • urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName
  • urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName
  • urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
  • urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos
  • urn:oasis:names:tc:SAML:2.0:nameid-format:entity
  • urn:oasis:names:tc:SAML:2.0:nameid-format:transient
  • urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
  • urn:oasis:names:tc:SAML:2.0:nameid-format:encrypted
x509 Zertifikat
saml2.sp.x509cert = -----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----
Zertifikat des Service Providers
neues x509 Zertifikat
saml2.sp.x509certNew = -----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----
Zukünftiges Zertifikat des Service Providers, zu verwenden während des Schlüsselwechsels
Private Key im Format PKCS#8
saml2.sp.privatekey = -----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----
Private Key des Service Providers

Identity Provider

ID
saml2.idp.entityid = 
Id des Identity Providers
SSO URL
saml2.idp.single_sign_on_service.url = 
URL, an die die Authentifizierungsanfrage geschickt wird
SSO Binding
saml2.idp.single_sign_on_service.binding = urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect
SAML Protokollanbindung, das für die Anfrage benutzt wird. Momentan unterstützen wir nur HTTP-Redirect.
Logout-Anfrage-URL
saml2.idp.single_logout_service.url = 
URL des IdP, an die Logout-Anfragen geschickt werden sollen.
Logout-Antwort-URL
saml2.idp.single_logout_service.response.url = 
Optionale URL für die Logout-Antwort des SP an den IdP. Wenn diese URL nicht angegeben ist, wird saml2.idp.single_logout_service.url verwendet.
Logout Binding
saml2.idp.single_logout_service.binding = urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect
SAML Protokollanbindung, das für das Logout benutzt wird. Momentan unterstützen wir nur HTTP-Redirect.
x509 Zertifikat
saml2.idp.x509cert = -----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----
Zertifikat des Identity Providers
Fingerprint des Zertifikats
saml2.idp.certfingerprint = 
Fingerprint-Algorithmus
saml2.idp.certfingerprint_algorithm = [ sha1 | sha256 | sha384 | sha512 ]

Sicherheit

Verschlüsselter Name
saml2.security.nameid_encrypted = [ true | false ]
Schalter, ob der Name vom SP verschlüsselt verschickt wird.
saml2.security.want_nameid_encrypted = [ true | false ]
Schalter, ob der Name vom IdP verschlüsselt verschickt wird.
Signierte Authentifizierungsanfrage
saml2.security.authnrequest_signed = [ true | false ]
Schalter, ob die Authentifizierungsanfrage vom SP signiert wird.
Signierte Abmeldeanfrage
saml2.security.logoutrequest_signed = [ true | false ]
Schalter, ob die Abmeldeanfrage vom SP signiert wird.
Signierte Abmeldeantwort
saml2.security.logoutresponse_signed = [ true | false ]
Schalter, ob die Abmeldeantwort vom SP signiert wird.
Signierte Daten vom IdP
saml2.security.want_messages_signed = [ true | false ]
Schalter, ob der SP erwartet, dass die vom IdP empfangenen Daten signiert sind.
Signierte Assertions vom IdP
saml2.security.want_assertions_signed = [ true | false ]
Schalter, ob der SP erwartet, dass die vom IdP empfangenen Assertions signiert sind.
Verschlüsselte Assertions
saml2.security.want_assertions_encrypted = [ true | false ]
Schalter, ob der SP erwartet, dass die vom IdP empfangenen Assertions verschlüsselt sind.
Signierte Metadaten
saml2.security.sign_metadata = 
Schalter, ob die Metadaten des SP signiert sein sollen
Authentifizierungs-Kontext
saml2.security.requested_authncontext = urn:oasis:names:tc:SAML:2.0:ac:classes:Password
Mehrere Werte können mit Komma getrennt angegeben werden.
  • urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
  • urn:oasis:names:tc:SAML:2.0:ac:classes:Password
  • urn:oasis:names:tc:SAML:2.0:ac:classes:X509
  • urn:oasis:names:tc:SAML:2.0:ac:classes:Smartcard
  • urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos
Authentifizierungs-Vergleich
saml2.security.requested_authncontextcomparison = exact
  • exact
  • minimum
  • maximum
  • better
XML-Validierung
saml2.security.want_xml_validation = [ true | false ]
Schalter, ob der SP alles empfangene XML validieren soll.
Signatur-Algorithmus
saml2.security.signature_algorithm = http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
Mögliche Werte:
  • http://www.w3.org/2000/09/xmldsig#rsa-sha1
  • http://www.w3.org/2000/09/xmldsig#dsa-sha1
  • http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
  • http://www.w3.org/2001/04/xmldsig-more#rsa-sha384
  • http://www.w3.org/2001/04/xmldsig-more#rsa-sha512
Digest-Algorithmus
saml2.security.digest_algorithm = http://www.w3.org/2001/04/xmlenc#sha256
Mögliche Werte:
  • http://www.w3.org/2000/09/xmldsig#sha1
  • http://www.w3.org/2001/04/xmlenc#sha256
  • http://www.w3.org/2001/04/xmldsig-more#sha384
  • http://www.w3.org/2001/04/xmlenc#sha512
Umgang mit alten Algorithmen
saml2.security.reject_deprecated_alg = [ true | false ]
Schalter, ob alte Algorithmen (sha1) zurückgewiesen werden sollen.
Trimmen von Namen
saml2.parsing.trim_name_ids = [ true | false ]
Schalter, ob beim Parsen die Namens-IDs entgegen der SAML-Spezifikation getrimmt werden sollen.
Trimmen von Attributwerten
saml2.parsing.trim_attribute_values = [ true | false ]
Schalter, ob beim Parsen die Attributwerte entgegen der SAML-Spezifikation getrimmt werden sollen.

Organisation

Name
saml2.organization.name = REWOO Software GmbH
Anzeigename
saml2.organization.displayname = REWOO Scope
URL
saml2.organization.url = https://rewoo.de
Sprache
saml2.organization.lang = en_US

Kontakt

Technischer Ansprechpartner
saml2.contacts.technical.given_name = REWOO Administrator
E-Mail Technischer Support
saml2.contacts.technical.email_address = administration@rewoo.com
Anwendungsbetreuung
saml2.contacts.support.given_name = REWOO Support
E-Mail Anwendungsbetreuung
saml2.contacts.support.email_address = support@rewoo.com

globaler Code

Globale CSS-Definition für den HTML-Client
mobile.global.css = 
Mit diesem Parameter lassen sich zusätzliche CSS-Definitionen für den gesamten HTML-Client festlegen. Dieser Code wird nach den Standard-CSS-Dateien (Bootstrap-Framework und Scope spezifische Anpassungen) aber vor datenblattspezifischem CSS geladen. Damit ist es möglich, den HTML-Client an den Stil des eigenen Corporate Designs anzupassen.
Globales JavaScript für den HTML-Client
mobile.global.javascript = 
Mit diesem Parameter lässt sich zusätzliches JavaScript für den gesamten HTML-Client festlegen.
Globale Meta-Tags für den HTML-Client
mobile.global.meta = 
Mit diesem Parameter lassen sich zusätzliche Meta-Tags für den gesamten HTML-Client festlegen.
Globale CSS-Definition für Kalender
mobile.calendar.css = 
Mit diesem Parameter lassen sich zusätzliche CSS-Definitionen für die Kalender festlegen.
Globales JavaScript für den Kalender
mobile.calendar.javascript = 
Mit diesem Parameter lässt sich zusätzliches JavaScript für die Kalender festlegen.
Globale CSS-Definition für Kanban
mobile.kanban.css = 
Mit diesem Parameter lassen sich zusätzliche CSS-Definitionen für die Kanban-Tafeln festlegen.
Globales JavaScript für Kanban
mobile.kanban.javascript = 
Mit diesem Parameter lässt sich zusätzliches JavaScript für die Kanban-Tafeln festlegen.
Globale CSS-Definition für Tabellenansichten
mobile.tableview.css = 
Mit diesem Parameter lassen sich zusätzliche CSS-Definitionen für die Tabellenansichten festlegen.
Globales JavaScript für Tabellenansichten
mobile.tableview.javascript = 
Mit diesem Parameter lässt sich zusätzliches JavaScript für die Tabellenansichten festlegen.
Globale CSS-Definition für Aufgaben-Ansichten
mobile.taskview.css = 
Mit diesem Parameter lassen sich zusätzliche CSS-Definitionen für die Aufgaben-Ansichten festlegen.
Globales JavaScript für Aufgaben-Ansichten
mobile.taskview.javascript = 
Mit diesem Parameter lässt sich zusätzliches JavaScript für die Aufgaben-Ansichten festlegen.

Client-Konfiguration

Element-Gruppierung in der Navigation
visualization.clusterByType = 15
Wenn die Anzahl der Objekte, Prozesse oder Aspekte desselben Typs größer ist als der angegebene Wert, werden die Elemente gruppiert.
Objekt-Gruppierung
visualization.cluster.objects = 15
Wenn die Anzahl der Objekte desselben Typs größer ist als der angegebene Wert, werden die Elemente gruppiert. Diese Einstellungen überschreiben für den jeweiligen Fall den in visualization.clusterByType angegebenen Wert.
Objekt-Aspekt-Gruppierung
visualization.cluster.objectAspects = 15
Wenn die Anzahl der Aspekte desselben Typs unterhalb von Objekten größer ist als der angegebene Wert, werden die Elemente gruppiert. Diese Einstellungen überschreiben für den jeweiligen Fall den in visualization.clusterByType angegebenen Wert.
Prozess-Gruppierung
visualization.cluster.processes = 15
Wenn die Anzahl der Prozesse desselben Typs größer ist als der angegebene Wert, werden die Elemente gruppiert. Diese Einstellungen überschreiben für den jeweiligen Fall den in visualization.clusterByType angegebenen Wert.
Prozess-Aspekt-Gruppierung
visualization.cluster.processAspects = 15
Wenn die Anzahl der Aspekte desselben Typs unterhalb von Prozessen größer ist als der angegebene Wert, werden die Elemente gruppiert. Diese Einstellungen überschreiben für den jeweiligen Fall den in visualization.clusterByType angegebenen Wert.
Anzeigen des Bearbeiternamens
user.versionAuthor.visible = [ true | false ]
Mit diesem Parameter kann eingestellt werden, ob der Name der Autoren/Bearbeiter in der Versionshistorie unterhalb des Datenblatts bzw. im Werteverlauf-Widget angezeigt wird oder verborgen bleibt.
Menüanzeige im HTML-Client
mobile.menu.alwaysSandwich = [ true | false ]
Wird diese Option auf true gesetzt, ist das Menü im HTML-Client standardmäßig eingeklappt und nur per Sandwich-Button aufklappbar. Ist der Schalter auf false gesetzt, wird der Sandwich-Button erst bei der Unterschreitung einer gewissen Screengröße eingeblendet; ansonsten ist das Menü dauerhaft sichtbar.
Verhalten bei Tab-Wechsel
datasheet.onTabSwitch = [ discard | save ]
Mit diesem Schalter wird die Strategie gewählt, was passiert, wenn Werte auf dem Formular geändert wurden und der Anwender den Tab wechselt.
Werteprüfung beim Laden
datasheet.validate.onLoad.enabled = [ true | false ]
Ist dieser Schalter auf true gesetzt, werden die Werte nach dem Laden des Datenblatts überprüft, z.B. ob Pflichtfelder ausgefüllt sind.
Warnung bei leeren Pflichtfeldern
datasheet.validate.requiredWarning.enabled = [ true | false ]
Ist dieser Schalter auf true gesetzt, wird bei nicht ausgefüllten Pflichtfeldern ein Fehlertext gezeigt, ansonsten werden diese Felder nur rot umrandet.
Verhalten beim Klick auf Filelink-Einträge
datasheet.fileLinks.downloadOnClick = [ false | true ]
Standardmäßig wird beim Anklicken des Namens einer in REWOO Scope hinterlegten Datei die Vorschau geöffnet (sofern diese für das Dateiformat verfügbar ist). Um die Datei herunterladen zu können, wird außerdem links vom Dateinamen ein Download-Symbol eingeblendet. Wird der Parameter hingegen auf true gesetzt, so wird die Datei beim Anklicken des Dateinamens heruntergeladen. Um die Vorschau zu öffnen steht dann eine Schaltfläche in Form eines Augen-Symbols links vom Dateinamen zur Verfügung.
sichtbare Schaltflächen von WYSIWYG-Editoren
datasheet.richtext.buttons = Undo,Redo,Bold,Italic,Underline,NumberedList,BulletedList,Outdent,Indent,JustifyLeft,JustifyCenter,JustifyRight,JustifyBlock,FontSize,TextColor
Liste mit Schaltflächen von WYSIWYG-Editoren in der Anwendung. Einstellungen an RichText-Feldern übersteuern diese Liste. Mögliche Schaltflächen sind: Cut, Copy, Paste, Undo, Redo, Bold, Italic, Underline, Strike, Subscript, Superscript, NumberedList, BulletedList, Outdent, Indent, JustifyLeft, JustifyCenter, JustifyRight, JustifyBlock, Font, FontSize, TextColor, BGColor, Format, Source, About
Größenveränderung von WYSIWYG-Editoren
datasheet.richtext.resizable = [ false | true ]
Legt fest, ob WYSIWYG-Editoren in der Größe verändert werden können. Einstellungen an RichText-Feldern übersteuern diesen Schalter.
Nachfrage wenn Unterschriften ungültig werden
datasheet.signature.forceInvalidationOnValueChange = [ false | true ]
Ist der Schalter auf false und werden durch Wertänderungen Unterschriften ungültig, erscheint ein Dialog, ob der Anwender fortfahren möchte.
Position der Controls für Tabellen-Felder im HTML-Client
datasheet.table.buttonPosition = [ left | right ]
Standardmäßig wird der Plus- und Minus-Button auf der rechten Seite jeder Tabellen-Zeile eingeblendet. Wird der Wert auf left gesetzt, werden beide Buttons auf der linken Seite spiegelverkehrt gerendert (d.h. zuerst der Plus-, dann der Minus-Button).
Breadcrumb über dem Datenblatt
datasheet.breadcrumb.enabled = [ false | true ]
Legt fest, ob über dem Datenblatt eine Breadcrumb angezeigt wird. Da alle Datenblätter in eine Baumstruktur eingehängt sind, zeigt die Breadcrumb alle Elternelemente.
Sichtbarkeit von Datenblattinformationen
datasheet.footer.enabled = [ false | true ]
Legt fest, ob unterhalb des Datenblatts Informationen wie der Versionszeitstempel, der Autor der letzten Änderung und der Status angezeigt werden.
Schnellspeichern-Dialog im HTML-Client anzeigen
datasheet.quickOperationsPopup.enabled = [ false | true ]
Hat der Benutzer Änderungen auf dem aktuellen Datenblatt vorgenommen und ein wenig nach unten gescrolled, wird rechts unten ein kleines Pop-Up angezeigt, mit dessen Hilfe die Änderungen gespeichert oder verworfen werden können. Das Einblenden des Dialogs kann verhindert werden, in dem dieser Parameter auf false gesetzt wird.
Y-Offset für den Schnellspeichern-Dialog im HTML-Client
datasheet.quickOperationsPopup.yOffset = 250
Dieser Parameter definiert, wie viele Pixel der Anwender nach unten scrollen muss, bis der Schnellspeichern-Dialog erscheint. Mit 0 ist der Dialog immer sichtbar.
Mail-Button bei Tabellenansichten einblenden
mobile.tableview.mailbutton = [ false | true ]
Enthält eine Tabellenansicht mit auswählbaren Zeilen eine Spalte vom Typ Email, so wird nach dem Setzen dieser Option automatisch ein "Mail-Senden"-Button beim Öffnen der Tabellenansicht eingeblendet. Wählt der Benutzer nun eine oder mehrere Zeilen aus und klickt auf den Button, öffnet sich eine neue Mail im Standard-Email-Client des Benutzers mit den ausgewählten Adressen als Empfänger. Achtung: gibt es mehr als eine Email-Spalte in der Tabellenansicht, wird die am weitesten links stehende Spalte der Definition ausgewählt.
Menge der Einträge auf einer Seite der Tabellenansicht
mobile.tableview.pagingsize = 50
Anzahl der Einträge, die auf einer Seite einer Tabellenansicht dargestellt werden. Übersteigt die Anzahl der Zeilen einer Tabellenansicht den hier eingetragenen Wert, so wird eine weitere Seite erstellt, die der Benutzer über die Navigationsleiste der Tabellenansicht erreichen kann.
Anwenderspezifische Filter für Tabellenansichten
mobile.tableview.filter.storable = [ false | true ]
Über diesen Schalter kann das Speichern von Filtern für Tabellenansichten ermöglicht werden.
Anzahl der sichtbaren Filterspalten
mobile.tableview.filter.maxInitialColumns = 5
Ist die Tabellenansicht ungefiltert, werden im Filterdialog für die n Spalten vom linken Tabellenrand Filtereingaben angezeigt.
Größe von Thumbnails in Tabellenansichten
mobile.tableview.imagesize = 60
Maximale Breite und Höhe der Thumbnails in Pixel, wenn in der Tabellenansicht ein Image-Feld als Spalte verwendet wird.
geöffnete Gruppen in der Liste der Tabellenansichten
tableview.groups.expand = [ none | first | all ]
Bestimmt, welche Gruppen nach dem Laden der Liste der Tabellenansichten geöffnet sind.
Standardfarbe von Balken in Graphen über Tabellenansichten
tableview.chart.defaultColor = #0069c0
Diese Farbe ist die Standardfarbe für Balken in einem Chart über einer Tabellenansicht.
Standardfarben von unterteilten Balken in Graphen über Tabellenansichten
tableview.chart.defaultColors = #2196F3,#ff9800,#4caf50,#f44336,#9c27b0,#795548,#6ec6ff,#ffc947,#80e27e,#ff7961,#d05ce3,#a98274,#0069c0,#c66900,#087f23,#ba000d,#6a0080,#4b2c20
Diese Liste an Farben wird für Balken in einem Chart über einer Tabellenansicht verwendet, wenn diese Balken segmentiert werden. Die Werte werden sortiert und die Farben in der angegebenen Reihenfolge entsprechend zugeordnet. Sollten zu wenig Farben definiert sein, wird nach dem Ende der Liste wieder vorne in der Liste angefangen.
Farbe für Balken ohne Wert in Graphen über Tabellenansichten
tableview.chart.emptyColor = #707070
Diese Farbe wird für Balken ohne Wert in einem Chart über einer Tabellenansicht verwendet.
rote Farbe für Ampeln in Graphen über Tabellenansichten
tableview.chart.redColor = #cc2828
Dieses Rot wird für Ampeln und Bedingungen in einem Chart über einer Tabellenansicht verwendet.
gelbe Farbe für Ampeln in Graphen über Tabellenansichten
tableview.chart.yellowColor = #ffc400
Dieses Gelb wird für Ampeln und Bedingungen in einem Chart über einer Tabellenansicht verwendet.
grüne Farbe Balken für Ampeln in Graphen über Tabellenansichten
tableview.chart.greenColor = #53ba50
Dieses Grün wird für Ampeln und Bedingungen in einem Chart über einer Tabellenansicht verwendet.
Massenänderungen von Datumswerten in Tabellenansichten
tableview.bulkChange.date = [ input | offset ]
Bei input wird ein festes Datum für alle ausgewählten Zeilen gesetzt, bei offset werden alle Datumswerte um die angegebene Zeitspanne verschoben. Um Massenänderungen in einer Tabellenansicht zu aktivieren, muss das Zugriffsrecht der entsprechenden Spalte auf Massenänderung gesetzt werden und die Option 'Zeilen selektierbar' aktiviert werden.
Standardfarbe im Kalender
calendar.defaultColor = #ff7961
Diese Farbe ist die Standardfarbe für Termine in einem Kalender.
Kategoriefarben im Kalender
calendar.colors = #6ec6ff,#ffc947,#80e27e,#ff7961,#d05ce3,#a98274,#2196F3,#ff9800,#4caf50,#f44336,#9c27b0,#795548
Diese Liste an Farben wird für die Kategorien in Kalendern verwendet. Die Kategorien werden alphabetisch sortiert und die Farben in der angegebenen Reihenfolge entsprechend zugeordnet. Sollten zu wenig Farben angegeben sein, wird nach dem Ende der Liste wieder vorne in der Liste angefangen.
Farbe für Termine ohne Kategorie
calendar.emptyColor = #cccccc
Diese Farbe wird für Termine ohne Kategorie verwendet.
Art der HTML-Navigation
mobile.navigator.style = [ finder | legacy ]
Die Einstellung finder aktiviert eine Darstellung der Hierarchie in Listen wie sie auch im Finder von macOS verwendet wird. Mit legacy erhält man den alten Navigator, der nur die aktuelle Ebene und den Pfad anzeigt.
Verhalten beim Anklicken eines Links in der HTML-Navigation
mobile.navigator.elementLinkOpensDatasheet = [ false | true ]
Legt fest, ob beim Anklicken eines Elements im Navigator der HTML-Ansicht das entsprechende Datenblatt geöffnet werden soll (Wert "true") oder ob in diesem Fall die Kindelemente angezeigt werden sollen (Wert "false"). Dabei ist zu beachten, dass trotz gesetzter Option nur dann tatsächlich das Datenblatt angezeigt wird, wenn dieses anzuzeigende Formularfelder aufweist. Ist das Datenblatt vollständig leer, wird kein weißes Datenblatt angezeigt, sondern stattdessen automatisch zur Übersicht der Kindelemente weitergeblättert.
Sichtbare Status im Navigator
mobile.navigator.visibleStates = IN_PLANNING,ACTIVE,ON_HOLD,CLOSED
Liste der Status, die im HTML-Navigator für normale Anwender sichtbar sein sollen.
Verwendung von pdf.js
mobile.lightbox.forcePDFJS = [ false | true ]
Legt fest, ob die Verwendung von pdf.js erzwungen wird oder ob der Browser-eigene PDF-Renderer verwendet wird, sofern dieser vorhanden ist.
Folgeaktion wenn keine Rechte vorhanden
mobile.noRights.redirect = [ home | navigator | search | tables ]
Dieser Schalter bestimmt, zu welcher Ansicht der Anwender weitergeleitet wird, wenn er ein Datenblatt aufruft, aber keine Berechtigung dazu hat.
Folgeaktion nach eigenem Rechteentzug
datasheet.connectionButton.noRights = [ ask | redirect ]
Dieser Schalter bestimmt was passiert, wenn der Anwender sich selbst mit einem ConnectionButton die Rechte am aktuellen Datenblatt entzieht. Entweder erscheint ein Dialog, der die Situation erklärt und die Weiterleitungen als Button anbietet, oder der Anwender wird direkt weitergeleitet.
Längenmenü der Account-Liste
account.list.lengthMenu = [10,25,50,100]
Diese Liste wird dem Anwender als Dropdown angeboten.
Initiale Seitenlänge der Account-Liste
account.list.pageLength = 10
Diese Länge der Account-Liste wird beim ersten Öffnen verwendet. Der Anwender kann die Anzeige über das Längenmenü verändern.

System-Konfiguration

Timeout
loginTimeout = 1800
Zeit in Sekunden bis der Anwender wegen Inaktivität abgemeldet wird.
Bookmarks
feature.bookmarks.enabled = [ true | false ]
Schalter, ob das Erstellen von Bookmarks zur Verfügung steht.
Kalender
feature.calendar.enabled = [ true | false ]
Schalter, ob das Verwenden von Kalendern zur Verfügung steht.
Bildbearbeitung
feature.imageEditor.enabled = [ false | true ]
Legt fest, ob Bilddateien direkt in der HTML-Oberfläche von Scope bearbeitet werden können.
Kanban
feature.kanban.enabled = [ true | false ]
Schalter, ob das Verwenden von Kanban zur Verfügung steht.
Meetings
feature.meetings.enabled = [ true | false ]
Schalter, ob das Erstellen von Meetings zur Verfügung steht.
Nachrichten
feature.messages.enabled = [ true | false ]
Schalter, ob der Versand von Scope-Nachrichten zur Verfügung steht. Wenn der Versand von Nachrichten ausgeschaltet ist, werden die entsprechenden Programmteile wie Inbox und Konfiguration ausgeblendet.
Mandantenfähigkeit
feature.multitenancy.enabled = [ true | false ]
Schalter, ob die Aufteilung in mehrere Mandanten in der Account-Verwaltung zur Verfügung steht.
SAML2
feature.saml2.enabled = [ true | false ]
Schalter, ob Saml2 als Authentifizierungsverfahren zur Verfügung steht.
TaskView
feature.taskView.enabled = [ true | false ]
Schalter, ob das Verwenden von Projektansichten zur Verfügung steht.
Nachrichten unterdrücken
message.mute = [ true | false ]
Schalter, um den Versand von Scope-Nachrichten global zu aktivieren bzw. zu deaktivieren.
Nachrichten über Statusänderungen unterdrücken
message.stateChange.mute = [ true | false ]
Schalter, um den Versand von Benachrichtigungen über Statusänderungen global zu aktivieren bzw. zu deaktivieren. Diese Nachrichten haben einen merklichen Einfluss auf die Laufzeit. Es ist besser, mittels Condition-Felder, einer Statusbedingung und der Systemaktion MESSAGE Nachrichten über Statusänderungen dort zu erzeugen, wo sie von Interesse sind.
Ablageverzeichnis
file.storagedir = /home/rewoo/rewoo-admin/storage/rewoo
Absoluter Pfad auf das Ablageverzeichnis von REWOO Scope für die Dateien, den Suchindex, die ETL-Skripte und -Dateien und die Vorschau-Dateien und PDFs.
Maximale Dateigröße
file.maxSizeInMB = 100
Legt die maximale Größe in Megabytes fest, die eine einzelne Datei in Datei-Feldern (FileLinks, Image, SpreadsheetFile) haben kann. Beim Versuch größere Dateien hochzuladen, wird dem Anwender eine Fehlermeldung angezeigt und die jeweilige Datei nicht hochgeladen. Das Limit bezieht sich nicht auf FileLinks-Felder als ganzes, sondern nur auf einzelne Dateien.
Maximale Dateigröße für Drag'n'Drop
file.maxDragNDropSizeInMB = 10
Legt die Maximalgröße in Megabytes für Drag'n'Drop-Aktionen in der Web-Oberfläche fest. Der Wert bezieht sich auf die Gesamtgröße der Dateien. Achtung, Limitierungen des verwendeten Browsers gelten weiterhin.
Hash-Algorithmus für Datei-Prüfsummen
file.hash.algorithm = [ MD2 | MD5 | SHA1 | SHA224 | SHA256 | SHA384 | SHA512 | SHA3_224 | SHA3_256 | SHA3_384 | SHA3_512 ]
Zu jeder in Scope gespeicherten Datei wird eine Prüfsumme berechnet, um die Integrität der Datei zu einem späteren Zeitpunkt überprüfen zu können. Hierfür stehen mehrere Hash-Algorithmen zur Verfügung. Wir empfehlen mindestens SHA256. Um die SHA3-Algorithmen zu verwenden, muss mindestens Java 9 verwendet werden.
Algorithmus für den Seriendruck
output.mailmerge.method = [ auto | new ]
Der neue Algorithmus unterstützt das Drucken von Table und Image und ist für den Druck von großen Mengen schneller, aber er unterstützt keine Platzhalter in Kopf- und Fußzeilen. In der Einstellung "auto" wird der neue Algorithmus nur genommen, wenn Platzhalter für Table oder Image in der Vorlage enthalten sind.
Attribut zum Anmelden
auth.login.type = [ username | email ]
Dieser Schalter gibt an, ob Anwender sich mit dem Namen oder mit ihrer E-Mail-Adresse anmelden.
Direkter Zugriff auf administrative Funktionen
auth.directAdmin.enabled = [ false | true ]
Dieser Schalter gibt an, ob Accounts vom Typ Power oder Admin direkten Zugriff auf die administrativen Funktionen Designer, Accountverwaltung und Admin-Panel haben, oder ob dieser Zugriff für die aktuelle Sitzung erst aktiviert werden muss. Ist der direkte Zugriff ausgeschaltet, sieht die Anwendung aus wie für normale Anwender.
Sprache der Login-Seite
auth.ignoreRequestLocale = [ false | true ]
Dieser Schalter gibt an, ob die vom Client übermittelte Spracheinstellung beim Login-Bildschirm beachtet werden soll oder nicht. Wird sie ignoriert, gilt die Einstellung in defaultUserLocale.
Dauer der Passwort-Prüfung
auth.constLoginTimeInMs = 300
Die Zeit zur Überprüfung des Passworts wird künstlich auf diese Dauer ausgedehnt, um Angriffe zu erschweren.
Länge von generierten Passwörtern
auth.password.generate.length = 16
Die Länge von Passwörtern, die automatisch generiert werden: in den Einstellungen, beim Anlegen neuer Accounts, wenn der Anwender ein neues Passwort beantragt oder der Administrator die Passwörter der Accounts zurücksetzt (immer vorausgesetzt, dass sich die Accounts nicht über AD, LDAP oder SAML authentifizieren).
Mindestlänge von Passwörtern
auth.password.minLength = 8
Die minimale Länge von Passwörtern, die der Anwender setzen kann.
secure-Schalter des Session-Cookies
auth.sessionCookie.secure = [ false | true ]
Wenn der Anwender sich erfolgreich angemeldet hat, wird ein Session-Cookie gesetzt. Mit diesem Schalter wird festgelegt, ob das Cookie ausschließlich bei verschlüsselten https-Verbindungen übertragen werden soll (true) oder immer (false). Dieser Schalter sollte auf true stehen, um man-in-the-middle Angriffe zu verhindern.
httpOnly-Schalter des Session-Cookies
auth.sessionCookie.httpOnly = [ false | true ]
Wenn der Anwender sich erfolgreich angemeldet hat, wird ein Session-Cookie gesetzt. Mit diesem Schalter wird festgelegt, ob das Cookie über Javascript ausgelesen werden kann (false) oder nicht (true). Dieser Schalter sollte auf true stehen, um Cross-Site Scripting (XSS) Angriffe zu verhindern.
sameSite-Schalter des Session-Cookies
auth.sessionCookie.sameSite = [ STRICT | LAX | NONE ]
Wenn der Anwender sich erfolgreich angemeldet hat, wird ein Session-Cookie gesetzt. Mit diesem Schalter wird festgelegt, ob das Cookie ausschließlich zum Server übertragen werden soll, der das Cookie erzeugt hat (STRICT), ob das Cookie auch beim navigieren von Links übertragen werden soll (LAX), oder ob es keine Restriktionen bei Cross-Site-Requests gibt (NONE). Dieser Schalter sollte auf STRICT stehen, um maximale Sicherheit der Anwender-Sitzungen zu gewährleisten.
Name des Session-Cookies
auth.sessionCookie.name = JSESSIONID
Schalter für die Zwei-Faktor-Authentifizierung
auth.mfa.enabled = [ true | false ]
Mit diesem Schalter kann die Zwei-Faktor-Authentifizierung für alle Anwender deaktiviert werden.
Länge des Geheimnisses der Zwei-Faktor-Authentifizierung
auth.mfa.secret.length = 54
Bei der Zwei-Faktor-Authentifizierung teilen der Server und eine App auf einem mobilen Gerät des Anwenders ein Geheimnis. Mit der aktuellen Zeit und diesem Geheimnis können beide Seiten das aktuell gültige Einmal-Passwort errechnen.
Achtung: Einige Apps wie der Google Authenticator beachten diese Einstellung nicht. Ein anderer Wert sollte nur verwendet werden, wenn sichergestellt ist, dass alle Anwender Apps verwenden, die damit umgehen können (z.B. freeOTP oder andOTP).
Länge des Einmal-Passworts
auth.mfa.code.digits = 6
Die Anzahl der Ziffern des Einmal-Passworts.
Achtung: Einige Apps wie der Google Authenticator beachten diese Einstellung nicht. Ein anderer Wert sollte nur verwendet werden, wenn sichergestellt ist, dass alle Anwender Apps verwenden, die damit umgehen können (z.B. freeOTP oder andOTP).
Gültigkeitsdauer des Einmal-Passworts
auth.mfa.code.period = 60
Die Zeit in Sekunden, die das Einmal-Passwort gültig ist.
Achtung: Einige Apps wie der Google Authenticator beachten diese Einstellung nicht. Ein anderer Wert sollte nur verwendet werden, wenn sichergestellt ist, dass alle Anwender Apps verwenden, die damit umgehen können (z.B. freeOTP oder andOTP).
Der Hash-Algorithmus der Zwei-Faktor-Authentifizierung
auth.mfa.code.hash = [ SHA1 | SHA256 | SHA512 ]
Bei der Zwei-Faktor-Authentifizierung teilen der Server und eine App auf einem mobilen Gerät des Anwenders ein Geheimnis. Mit der aktuellen Zeit und diesem Geheimnis können beide Seiten das aktuell gültige Einmal-Passwort errechnen.
Achtung: Einige Apps wie der Google Authenticator beachten diese Einstellung nicht. Ein anderer Wert sollte nur verwendet werden, wenn sichergestellt ist, dass alle Anwender Apps verwenden, die damit umgehen können (z.B. freeOTP oder andOTP).
Weiterleitungsziel ohne Session
auth.redirect = [ basic | saml ]
Wenn der Anwender keine gültige Session besitzt, wird er entweder auf die Anmeldemaske oder auf die SAML-Anmeldung umgeleitet.
Anlegen von Accounts
account.creation.authorizedRoles = ADMIN,POWER
Die hier angegebenen Rollen dürfen basierend auf einem User-Template neue Accounts anlegen. Mögliche Rollen sind ADMIN, POWER, CONCURRENT und STANDARD.
Login-Knoten
account.login.onlyObjectNodes = [ true | false ]
Dieser Schalter gibt an, ob Login-Knoten nur unterhalb von Objekten vorkommen dürfen oder überall.
Kopplung von Account und Knotenstatus
account.stateFollowsLoginState.enabled = [ true | false ]
Wenn der Login-Knoten den Status ändert, folgt der damit verbundene Account. Wird der Knoten aktiv bzw. inaktiv, wird auch der Account aktiviert bzw. deaktiviert. Wird der Knoten geschlossen, archiviert oder verworfen, wird der Account terminiert und kann nicht mehr benutzt werden.
Größe der Task-Liste pro User
user.taskList.size = 500
Alle langlaufenden Aktionen durch CopyButtons oder ActionButtons werden als asynchroner Task gestartet. Dieser Parameter steuert die Größe der Liste, die auch abgearbeitete Tasks enthält.
Virenscanner
clamav.bin = /usr/bin/clamscan
Absoluter Pfad auf den Malware-Scanner ClamAV.
Bidirektionales Prev/Next
datasheet.bidirectional_prev_next.enabled = [ true | false ]
Schalter für die automatische Verlinkung von PrevLinks- und NextLinks-Feldern, sodass das Hinzufügen oder Löschen von Links auf der einen Seite zur automatischen Anpassung auf der Gegenseite führt. Die Option darf aus systeminternen Gründen nur mit der bisherigen, statischen Berechnung der Vorgänger- und Nachfolgerknoten gesetzt sein. Der unter Berechnungsalgorithmus zur Bestimmung von Vorgänger- und Nachfolgerknoten beschriebene Konfigurationsparameter muss also bei der Verwendung auf false gesetzt sein.
Berechnungsalgorithmus zur Bestimmung von Vorgänger- und Nachfolgerknoten
datasheet.legacy_prev_next.enabled = [ true | false ]
Seit Version 10.7.2 stehen zwei unterschiedliche Varianten zur Verfügung, um die PrevLinks- und NextLinks-Felder zu befüllen. Bei der bisherigen Variante ( = true) müssen PrevLinks- und NextLinks-Felder mit explizit benannten Zielknoten befüllt werden. Es ist damit z. B. nicht möglich, auf ein anderes ElementLinks-Feld zu verweisen, welches seinerseits dann die eigentlichen Zielknoten definiert. Der neue Berechnungsalgorithmus ( = false) kann mit derartigen, berechneten Zielen umgehen. Allerdings darf er nur verwendet werden, wenn die unter Bidirektionales Prev/Next beschriebene Option ausgeschaltet wurde.
Anmerkung: Bei bestehenden Installationen, die bereits PrevLinks- oder NextLinks-Felder verwenden, wird aus Kompatibilitätsgründen der alte Algorithmus weiterverwendet. Soll auf den neuen Mechanismus umgeschaltet werden, so reicht es nicht aus, dieses Flag auf false zu setzen. Stattdessen müssen die internen Strukturen der PrevLinks- und NextLinks-Verknüpfungen neu bestimmt werden. Dies geschieht über die eigens hierfür zur Verfügung gestellte Reparaturfunktion.
URL für vormodellierte Lösungen
import.solutions.url = https://trial.rewoo.net/solutions/solutions.xml
Internetadresse für die Liste an vormodellierten Lösungen. Die Vorbelegung zeigt auf die Liste an Lösungen, die von der REWOO Software GmbH bereit gestellt werden.
Pfad des Debug-Skripts
logs.debugScript = /home/rewoo/rewoo/scripts/debug.sh
Absoluter Pfad auf das Skript, mit dem über das Admin-Panel ein Debug-Paket erstellt werden kann.
Name der Software
app.displayName = REWOO Scope
Der hier konfigurierte Name wird überall benutzt, um die Software zu benennen.
Externe URL
app.publicUrl = https://www.rewoo.de/rewoo
URL, über die die Anwendung über das Internet zu erreichen ist. Diese Url wird z.B. für WebDAV-Links in der Anwendung oder für Links in E-Mails verwendet.
app.logo.path = 
Absoluter Pfad auf eine Bild-Datei im PNG-Format mit maximal 240x240 Pixel, die als Logo verwendet werden soll. Wenn keine Datei angegeben ist, wird das Scope-Logo verwendet.
Maximale Breite des Logos
app.logo.maxWidth = 250
Ist das Bild breiter als die hier angegebene Breite, wird das Bild unter Beibehaltung des Seitenverhältnisses verkleinert. Ist das Bild schmaler, wird es nicht vergrößert. Die Standardeinstellung beträgt 250 Pixel.
Maximale Höhe des Logos
app.logo.maxHeight = 250
Ist das Bild höher als die hier angegebene Höhe, wird das Bild unter Beibehaltung des Seitenverhältnisses verkleinert. Ist das Bild weniger hoch, wird es nicht vergrößert. Die Standardeinstellung beträgt 250 Pixel.
Logo im Seitenmenü
app.logo.navmenu.enabled = [ false | true ]
Aktiviert die Anzeige des Logos am unteren Ende des Seitenmenüs.
Aktivierung einer Information für alle Anwender
app.disclaimer.enabled = [ false | true ]
Aktiviert die Anzeige eines Dialogs mit Informationen für den Anwender direkt nach der Anmeldung. Der Anwender kann die zukünftige Anzeige unterdrücken. Wird der Text geändert, werden diese Markierungen für alle Anwender entfernt und der Dialog erscheint erneut.
Titel der Anwenderinformation
app.disclaimer.title = Disclaimer
Titel des Dialogs mit Anwenderinformationen.
Text der Anwenderinformation
app.disclaimer.text = 
Text des Dialogs mit Anwenderinformationen.
Hintergrundfarbe des Anmeldebildschirms
app.login.background = [ dark | light | custom ]
Die Hintergrundfarbe des Anmeldebildschirms kann zwischen dunkel und hell umgeschaltet werden. Die Schriftfarbe wird entsprechend angepasst. Wird der Wert auf custom gestellt, können mit den beiden Schaltern app.login.color und app.login.backgroundColor die Farben selbst gewählt werden.
Schriftfarbe des Anmeldebildschirms
app.login.color = #1A365B
Die Schriftfarbe des Anmeldebildschirms, sofern app.login.background auf custom steht.
Hintergrundfarbe des Anmeldebildschirms
app.login.backgroundColor = #fcfcfc
Die Hintergrundfarbe des Anmeldebildschirms, sofern app.login.background auf custom steht.
Webhooks
webhooks.enabled = [ false | true ]
Aktiviert die Möglichkeit, mittels Webhooks andere Dienste an Scope zu koppeln.
Grenzwert des Rechte-Prefetches für ein TLE
prefetch.elements.minChangedElementsPerTle = 30
REWOO Scope muss bei Änderungen an Elementen (z.B. einem Status-Wechsel) häufig die Rechte auslesen, welche die einzelnen Benutzer an diesen Elementen besitzen. In manchen Fällen (z.B. dem Schließen einer größeren Element-Hierarchie) kann es laufzeittechnisch günstiger sein, alle Rechte auf ein Mal auszulesen, anstatt diese nach und nach zu bestimmen. Dieser Konfigurationsparameter gibt an, ab welcher Menge von Elementänderungen unter einem Toplevel-Element alle Rechte auf ein Mal ausgelesen werden sollen. Da dies unter Umständen eine sehr teure Operation sein kann, sollte die Grenze nicht zu niedrig angesetzt werden. Das System sorgt übrigens, unabhängig vom hier eingestellten Wert dafür, dass alle Rechte ausgelesen werden, falls sich die Elementänderung auf ein Top-Level-Element selbst bezieht. Setzt man den Wert auf 0, werden grundsätzlich immer alle Rechte ausgelesen. Dies entspricht dem Verhalten vor der Version 13.
Grenzwert des Rechte-Prefetch für ein Knoten
prefetch.userRights.maxConnectionsPerNode = 50
Bei Änderungen am Berechtigungsgraphen werden normalerweise alle Rechte bezogen auf einen Knoten auf einmal aus der Datenbank gelesen. In ungünstigen Fällen werden damit viele Daten unnötig ausgelesen. Wenn z.B. nur für einen Anwender eine neue Beziehung hinzugefügt wird, sind die Rechte auf allen anderen Beziehungen irrelevant. Deshalb kann es für manche Modellierungen sinnvoll sein, diesen Wert zu reduzieren, weil die meisten Rechte nur individuell vergeben werden und nicht über Rollen-Knoten.
Grenzwert für das Lesen des gesamten Formulars
prefetch.values.minEntriesPerForm = 1
Bei Berechnungen über die Formelsprache werden normalerweise alle Werte von referenzierten Formularen aus der Datenbank gelesen. Bei sehr großen Formularen kann dies zu sehr teuren Leseoperationen führen. Dieser Schalter legt fest, ab wie vielen referenzierten Feldern das ganze Datenblatt gelesen wird. Ist dieser Schalter auf 1, werden immer alle Werte gelesen.
Grenzwert für das Lesen aller Werteabhängigkeiten
prefetch.dependencies.minEntriesPerForm = 10000
Bei Berechnungen über die Formelsprache werden normalerweise nur die Abhängigkeiten zu den referenzierten Feldern aus der Datenbank gelesen. Wenn die Formulare sehr viele Felder enthalten und diese über Formeln stark mit einander verknüpft sind, kann es sinnvoller sein, alle Abhängigkeiten des Formulars auf einmal auszulesen.
Prefetching und Caching von Tabellenansicht-Werten
tableview.cachevalues.enabled.ids = 14[,15,16,...]
Tabellenansichten können unter Umständen sehr viele Datenblätter (und damit auch Werte) umfassen. Um den Zugriff auf besonders große (und langsame) Ansichten zu beschleunigen, können mit diesem Konfigurationsparameter die REWOO Scope internen IDs der Tabellenansichten hinterlegt werden, für welche dauerhaft alle Werte im Speicher vorgehalten werden sollen. Nach dem Hinzufügen der IDs werden die entsprechenden Werte automatisch ausgelesen und im Speicher abgelegt. Dabei kümmert sich das System auch vollautomatisch darum, beim Hinzufügen neuer Elemente, dem Ändern bestehender Werten oder bei Anpassungen der Definitionen der Tabellenansichten den Cache zu synchronisieren. Die IDs der Tabellenansichten ermittelt man am Einfachsten, in dem man die jeweilige Ansicht im HTML-Client öffnet und sie dort aus der URL im Browser ausliest. So hat eine fiktive Tabellenansicht mit dem Link https://eintestsystem/test/mobile/tableViews/14 die ID 14, weil die URL mit der Zahl 14 endet.
Anmerkung: Das dauerhafte Halten der Werte einer Tabellenansicht im Speicher kann große Mengen an Hauptspeicher belegen. Deshalb ist zum Einen darauf zu achten, den Cache nur für ausgewählte Tabellenansichten bei Bedarf zu aktivieren, zum Anderen aber auch die Menge des zur Verfügung stehenden Speichers groß genug zu dimensionieren. Ansonsten kann es zu Problemen wie "Out-of-Memory"-Exceptions und einem instabilen Systemverhalten kommen.

Scope Maintenance-Server

Bevor die nachfolgend beschriebenen Einstellungen Wirkung zeigen können, muss der Scope Maintenance-Server zunächst installiert und konfiguriert werden. Dies wird unter Scope Maintenance-Server installieren erläutert. Nachdem der Maintenance-Server erfolgreich gestartet wurde, müssen die nachfolgend beschriebenen Parameter gesetzt werden, um eine Kommunikation zwischen REWOO Scope und dem Scope Maintenance-Server zu gewährleisten.
Aktivierung
maintenance.service.enabled = [ true | false ]
Über diesen Schalter kann die generelle Verwendung des Scope Maintenance-Servers verhindert bzw. erlaubt werden.
PostgreSQL-Pfad
maintenance.service.postgres.path=/usr/bin/
Absoluter Pfad zur lokalen Postgres-Installation auf dem REWOO Scope Server. Der Pfad muss für den Scope Maintenance-Server zugreifbar sein.
PostgreSQL-Port
maintenance.service.postgres.port = 5432
Port der lokalen Postgres-Installation auf dem REWOO Scope Server. Der Port muss für den Scope Maintenance-Server zugreifbar sein.
PostgreSQL-Passwort
maintenance.service.postgres.password =
Passwort zur rewoo-Datenbank auf dem REWOO Scope Server. Hier muss das Passwort für den rewoo-Datenbankbenutzer eingetragen werden. Alternativ kann das Feld auch leer gelassen werden, falls im Dateisystem eine ".pgpass"-Datei existiert und korrekt konfiguriert wurde.
Externe URL
maintenance.service.external.url = http://localhost:8081/scope-maintenance-server
Die URL über die der Scope Maintenance-Server von den Clients aus erreichbar ist. Normalerweise befindet sich der Maintenance-Server von außen betrachtet auf demselben Rechner wie REWOO Scope. Eine eventuelle Weiterleitung an eine andere, interne Adresse wird dann durch den Apache Webserver und eine entsprechende ProxyPass-Regel erreicht. localhost muss hier also durch die Adresse des REWOO Scope Servers ersetzt werden.
Interne URL
maintenance.service.internal.url = http://localhost:8081/scope-maintenance-server
Die URL über die der Scope Maintenance-Server vom REWOO Scope Server aus erreichbar ist. Standardmäßig läuft der Maintenance-Server auf demselben physikalischen Rechner wie REWOO Scope, "localhost" sollte damit die korrekte Server-Adresse sein.
JMX-Port
maintenance.service.jmx.port = 5050

Der Scope Maintenance-Server greift auf einige Funktionen des REWOO Scope Servers über das JMX-Protokoll zu. Standardmäßig wird hierfür der Port 5050 verwendet, der bereits voreingestellt ist.

JMX-Kontext-Name
maintenance.service.jmx.instance.key = [ context | name ]
Das Schlüsselwort für den Namen der Webapplikation ist seit Jetty 9 context, für Jetty 7 und 8 muss dieser Parameter auf name gesetzt werden.