IGE-NG Dokumentation
InGrid: Indizieren, Recherchieren, Visualisieren, Teilen
InGrid: Indizieren, Recherchieren, Visualisieren, Teilen
1 GB Harddrive
Umgebungsvariable | Beschreibung |
---|---|
_JAVA_OPTIONS | Angabe der zu aktivierenden Profile: “-Dspring.profiles.active=postgresql,elasticsearch,ingrid” |
APP_HOST_URL | URL für den Emailversand |
BROKER_URL | URL für die Websocket Verbindung, z.B. “wss://some-domain/ige-ng/ws” |
CONTEXT_PATH | Wenn sich die Anwendung unter einem Kontextpfad befindet, dann muss dies hier eingetragen werden, z.B. “/ige-ng” |
CODELIST_REPO_URL | Die URL zum Codelisr-Repository |
CODELIST_REPO_USER | Der Benutzername zum Codelist-Repository |
CODELIST_REPO_PASSWORD | Das Passwort zum Codelist-Repository |
MAIL_FROM | Absender-Adresse für ausgehende Emails |
KEYCLOAK_URL | URL zu Keycloak |
KEYCLOAK_BACKEND_USER | Keycloak Benutzername |
KEYCLOAK_BACKEND_USER_PASSWORD | Keycloak Passwort |
DATABASE_HOST | IP der Postgres Datenbank |
DATABASE_USERNAME | Postgres - Benutzername |
DATABASE_PASSWORD | Postgres - Passwort |
SHOW_SWAGGER_UI | Aktiviere die Anzeige der Swagger-UI für die API von OGC-API |
WAIT_FOR_PARAM | Starte die Anwendung erst, wenn der eingetragene Dienst erreichbar ist, z.B. “postgres:5432” |
Wenn bei der Konfiguration der Verbindung zu Elasticsearch HTTPS/SSL aktiviert wurde, dann muss ein Zertifikat
hinterlegt werden. Dies muss sich im Docker-Container im Root-Verzeichnis befinden, also /elasticsearch-ca.pem
.
Die Suche nach Daten zu geografischen und umweltbezogenen Themen gestaltet sich nicht immer einfach, vor allem wenn nicht bekannt ist, ob solche Daten überhaupt erhoben wurden, von wem sie erhoben wurden und woher man sie bekommen kann. Der InGrid-Catalog (IGC) hilft, geografische und umweltrelevante Datenbestände aufzufinden und diese zu nutzen.
Analog dem Katalog einer Bibliothek verzeichnet der InGrid-Catalog die landesweit und dezentral vorgehaltenen Datenbestände, ohne sie selbst zu enthalten; er ist also ein Informationssystem über Informationsbestände. Im IGC werden die Datenbestände anhand definierter Eigenschaften beschrieben und jeweils mit der Adresse eines zuständigen Ansprechpartners ausgewiesen. Fachleute, die die Daten erheben, füllen den IGC mit Inhalt und aktualisieren ihn; dadurch wird eine größtmögliche Qualität der Datenbeschreibung erreicht. Eine interne Benutzerverwaltung regelt die Schreib- und Aktualisierungsrechte im IGC.
Die wesentlichen Aufgaben und Vorteile des InGrid-Catalogs sind demnach folgende:
Der InGridEditor ist die Komponente zur Erfassung und Pflege der Metadaten.
Der InGrid-Catalog (IGC) ist ein Metainformationssystem , d.h. ein Informationssystem über Informationsbestände. Im IGC werden also keine originären Datenbestände verwaltet, sondern - wie der Name Katalog schon sagt - ausschließlich Informationen über diese. Der IGC soll die große Menge an geografischen oder umweltrelevanten Daten wieder überschaubar und verfügbar und damit nutzbar machen.
Der zentrale Bestandteil des IGCs sind die sogenannten (Metadaten-)Daten. Sie enthalten die Metainformationen zu den geografischen oder umweltrelevanten Datenbeständen.
Was ist Metainformation? Uns umgebende reale Umweltdaten (wie beispielsweise Wiesen, Wälder, Flüsse, Seen, Luft und Boden) werden vermessen, beobachtet und/oder beurteilt. Daraus erhalten wir Datenbestände bzw. Datensätze, wie z.B. Biotopkartierungen, Messreihen der Gewässer- und Luftgüteüberwachungssysteme, Bodendaten aus Bohrungen und viele andere mehr. Zu jedem Datenbestand kann eine Beschreibung erstellt werden. Diese Metainformation wird als Meta-Datenobjekt bezeichnet, sie beschreibt das Datenobjekt eindeutig; d.h. Metadatenobjekte informieren über das angewandte Messverfahren bzw. über die Art der Datengewinnung, wo und wann diese Daten aufgenommen wurden und in welcher Form - digital, analog, als Karten o.ä. - die Datensätze vorliegen. Die Metadaten enthalten also die Metainformationen zu den Umweltdaten.
Wie bereits angedeutet, reicht es nicht aus zu wissen, mit welcher wissenschaftlichen Methode ein Datenobjekt erhoben wurde. Um mit Hilfe eines Datensatzes eine richtige Aussage zu machen oder eine Schlussfolgerung zu ziehen, benötigt man auch Informationen zu Ort und Zeit der Erhebung; sonst ist der Datenbestand wertlos. Es ist beispielsweise wesentlich zu wissen, ob eine Messstation eines Luftgüteüberwachungssystems ihre Messungen in der Innenstadt oder in ländlichem Gebiet macht oder wann ein bestimmtes Biotop kartiert wurde.
Nicht immer sind die Datenbestände mit dem klassischen Messungsbegriff vereinbar, so dass die Metadatenobjekte in verschiedene Datensatz-Typen unterschieden werden. Dabei wurde zugrunde gelegt, dass Daten klassifiziert werden können.
Es werden sieben Datensatz-Typen unterschieden:
Metadatenobjekte enthalten Angaben zum Fach-, zum Raum- und Zeitbezug eines Datensatzes. Der Fachbezug macht Angaben zur Art und Weise der Datengewinnung und ihrer Genauigkeit, Raum- und Zeitbezug geben an, wo und wann das Datenobjekt gewonnen wurde.
Jedem Datensatz wird mindestens eine Adresse zugeordnet (z.B. Adresse des Verwalters oder des Ansprechpartners). Durch diese Zuordnungsmöglichkeiten (Verweise) müssen die Adressen jeweils nur einmal in die Adressverwaltung des IGC eingegeben bzw. gepflegt werden.
Die Adressen lassen sich in zwei Kategorien unterscheiden:
Die Gesamtheit der Datensätze und Adressen, d.h. der Metadatenbestand, wird als Katalog bezeichnet.
Im IGC umfasst ein Katalog sowohl Datensätze als auch Adressen. Die Adressen werden nach Organisationen und Personen unterschieden. Unter Organisationen lassen sich andere Organisationen oder Personen ordnen.
Bei den Datensätze sowie auch bei den Adressen, ermöglichen Ordner eine weitere Art der Strukturierung. Die Struktur der Datensätze gliedert sich im Normalfall in drei weitere Ebenen:
Das Hauptmenü unterscheidet sich, abhängig von der Rolle des eingeloggten Benutzers. So steht einem Katalog-Administrator mehr Funktionen zur Verfügung als einem Autor.
Jedes Hauptmenü kann weitere Untermenüs enthalten. Bei einzelnen Menüpunkten kann zudem zusätzlich eine Funktionsleiste existieren.
Die Navigationsleiste befindet sich in der rechten oberen Ecke des Editors. Sie ist für alle Komponenten und alle Menüpunkte gleich und besteht aus folgenden Punkten:
Das Hauptmenü unterscheidet sich in das für die Metadatenerfassung und das für die Verwaltungsfunktionen. Es bezieht sich auch den aktuellen Katalog und ist am linken Rand des Fensters vorzufinden.
Die Menüpunkte für die Metadatenerfassung sind:
Das Dashboard ist die Einstiegseite für den InGrid-Editor und zeigt eine Zusammenfassung der gerade in Bearbeitung befindlichen Datensätze und Adressen, abhängig vom eingeloggten Benutzer.
Das Dashboard zeigt eine Übersicht des Kataloges in Form einiger allgemeiner Informationen und einer Übersicht aller zuletzt bearbeiteter Datensätze und Adressen.
Im linken Fenster werden die Datensätze und Adressen und ihre Stellung in der Hierarchie des Kataloges angezeigt.
Bei den Objekten sehen Sie den Objektnamen und das Icon der Datensatz-Typ, bei den Adressen den Adresstitel und das Icon des Adresstyps.
Die Icons zeigen den jeweiligen Bearbeitungsstand:
Neuen Datensatz anlegen
Anlegen eines neuen Datensatzes oder einer neuen Adresse im aktuellen Ordner oder, falls man sich gerade auf einem Ordner befindet, unterhalb dessen.
Der getCapabilties Assistent unterstützt die Erfassung von Services in dem Datensatz-Typ Geodatendienst .
Hierzu geben Sie die getCapability-URL des Dienstes an.
Der Assistent fragt den Dienst über diese URL ab und trägt alle in der getCapability verfügbaren Informationen in dan Metadaten-Datensatz ein. Dies sind Informationen wie Titel und Beschreibung aber z.B. auch die vom Dienst zur Verfügung gestellten Operationen.
Es werden die folgenden Dienste unterstützt:
Mit Analyse wird der Assistent gestartet, die Informationen vom Service abgerufen und ein neuer Datensatz mit den erhaltenen Informationen erstellt.
Beim Aufruf des Untermenüpunkts URL-Pflege wird eine Prüfung der in allen Datensätzen vorhandenen URLs durchgeführt. Sie können diese Prüfung später wiederholen, indem Sie auf den Button Prüfung starten klicken.
Je nach Umfang des Kataloges und Auslastung des Servers kann die Überprüfung einige Minuten dauern. Sie kann über Prüfung stoppen gestoppt werden.
Das Ergebnis der URL-Prüfung wird in der darunter stehenden Tabelle angezeigt.
In der Spalte Status wird die Rückmeldung über die Verfügbarkeit der Webseiten dokumentiert. Für Fehler wird ein HTTP-Fehlercode angegeben.
Ein oder mehrere URLs können ersetzt werden, indem Sie die zu ersetzenden URLs in der Tabelle markieren und in das Eingabefeld unter der Tabelle eine neue URL eingeben. Mit der Funktion Ersetzen tauschen Sie die URL aus.
Für den FileUpload kann optional ein Virusscan aktiviert werden. Der Dienst ist per Default deaktiviert.
Zu beachten ist, dass der Viren Scan beim Upload eines Dateiarchivs aus Performance-Gründen nur auf der Archivdatei ausgeführt wird und nicht auf den gepackten Einzeldateien.
Der Dienst wird durch Konfiguration eines der folgenden Validatoren aktiviert:
VirusScanValidator (per Default deaktiviert)
"virusscan":{
"impl":"de.ingrid.mdek.upload.storage.validate.impl.VirusScanValidator",
"properties":{
"command":"\\\\path\\\\to\\\\clamav\\\\clamscan %FILE%",\
"virusPattern":"(?m)^(?=.+: (.+) FOUND$)(.+): .+ FOUND$",\
"cleanPattern":"(?m)^Infected files: 0$",\
"errorPattern":"(?m)^Total errors: \\d+$"\,
"timeout": "60"
}
}
Der VirusScanValidator
setzt die Installation eines Viren Scanners auf dem Betriebssystem des Servers voraus.
Um unterschiedliche Viren Scanner zu unterstützen, wird der Scanner über folgende Parameter konfiguriert:
command
Kommando zur Überprüfung einer Datei. Es muss die Zeichenkette %FILE%
enthalten sein, die durch den zu prüfende Dateipfad ersetzt wird. Das Kommando muss eine Ausgabe liefern, aus der der Status der Datei hervorgeht. Zu beachten ist, dass auch die Überprüfung von Archiven notwendig ist.virusPattern
Regulärer Ausdruck, der auf die Ausgabe des Scans im Falle einer Infektion passt und die Virusname und Dateiname jeweils in einer Gruppe speichertcleanPattern
Regulärer Ausdruck, der auf die Ausgabe des Scans im Falle keiner Infektion passterrorPattern
Regulärer Ausdruck, der auf die Ausgabe des Scans im Falle eines während des Scans auftretenden Fehlers passt (z.B. wenn eine entschlüsselte Datei nicht gescannt werden kann)timeout
(Optional - Default 60
) Timeout für den Aufruf des Virenscanners in SekundenHINWEIS: Da alle Uploads zunächst im Verzeichnis upload.tempdir
gespeichert werden und anschließend vom Virus Scanner explizit geprüft werden (on-demand), sollte zur Vermeidung von Konflikten die on-access Methode des Scanners deaktiviert oder zumindest das temporäre Verzeichnis ausgenommen sein.
RemoteServiceVirusScanValidator (per Default deaktiviert)
"virusscan":{
"impl":"de.ingrid.mdek.upload.storage.validate.impl.RemoteServiceVirusScanValidator",
"properties":{
"url":"http://localhost:3000/v1/"
}
}
Der RemoteServiceVirusScanValidator
verwendet einen Service, der einen Viren Scanner per HTTP Schnittstelle anbindet. Über die Schnittstelle können Scan-Jobs eingestellt werden. Scan Jobs werden mit absoluten Pfaden aufgerufen. Der Service muss daher Zugriff auf das gleiche Filesystem haben wie der IGE-NG.
Bsp: Uploads werden im IGE-NG per Default unter /tmp/ingrid/upload
abgelegt. Der RemoteServiceVirusScanValidator
ruft den Virusscan-Service mit absoluten Pfaden in /tmp/ingrid/upload/...
auf. Der Virusscan-Service muss daher auch Zugriff auf dieses Verzeichnis haben. Wenn IGE-NG und Virsusscan-Service in einem Docker Container laufen, müssen die Pfade im Volume-Mapping entsprechend abgebildet werden.
IGE-NG:
- /mnt/files:/tmp/ingrid/upload
Virusscan-Service
- /mnt/files:/tmp/ingrid/upload
Der Service und die Schnittstellenbeschreibung ist aktuell noch nicht veröffentlicht.
Für die regelmäßige Virenprüfung der Dateiverzeichnisse existiert ein Hintergrundjob, der über folgende Parameter konfiguriert wird:
upload.virusscan.mail.receiver
Empfänger des Virusscan Reportsupload.virusscan.schedule
Definition der Ausführungszeit im Cron pattern Format (Standard: täglich 2 Uhr).upload.virusscan.quarantinedir
Verzeichnis (muss existieren), in das infizierte Dateien verschoben werden sollen (Standard: /tmp/ingrid/upload/quarantine/).In Docker können folgende Umgebungsvariablen gesetzt werden:
VIRUSSCAN_MAIL_RECEIVER
VIRUSSCAN_SCHEDULE
Beim Virusscan werden fehlerhafte Zugriffe auf Dateien (z.B. gelöschte Dateien, fehlende Rechte) und generelle Fehler in einem Report vermerkt und an den konfigurierten Empfänger geschickt. Die Fehler werden auch in das Logfile geschrieben. Wenn ein Virus gefunden wurde, enthält der Report weitere Informationen über infizierten Dateien, den Virus und den Zeitpunkt des Fundes.