Read-only mirror of https://github.com/sogis/datahub — Kanton Solothurn. Issues & pull requests at the source.
  • Java 93.8%
  • HTML 5.6%
  • CSS 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-01-23 18:30:21 +00:00
.github/workflows clean pipeline file 2024-07-05 13:59:36 +02:00
dev Fix e2e setup with local ili model (#16) 2026-01-23 18:20:26 +00:00
docker/image Implement directory listing (#6) 2024-11-11 13:25:13 +01:00
docs Remove FTP support (#12) 2026-01-23 14:19:17 +01:00
gradle Add keyId.secret API key format and support for stored keyId:hash (#10) 2026-01-22 17:31:37 +01:00
sql update setup_gdi.sql 2024-08-29 08:02:53 +02:00
src Remove Tomcat directory listing support (#17) 2026-01-23 18:30:21 +00:00
.dockerignore [docker layered image test] fix dockerignore 2024-07-02 10:30:01 +02:00
.gitignore Add INTERLIS data repo logic (#7) 2025-09-10 11:10:32 +02:00
AGENTS.md AGENTS.md 2026-01-19 18:34:34 +01:00
build.gradle Fix e2e setup with local ili model (#16) 2026-01-23 18:20:26 +00:00
gradlew initial commit 2024-04-10 13:24:50 +02:00
gradlew.bat initial commit 2024-04-10 13:24:50 +02:00
LICENSE initial commit 2024-04-10 13:24:50 +02:00
README.md Fix e2e setup with local ili model (#16) 2026-01-23 18:20:26 +00:00
settings.gradle initial commit 2024-04-10 13:24:50 +02:00

datahub

Datendrehscheibe - Anlieferung von INTERLIS-Transferdateien.

Beschreibung

Datahub ist eine Datendrehscheine und dient der Anlieferung von INTERLIS-Transferdateien. Die Anlieferung besteht vor allem aus zwei Teilen: Einer Autorisierung des Senders für den bestimmten Datensatz und der Validierung der gelieferten INTERLIS-Transferdatei gegenüber dem Datenmodell und allfälligen Validierungsmodellen.

Die Anlieferung erfolgt über ein REST-API, die Authentifizierung über einen API-Key. Den Status einer Lieferung kann entweder über das REST-API oder eine Webseite erfolgen. Beide Varianten benötigen keine Authentifizierung resp. Autorisierung. Ebenfalls wird eine E-Mail mit dem Prüfresultat verschickt.

API-Keys können durch die Benutzer selber erstellt und widerrufen werden. Die Keys sind nicht personalisiert, sondern an eine Organisation gebunden. Es gibt eine Admin-Organisation, die für jede andere Organisation Keys erstellen kann und auch jedes Operat anliefern darf. Die Administration der Autorisierung muss mit einem Datenbank-Client gemacht werden und kann nicht mit der Anwendung gemacht werden. Das Autorisierungsmodell ist mit INTERLIS modelliert. Es gibt zusätzlich ein INTERLIS-Modell, welches die einzelnen Lieferungen loggt.

Die Daten werden nach erfolgreicher Prüfung an einen definierten Ort im Filesystem kopiert. Die Verzeichnisse müssen vorhanden sein.

Anleitungen

Komponenten

Die funktionale Einheit besteht aus dieser Webanwendung und einer Datenbank für die Speicherung von Autorisierungsobjekten und Lieferinformationen. Ebenfalls wird die Datenbank für die Jobqueue-Bibliothek benötigt. Die eingesetzte Technologie liesse einen Betrieb mit einer filebasierten DB zu, jedoch wird Stand heute eine PostgreSQL-Datenbank erwartet.

Konfigurieren und Starten

Siehe Betriebshandbuch.

Externe Abhängigkeiten

  • SMTP-Server

Konfiguration und Betrieb in der GDI

Siehe Betriebshandbuch.

Interne Struktur

Siehe Entwicklerhandbuch.

System-Tests (E2E mit XTF + Test-DB)

Die End-to-End-Tests laufen in einem separaten Source-Set und verwenden ili2h2gis mit einer filebasierten H2GIS-Datenbank. Das Setup erzeugt drei Schemas:

  • agi_datahub_jobrunr_v1 (Schema wird manuell angelegt, JobRunr erstellt die Tabellen beim Start)
  • agi_datahub_config_v1 (Schema + Tabellen via ili2h2gis)
  • agi_datahub_log_v1 (Schema + Tabellen via ili2h2gis)

Für den Config-Import wird die Datei dev/datahub_20260122.xtf verwendet. Die Lieferung erfolgt mit dem Beispiel-File src/test/data/ch.so.avt.kunstbauten.xtf.

Ausführen:

./gradlew e2eTest