Weitere Integrationswege
Neben den zentralen Fach-APIs stellt die UDSP direkte Service-Endpunkte, optionale Transportwege und interne Laufzeitschnittstellen bereit. Diese Zugänge haben jeweils ein eigenes Sicherheits- und Betriebsmodell.
- Direkte Endpunkte
- S3 API und Context Hoster
- Optionale Transporte
- WebSocket und MQTT
- Projektspezifisch
- Node-RED HTTP-Endpunkte
- Nicht öffentlich
- Datenbanken und Laufzeitdienste
Nicht jeder technische Zugang der UDSP ist eine zentrale Fach-API hinter APISIX. Einige Komponenten besitzen eigene Domains, andere stellen optionale Transportwege bereit oder werden projektspezifisch konfiguriert.
Direkte und optionale Endpunkte
| Zugang | URL- beziehungsweise Portmuster | Zweck | Absicherung |
|---|---|---|---|
| MinIO S3 API | https://s3-minio.<DOMAIN>/ | Objekte und Dateien per S3-Protokoll lesen und schreiben | Access Key, Secret Key und Bucket-Policy |
| MinIO Console | https://minio.<DOMAIN>/ | Buckets und Zugänge administrieren | MinIO-/Keycloak-Konfiguration |
| JSON-LD Context Hoster | https://context.<DOMAIN>/ | versionierte JSON-LD-Kontexte ausliefern | aktuell eigener HTTPS-Ingress |
| FROST WebSocket | wss://api.<DOMAIN>/frost-wss | ereignisbasierter FROST-Zugriff über APISIX | Bearer Token und api:read |
| FROST MQTT | NodePort 1883, WebSocket-Port 9876 | SensorThings-/IoT-Nachrichten bei aktiviertem MQTT-Modul | abhängig von Cluster- und Broker-Konfiguration |
| Geoportal Backend | https://api.<DOMAIN>/geodataconfig/ | Masterportal-Konfiguration lesen und schreiben | api:read beziehungsweise api:write |
| CityDB-/Geo-Dienst | https://api.<DOMAIN>/geodata-citydb-wfs/ | optionaler GeoStack-Zugang | api:read beziehungsweise api:write |
| Node-RED HTTP-Endpunkte | https://<FLOW_NAME>.<DOMAIN>/ | von einem konkreten Flow implementierte Webhooks oder APIs | flow- und deploymentabhängig |
MinIO S3 API
Die S3 API ist der programmatische Objektzugang der Plattform. Ein S3-Client benötigt:
- den Endpunkt
https://s3-minio.<DOMAIN>, - einen Access Key,
- den zugehörigen Secret Key,
- die erlaubte Bucket-Region beziehungsweise Clientkonfiguration und
- eine Bucket-Policy mit den minimal benötigten Operationen.
Der Zugang läuft nicht über APISIX und verwendet keine OAuth-Scopes. Details stehen bei der MinIO-Komponente.
JSON-LD Context Hoster
Der Context Hoster liefert statische, versionierte JSON-LD-Dokumente aus. NGSI-LD-Payloads können diese URLs in @context oder über einen Link-Header referenzieren.
Der Dienst:
- speichert keine NGSI-LD-Entitäten,
- führt keine Historie,
- ersetzt keine fachliche Modell-Governance und
- wird nur bereitgestellt, wenn
stellio.context_hoster.enableaktiviert ist.
Node-RED als Integrationsendpunkt
Node-RED ist kein einheitlicher UDSP-API-Standard. Ein Flow kann eigene HTTP-Endpunkte, Webhooks, MQTT-Consumer oder Dateiverarbeitungen implementieren. Vertrag, Payload, Fehlerbehandlung, Versionierung und Schutz müssen daher pro Flow dokumentiert werden.
Die technische Plattform stellt dafür eine eigene Domain nach dem Muster <FLOW_NAME>.<DOMAIN> bereit. Ob ein Flow von außen erreichbar sein soll, wird durch Ingress- und Network-Policy-Konfiguration bestimmt.
Interne Schnittstellen
Die folgenden Protokolle sind für das Zusammenspiel der Plattform wichtig, aber standardmäßig keine öffentlichen Datenzugänge:
| Komponente | Interne Schnittstelle | Warum nicht öffentlich verwenden? |
|---|---|---|
| PostgreSQL/PostGIS/TimescaleDB | SQL | direkte Zugriffe umgehen Datenmodell, Validierung und fachliche Rechteprüfung |
| Kafka | Kafka Protocol | Topics sind Teil der internen Stellio-Laufzeit |
| Redis | RESP | Cache- und Laufzeitzustand einzelner Anwendungen |
| Solr | Solr API | interner Suchindex von CKAN |
| etcd | etcd API | sicherheitskritische APISIX-Routen- und Plugin-Konfiguration |
| Kubernetes API | Kubernetes-Ressourcen | administrativer Clusterzugang statt fachlicher Datenzugang |
Soll ein interner Bestand bewusst für eine externe Integration geöffnet werden, braucht er einen eigenen, dokumentierten Vertrag und einen abgesicherten Zugangsweg. Das bloße Freigeben eines ClusterIP-, NodePort- oder Datenbankports ist kein unterstütztes Schnittstellendesign.