Inventarverwaltung
Das Inventar ist die zentrale Datenbank aller von IDIAL verwalteten Endpoints. Es speichert Verbindungsparameter, Zugangsdaten, Zertifikatsstatus und PKI-Zuweisung für jedes verwaltete Gerät.
Das Inventar enthält zwischengespeicherte Informationen aus dem letzten Monitoring-Lauf — keine Live-Daten der Endpoints. Um die Daten zu aktualisieren, einen Monitoring-Lauf über POST /gds/monitor/crt auslösen.
Das Feld service identifiziert das Verbindungsprotokoll für jeden Eintrag:
gds-push-<identifier>— OPC UA GDS Push Protokoll. Der<identifier>ist geräte- und firmwarespezifisch.ssh-<identifier>— SSH-basiertes Zertifikatsmanagement.rest-<identifier>— REST API-basiertes Zertifikatsmanagement.
GET /inventory
Gibt die vollständige Liste aller Inventareinträge über alle Service-Typen zurück (GDS, SSH usw.). Inaktive Geräte werden ausgeschlossen, sofern show_inactive_devices nicht über POST /systeminfo aktiviert wurde.
Authentifizierung: X-API-Key erforderlich
Anfrage
curl -X GET http://localhost:5000/inventory \
-H "X-API-Key: your-api-key"
Antwort 200
[
{
"id": 1,
"name": "PLC Line 1",
"url": "opc.tcp://192.168.1.10:4840",
"service": "gds-push-siemens",
"server": "192.168.1.10",
"port": 4840,
"device_status": 1,
"device_status_name": "active",
"pki_endpoint": "est-production",
"username": "admin",
"cert_subjectdn": "CN=plc-line1,O=ExampleCorp,C=DE",
"cert_issuerdn": "CN=Issuing CA,O=ExampleCorp,C=DE",
"cert_validfrom": "2025-01-01 00:00:00",
"cert_validto": "2026-01-01 00:00:00",
"cert_base64": "MIIDxDCC...",
"cert_expdays": 241,
"cert_revoked": false,
"renewal_days": 30,
"security_policy": 8,
"security_mode": 2,
"security_policys": ["Basic256Sha256"],
"security_modes": ["SignAndEncrypt"]
}
]
Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
id | integer | Interner Datenbankbezeichner. |
name | string | null | Anzeigename des Endpoints. |
url | string | Vollständige Verbindungs-URL (z. B. opc.tcp://host:port). |
service | string | Service-Typ-Bezeichner. |
server | string | IP-Adresse oder DNS-Hostname des Endpoints. |
port | integer | Netzwerkport des Endpoints. |
device_status | integer | null | 0 = inaktiv, 1 = aktiv, 2 = gelöscht. Siehe Parameter-Referenz. |
device_status_name | string | null | Menschenlesbarer Statusname. |
pki_endpoint | string | null | Konfigurierte PKI-Endpoint-ID für die Zertifikatsausstellung. |
username | string | null | Konfigurierter Benutzername für die Endpoint-Authentifizierung. |
cert_subjectdn | string | null | Subject DN des aktuell am Endpoint aktiven Zertifikats. |
cert_issuerdn | string | null | Issuer DN des aktuell am Endpoint aktiven Zertifikats. |
cert_validfrom | string | null | Beginn der Zertifikatsgültigkeit. |
cert_validto | string | null | Ende der Zertifikatsgültigkeit. |
cert_base64 | string | null | DER-kodiertes Zertifikat als Base64. |
cert_expdays | integer | null | Tage bis zum Ablauf des Zertifikats. |
cert_revoked | boolean | null | Gibt an, ob das Zertifikat widerrufen wurde. |
renewal_days | integer | null | Tage vor Ablauf, ab denen eine Erneuerung ausgelöst wird. |
security_policy | integer | null | Security-Policy-Bitmaske. Siehe Parameter-Referenz. |
security_mode | integer | null | Security-Mode-Bitmaske. Siehe Parameter-Referenz. |
security_policys | string[] | Menschenlesbare Security-Policy-Namen. |
security_modes | string[] | Menschenlesbare Security-Mode-Namen. |
POST /inventory
Fügt einen rohen Eintrag über einen Low-Level-db_connect.py-Payload in die Datenbank ein. Für fortgeschrittene oder Legacy-Anwendungsfälle. Erzwingt das Lizenz-Endpoint-Limit für GDS-, OPC- und SSH-Tabellen.
Authentifizierung: X-API-Key erforderlich
Anfragefelder
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
table | string | Ja | Zieltabellenname. Muss gds, opc, ssh, pki oder ca enthalten. |
add | string | Ja | JSON- oder String-Payload zum Hinzufügen. |
Antwort 200
{"success": true, "execution": "ok", "error": "", "result": null}
PATCH /inventory
Aktualisiert einen rohen Eintrag in der Datenbank über einen Low-Level-db_connect.py-Payload.
Authentifizierung: X-API-Key erforderlich
Anfragefelder
Identisch mit POST /inventory.
Antwort 200
Identisch mit POST /inventory.
GET /gds/inventory
Gibt alle GDS (OPC UA) Inventareinträge zurück. Inaktive Geräte werden ausgeschlossen, sofern show_inactive_devices nicht aktiviert wurde.
Authentifizierung: X-API-Key erforderlich
Anfrage
curl -X GET http://localhost:5000/gds/inventory \
-H "X-API-Key: your-api-key"
Antwort 200
Array von Inventarobjekten. Format entspricht GET /inventory.
POST /gds/inventory
Legt einen neuen GDS-Inventareintrag an. Erzwingt das Lizenz-Endpoint-Limit.
Authentifizierung: X-API-Key erforderlich
Anfrage
curl -X POST http://localhost:5000/gds/inventory \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"server": "192.168.1.10",
"port": 4840,
"name": "PLC Line 1",
"security_policy": 8,
"security_mode": 2,
"renewal_days": 30
}'
Anfragefelder
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
server | string | Ja | Hostname oder IP-Adresse des Endpoints. |
port | integer (1–65535) | Nein | OPC UA Port (Standard: 4840). |
name | string | Nein | Anzeigename. |
userinfo_name | string | Nein | Authentifizierungsbenutzername. Muss mit userinfo_password kombiniert werden. |
userinfo_password | string | Nein | Authentifizierungspasswort (nur schreiben). |
userinfo_pkcs12_base64 | string (≥ 160 Zeichen) | Nein | Base64-kodiertes PKCS#12 für Zertifikatsauthentifizierung (nur schreiben). |
userinfo_pkcs12_password | string (≤ 1024 Zeichen) | Nein | Passwort für die PKCS#12-Datei (nur schreiben). |
device_status | integer (0/1/2) | Nein | Gerätestatus. |
pki | integer ≥ 0 | Nein | ID des zugeordneten PKI-Inventareintrags. |
security_policy | integer | Nein | Security-Policy-Bitmaske. Siehe Parameter-Referenz. |
security_mode | integer | Nein | Security-Mode-Bitmaske. Siehe Parameter-Referenz. |
renewal_days | integer ≥ 0 | Nein | Tage vor Ablauf, ab denen eine Erneuerung ausgelöst wird. |
Antwort 200
Angelegter Inventareintrag. Format entspricht GET /inventory.
PATCH /gds/inventory
Aktualisiert einen vorhandenen GDS-Inventareintrag. Der Eintrag wird über server + port identifiziert.
Authentifizierung: X-API-Key erforderlich
Anfragefelder
Identisch mit POST /gds/inventory. Alle Felder sind optional, außer server.
Antwort 200
Aktualisierter Inventareintrag. Format entspricht GET /inventory.
GET /gds/inventory/{host_or_url}
Gibt einen einzelnen GDS-Inventareintrag anhand von Host oder URL zurück.
Authentifizierung: X-API-Key erforderlich
Pfadparameter
Der Parameter {host_or_url} akzeptiert:
- Hostname oder IP:
192.168.1.10 - Host und Port:
192.168.1.10:4840 - Vollständige OPC UA URL:
opc.tcp://192.168.1.10:4840
Antwort 200
Einzelner Inventareintrag. Format entspricht GET /inventory.
DELETE /gds/inventory/{host_or_url}
Löscht einen GDS-Inventareintrag und alle zugehörigen Zugangsdaten.
Authentifizierung: X-API-Key erforderlich
Antwort 200
Gelöschter Inventareintrag. Format entspricht GET /inventory.
POST /gds/inventory/user
Schreibt Benutzerzugangsdaten (Benutzername/Passwort oder PKCS#12) für einen GDS-Inventareintrag. Erstellt den Eintrag, falls er noch nicht existiert.
Authentifizierung: X-API-Key erforderlich
Anfragefelder
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
server | string | Ja | Hostname oder IP-Adresse. |
port | integer (1–65535) | Nein | Port (Standard: 4840). |
userinfo_name | string | Nein | Authentifizierungsbenutzername. |
userinfo_password | string | Nein | Authentifizierungspasswort (nur schreiben). |
userinfo_pkcs12_base64 | string (≥ 160 Zeichen) | Nein | Base64-kodiertes PKCS#12 (nur schreiben). |
userinfo_pkcs12_password | string (≤ 1024 Zeichen) | Nein | PKCS#12-Passwort (nur schreiben). |
Antwort 200
Inventareintrag. Format entspricht GET /inventory.
PATCH /gds/inventory/user
Aktualisiert Benutzerzugangsdaten für einen vorhandenen GDS-Inventareintrag.
Authentifizierung: X-API-Key erforderlich
Anfragefelder
Identisch mit POST /gds/inventory/user.
Antwort 200
Aktualisierter Inventareintrag. Format entspricht GET /inventory.
GET /gds/inventory/trustlist
Gibt die im Inventar gespeicherten GDS-Trust-List-Daten für alle verwalteten Endpoints zurück.
Authentifizierung: X-API-Key erforderlich
Anfrage
curl -X GET http://localhost:5000/gds/inventory/trustlist \
-H "X-API-Key: your-api-key"
Antwort 200
[
{
"url": "opc.tcp://192.168.1.10:4840",
"trustlist_trusted_ca": ["MIIBxDCC..."],
"trustlist_trusted_crl": [],
"trustlist_issuer_ca": ["MIIBxDCC..."],
"trustlist_issuer_crl": []
}
]
Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
url | string | OPC UA Verbindungs-URL des Endpoints. |
trustlist_trusted_ca | string[] | Vertrauenswürdige Endpoint-Zertifikate. |
trustlist_trusted_crl | string[] | CRLs für vertrauenswürdige Zertifikate. |
trustlist_issuer_ca | string[] | Aussteller-CA-Zertifikate. |
trustlist_issuer_crl | string[] | CRLs für CA-Zertifikate. |
GET /ssh/inventory
Gibt alle SSH-Inventareinträge zurück.
Authentifizierung: X-API-Key erforderlich
Antwort 200
Array von Inventarobjekten. Format entspricht GET /inventory.