Zum Hauptinhalt springen

Übersicht

IDIAL stellt eine REST API bereit, über die sich der Bestand der angebundenen OPC UA Endpoints und ihrer Zertifikate verwalten lässt. Zusätzlich ermöglicht die API die Konfiguration von PKI- und EST-Integrationen, die Überwachung des Zertifikatslebenszyklus, die Lizenzverwaltung, die Planung von Wartungsfenstern sowie die Steuerung der TLS-Einstellungen des IDIAL-Containers selbst. Die API wird durch APIFlask (Python) bereitgestellt und veröffentlicht automatisch eine OpenAPI-Spezifikation unter /openapi.json sowie eine interaktive Dokumentation unter /docs.

Basis-URL

Die Standard-Basis-URL der IDIAL REST API lautet:

http://127.0.0.1:5000

Der Host kann beim Start des Containers überschrieben werden. TLS lässt sich über POST /tls aktivieren. Sobald TLS aktiv ist, gilt folgendes Schema:

https://<host>:5000

Authentifizierung

Die meisten Endpoints erfordern einen API-Schlüssel, der als HTTP-Header übergeben wird:

X-API-Key: <your-api-key>

Alternativ wird das Bearer-Token-Format akzeptiert:

Authorization: Bearer <your-api-key>

Der API-Schlüssel wird über die Datei secrets/idial_api_key.txt innerhalb des IDIAL-Containers konfiguriert. Alternativ kann die Umgebungsvariable IDIAL_API_KEY_FILE verwendet werden, um einen abweichenden Dateipfad anzugeben.

Endpoints ohne Authentifizierung

Die folgenden Endpoints sind ohne API-Schlüssel erreichbar:

  • GET /docs
  • GET /openapi.json
  • GET /pki/ca/{pki_id}
  • GET /pki/crl/{pki_id}

Content-Type

Alle Anfragen und Antworten verwenden Content-Type: application/json, mit Ausnahme von Zertifikat- und CRL-Download-Endpoints, die Binärdaten zurückgeben.

Fehlerformat

Tritt ein Fehler auf, gibt die API eine JSON-Antwort im folgenden Format zurück:

{
"error": "string"
}

Interaktive Dokumentation

hinweis

Die OpenAPI-Spezifikation ist unter /openapi.json abrufbar. Eine interaktive Swagger UI steht unter /docs zur Verfügung, solange IDIAL läuft. Die Aliases /swagger, /swagger-ui und /api/docs leiten ebenfalls auf /docs weiter.

Endpoint-Übersicht

Die folgende Tabelle listet alle 74 Endpoints der IDIAL REST API, gruppiert nach Kategorie.

KategorieMethodePfadAuth
SystemGET/systeminfoNein
SystemPOST/systeminfoJa
SystemGET/gds/systeminfoJa
SystemGET/crl/systeminfoJa
SystemGET/supported-devicesJa
SystemGET/Ja
SystemGET/opcua_gds_dashboard.htmlNein
TLS-KonfigurationGET/tlsJa
TLS-KonfigurationPOST/tlsJa
LizenzPOST/systeminfo/licJa
LizenzGET/systeminfo/licJa
LizenzDELETE/systeminfo/licJa
InventarGET/inventoryJa
InventarPOST/inventoryJa
InventarPATCH/inventoryJa
InventarGET/gds/inventoryJa
InventarPOST/gds/inventoryJa
InventarPATCH/gds/inventoryJa
InventarGET/gds/inventory/{host_or_url}Ja
InventarDELETE/gds/inventory/{host_or_url}Ja
InventarPOST/gds/inventory/userJa
InventarPATCH/gds/inventory/userJa
InventarGET/gds/inventory/trustlistJa
InventarGET/ssh/inventoryJa
ZertifikatsüberwachungPOST/gds/monitor/crtJa
ZertifikatsüberwachungGET/gds/monitor/crt/{host_or_url}Ja
ZertifikatsüberwachungPOST/gds/inventory/crtJa
ZertifikatsüberwachungGET/gds/inventory/crt/{host_or_url}Ja
ZertifikatsüberwachungGET/gds/monitor/plc/{host_or_url}Ja
ZertifikatsüberwachungGET/gds/monitor/firmware/{host_or_url}Ja
ZertifikatsüberwachungGET/gds/monitor/status/{host_or_url}Ja
Trust ListPOST/gds/monitor/trustlistJa
Trust ListGET/gds/monitor/trustlist/{host_or_url}Ja
Trust ListDELETE/gds/monitor/trustlistJa
Trust ListDELETE/gds/monitor/trustlist/{host_or_url}Ja
GDS PushPOST/gds/pushJa
GDS PushGET/gds/push/{host_or_url}Ja
GDS PushPOST/gds/push/onboardingJa
GDS PushGET/gds/push/onboarding/{host_or_url}Ja
GDS PushPOST/gds/push/changeJa
GDS FirmwarePOST/gds/firmwareJa
GDS FirmwareGET/gds/monitor/firmware/{host_or_url}Ja
GDS Client-ZertifikatGET/gds/crtJa
PKIGET/pkiJa
PKIGET/pki/inventoryJa
PKIGET/pki/inventory/{pki_id}Ja
PKIGET/pki/inventory/creator/{creator_id}Ja
PKIPOST/pki/inventoryJa
PKIPATCH/pki/inventory/{pki_id}Ja
PKIDELETE/pki/inventory/{pki_id}Ja
PKIGET/pki/exec/validate/{pki_id}Ja
PKIGET/pki/exec/validate-strict/{pki_id}Ja
PKIGET/pki/ca/{pki_id}Nein
PKIGET/pki/crl/{pki_id}Nein
PKIGET/pki/crt/{pki_id}Ja
PKIPOST/pki/sign-client-csrJa
PKIPOST/pki/sign-server-csrJa
WartungGET/maintenance/inventoryJa
WartungGET/maintenance/inventory/{window_id}Ja
WartungPOST/maintenance/inventoryJa
WartungPATCH/maintenance/inventory/{window_id}Ja
WartungDELETE/maintenance/inventory/{window_id}Ja
WartungGET/maintenance/ruleJa
WartungPOST/maintenance/ruleJa
WartungPATCH/maintenance/rule/{rule_id}Ja
WartungDELETE/maintenance/rule/{rule_id}Ja
WartungPOST/maintenance/test/{window_id}Ja
DatenbankPOST/create/dummy-dbJa
DatenbankDELETE/sql/{totp_code}Ja

Lizenz & Feature-Gating

Die meisten Endpoints erfordern das Lizenz-Feature core. Jede Anfrage wird gegen die installierte Lizenz geprüft. Ist keine gültige Lizenz installiert, gibt die API 403 zurück.

Der Endpoint /systeminfo/lic ist vom Feature-Gating ausgenommen und erfordert ausschließlich den API-Schlüssel.