Skip to content

Latest commit

 

History

History

webapp

SIMI

Webapplikation zur Pflege der Metainformationen der GDI-SO (Spatial Infrastructure Metadata Interface)

Konfigurieren und Starten des Docker-Image

Die SIMI-Images liegen auf Docker-Hub: https://hub.docker.com/r/sogis/simi

Der Grossteil der Funktionalitäten benötigt einzig einen DB-Connect auf die Meta-DB. Für diese sind die Umgebungsvariablen CUBA_DATASOURCE_* zu setzen sowie CUBA_AUTOMATICDATABASEUPDATE=true, damit das (leere) Schema mit den notwendigen Tabellen initialisiert wird.

ZU BEACHTEN Das Framework kann beim Starten nur im Schema public automatisch die Tabellen anlegen. Zu schnellen Ausprobieren also im Schema "public" arbeiten.

Siehe doc/docker-compose.yml als Beispiel einer Minimal-Konfiguration.

Log-Output des konfigurierten Environment

Variablen können im Framework an verschiedensten Stellen konfiguriert werden (ENV, *.properties, Sys-Tabellen, ...). Damit schnell erkennbar wird, welche Variable zur laufzeit wie konfiguriert ist, werden die Werte beim Startup (verschlüsselt) in Log-Output geschrieben.

...
... - SIMI Configration values 
...----------------------------------------------------
... - 'CUBA_DATASOURCE_JDBCURL': [jdbc:postgresql://localhost:5432/postgres?currentSchema=public]
... - 'CUBA_DATASOURCE_PASSWORD': [Secret value with 8 digits]
... - 'CUBA_DATASOURCE_USERNAME': [postgres]
...

Versionierung (Image Tags)

Die Versionierung folgt dem Pattern [major].[minor].[revision]

Auslöser für Versions-Inkrementierungen:

  • major: Umfangreiche Erweiterung des Metamodells und / oder der Funktionalität
  • minor: Breaking Change des Metamodells für die Trafos oder Änderung der notwendigen ENV-Variablen.
  • revision: (Kleinere) funktionale Anpassung

Als Nummer der revision wird automatisch die "Build-Nummer" der github action übernommen. Major und minor werden bewusst von der Entwicklung gesetzt.

Umgebungsvariablen

Die Konfiguration erfolgt mittels der folgenden Umgebungsvariablen:

  • Konfiguration der Verbindung auf die Meta-DB:
    • CUBA_DATASOURCE_USERNAME: Benutzername der DB-Connection. Bsp: "postgres"
    • CUBA_DATASOURCE_PASSWORD: Passwort der DB-Connection. Bsp: "postgres"
    • CUBA_DATASOURCE_JDBCURL: Jdbc Url für das Verbinden auf die DB (inklusive Info welches Schema). Bsp: jdbc:postgresql://localhost:5432/simi?currentSchema=simi.
      Bemerkung: Host, Port, ... sollen nicht mehr separat angegeben werden, da in der jdbc URL enthalten.
  • Konfiguration der Authentifizierung (LDAP, ...):
    • CUBA_WEB_LDAP_ENABLED: LDAP Authentifizierung aktiv? Bsp: TRUE / FALSE
    • CUBA_WEB_LDAP_URLS: LDAP URL. Bsp: LDAP://192_168_1_1:389
    • CUBA_WEB_LDAP_BASE: Distinguished Name, auf welchen gebunden wird. Bsp: OU=EMPLOYEES,DC=MYCOMPANY,DC=COM
    • CUBA_WEB_LDAP_USER: Benutzer, mit welchem verbunden wird. Bsp: CN=SYSTEM USER,OU=EMPLOYEES,DC=MYCOMPANY,DC=COM
    • CUBA_WEB_LDAP_PASSWORD: Passwort, mit welchem auf das LDAP verbunden wird.
    • CUBA_WEB_LDAP_USERLOGINFIELD: Name des Attributes im LDAP-Verzeichnis, welches gegen den Login-Namen verglichen wird. Bei AD häufig "sAMAccountName".
    • CUBA_WEB_REQUIREPASSWORDFORNEWUSERS: Muss bei LDAP Auth auf false gesetzt sein, damit kein "Kuba Passwort" für den Benutzer verlangt wird.
    • CUBA_WEB_STANDARDAUTHENTICATIONUSERS: Komma getrennte Liste der Benutzer, welche trotz aktiviertem LDAP-Login mittels Standard (cuba) Login authentifiziert werden.
  • Konfiguration der URL des Schemareaders:
    • SIMI_SCHEMAREADER_URL: Url, auf welcher der Schemareader erreichbar ist. Bsp: "http://localhost/schemareader"
      Hinweis: Die Namen der Datenbanken in der SIMI-DB müssen mit dbs.key in der Schemareader-Konfig übereinstimmen.
  • Konfiguration der Suche in den GRETL-Repos (Anzeige der Abhängigkeiten):
    • SIMI_GITSEARCH_URL: Url, auf welche die Git-Suchen abgesetzt werden. Bsp: "https://api.github.com/search/code"
    • SIMI_GITSEARCH_REPOS: Liste aller zu durchsuchenden Git-Repos, mittels "," getrennt. Bsp: "sogis/gretljobs,oereb/jobs"
    • SIMI_GITSEARCH_TOKEN: Github API Token (für die Tabellen-Suche in den GRETL-Dateien).
  • Konfiguration Oauth-Tokenausgabe für die Publikations-Notifikation vom Publisher (GRETL)
    • CUBA_REST_CLIENT_ID: Benutzername für die Tokenausgabe
    • CUBA_REST_CLIENT_SECRET: Passwort für die Tokenausgabe mit Präfix. Vor dem Passwort muss der Präfix {noop} stehen.
    • Siehe zur Service-Konfiguration auch das folgende Kapitel...

Service zur Publikations-Notifikation durch den GRETL-Publisher

Für die Berechtigung zur Nutzung des Clients müssen zwei Konfigurationen vorgenommen werden:

  • Setzen der beiden Umgebungsvariablen CUBA_REST_CLIENT_*
    • Entwicklung CUBA_REST_CLIENT_ID=notifier;CUBA_REST_CLIENT_SECRET={noop}pass
  • Erstellung und Berechtigung des Benutzers "gretl" via Admin-GUI
    • Die Berechtigung muss beinhalten:
      • Die bestehende Rolle rest-api-access
      • Eine selbst erstellte Rolle für vollen Zugriff auf simiTheme_PublishedSubArea und lesenden Zugriff auf alle SIMI-Entitäten (Tabellen) im SecurityScope "REST".

Setzen des Loglevels mittels Adminmaske

Im Docker-Image sind drei Logger vorkonfiguriert:

  • ROOT-Logger mit level "ERROR"
  • Logger "com.haulmont" (= Cuba Framework) mit level "WARN"
  • Logger "ch.so.agi.simi" mit level "INFO"

Bei Bedarf kann der Loglevel der vorkonfigurierten Logger verändert werden:

  • Zur entsprechenden Adminmaske navigieren: CUBA-Admin -> Server Log
  • In der Maske im Reiter "Options" den Logger im Dropdown wählen und den Loglevel setzen / abfragen
    • Alternativ könne auch weitere Logger erstellt werden, Zum Beispiel "com.haulmont.rest" falls dieses temporär mit anderem Level geloggt werden soll.

Bitte beachten: Der ROOT-Logger sollte nicht auf Level DEBUG oder noch detaillierter gestellt werden, da dies massiv viel logging auslöst.

GRETL-Publisher Endpunkte

Zu Dokumentation und Simulation des Publisher mittels CURL siehe: doc/gretl_publisher.md

Troubleshooting der App-Initialisierung

Falls eine Fragestellung vor der Verfügbarkeit der Admin-Masken analysiert werden muss, kann der Loglevel in der Datei [repo root]/webapp/docker/image/uber-jar-logback.xml angepasst werden (Bedingt neuen Build des Image).

Bitte dazu den Applikationsverantwortlichen beiziehen.

Erzeugen / Aktualisieren des Datenbankschemas

Siehe Ordner schema

Entwicklungs-Dokumentation

Beschreibung der Inhalte der Unterordner von /webapp sowie des Custom-Codes siehe Entwicklungs-Dokumentation

Benutzer-Dokumentation

Diese ist im Dok-Repo zuhause: Benutzer-Dokumentation.