System & Status
Diese Seite dokumentiert die Endpunkte, die Systemzustand und -konfiguration von IDIAL abbilden. Dazu gehören allgemeine Systeminformationen, Scheduler-Einstellungen, GDS- und CRL-Status sowie unterstützte Gerätetypen.
GET /systeminfo
Gibt allgemeine Systeminformationen zurück, ohne dass eine Authentifizierung erforderlich ist. Dieser Endpunkt ist für den Einsatz in Monitoring-Systemen und Health-Checks vorgesehen.
Authentifizierung: Nicht erforderlich
Anfrage
curl -X GET http://localhost:5000/systeminfo
Antwort 200
{
"status": 0,
"software": "IDIAL @ BxC",
"version": "1.2.3",
"infrastructure": {
"db_version": "v1.2.0",
"sqlite_version": "3.45.1",
"python_version": "3.11.7",
"debian_version": "Debian 12.4",
"openssl_version": "OpenSSL 3.0.11 19 Sep 2023",
"idial_version": "0.3.1",
"updated_at": "2026-03-06 10:30:45"
},
"gds_push_scheduler_status": "running",
"gds_push_scheduler_active": true,
"gds_push_scheduler_renewal_days": 30,
"gds_push_scheduler_scan_interval_sec": 3600,
"monitor_scheduler_status": "running",
"monitor_scheduler_active": true,
"monitor_scheduler_scan_interval_sec": 3600,
"show_inactive_devices": false
}
Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
status | integer | Betriebsstatus des Systems. Wert: 0 = Betriebsbereit. Ermöglicht konsistentes Status-Reporting für Monitoring-Systeme. |
software | string | Software-Bezeichner. Fester Wert: "IDIAL @ BxC". |
version | string | IDIAL-Softwareversionsinformation. Format: Semantische Versionierung (z. B. "1.2.3"). Zweck: Versionsprüfung und Update-Verwaltung. |
infrastructure.db_version | string | Version des Datenbankschemas. Zweck: Datenbank-Migration und Kompatibilitätsprüfung. Beispiel: "v1.2.0", "schema_20240305". |
infrastructure.sqlite_version | string | SQLite-Datenbank-Engine-Version. Zweck: Überprüfung der Datenbankkompatibilität und unterstützter Funktionen. Beispiel: "3.38.5", "3.45.1". |
infrastructure.python_version | string | Python-Interpreter-Version. Zweck: Laufzeitkompatibilität und Abhängigkeitsverwaltung. Beispiel: "3.11.7", "3.13.2". |
infrastructure.debian_version | string | Betriebssystemversion des Containers. Zweck: Systemkompatibilität und Sicherheits-Patch-Status. Beispiel: "Debian 12.4", "Ubuntu 22.04.3 LTS". |
infrastructure.openssl_version | string | Version der OpenSSL-Kryptobibliothek. Zweck: Verfügbarkeit von Sicherheitsfunktionen und Schwachstellenbewertung. Beispiel: "OpenSSL 3.0.11 19 Sep 2023". |
infrastructure.idial_version | string | IDIAL-Anwendungsversion (kann von der Haupt-version abweichen). Zweck: Komponentenspezifisches Versions-Tracking. Beispiel: "0.3.1". |
infrastructure.updated_at | string | Zeitstempel der letzten Infrastruktur-Informationsaktualisierung. Format: ISO 8601. Zweck: Überprüfung der Aktualität der Daten. Beispiel: "2026-03-06 10:30:45". |
gds_push_scheduler_status | string | Aktueller Ausführungsstatus des GDS-Push-Schedulers |
gds_push_scheduler_active | boolean | Gibt an, ob der GDS-Push-Scheduler aktiv ist |
gds_push_scheduler_renewal_days | integer | Tage vor Ablauf, ab denen eine Erneuerung ausgelöst wird |
gds_push_scheduler_scan_interval_sec | integer | Scan-Intervall des Schedulers in Sekunden |
monitor_scheduler_status | string | Aktueller Ausführungsstatus des Monitor-Schedulers |
monitor_scheduler_active | boolean | Gibt an, ob der Monitor-Scheduler aktiv ist |
monitor_scheduler_scan_interval_sec | integer | Scan-Intervall des Monitor-Schedulers in Sekunden |
show_inactive_devices | boolean | Gibt an, ob inaktive Geräte im Inventar angezeigt werden |
Dieser Endpunkt war in früheren API-Versionen unter GET /get-info erreichbar. Der Pfad wurde auf /systeminfo aktualisiert.
Antwort 500
{"error": "string"}
POST /systeminfo
Aktualisiert die Systemkonfiguration. Über diesen Endpunkt können Schedulers aktiviert oder deaktiviert sowie Scan-Intervalle angepasst werden.
Authentifizierung: Erforderlich (X-API-Key-Header)
Anfrage
curl -X POST http://localhost:5000/systeminfo \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{"gds_push_scheduler_active": true, "gds_push_scheduler_renewal_days": 30}'
Anfrage-Body
{
"gds_push_scheduler_active": true,
"gds_push_scheduler_renewal_days": 30,
"gds_push_scheduler_scan_interval_sec": 3600,
"monitor_scheduler_active": true,
"monitor_scheduler_scan_interval_sec": 3600,
"show_inactive_devices": false
}
Alle Felder sind optional. Es werden ausschließlich die übermittelten Felder aktualisiert.
Antwort 200
Die Antwort entspricht dem Format von GET /systeminfo.
Antwort 500
{"error": "string"}
GET /gds/systeminfo
Gibt GDS-spezifische Systeminformationen zurück, darunter unterstützte OPC UA-Sicherheitsrichtlinien, Sicherheitsmodi und Betriebsmodi.
Authentifizierung: Erforderlich (X-API-Key-Header)
Antwort 200
JSON-Objekt mit der GDS-Sicherheitskonfiguration.
Dieser Endpunkt liefert die OPC UA Global Discovery Server (GDS)-Konfiguration, wie sie vom OPC UA-Client-Stack des IDIAL-Containers unterstützt wird.
GET /crl/systeminfo
Gibt den Status des CRL-Subsystems (Certificate Revocation List) sowie die von IDIAL verwendeten Status- und Reason-Code-Zuordnungen zurück. Diese Zuordnungen werden intern beim CRL-Prüfprozess verwendet und sind in der Datenbank hinterlegt.
Authentifizierung: Erforderlich (X-API-Key-Header)
Antwort 200
{
"statuses": [
{ "id": 0, "name": "unknown", "description": "certificate revocation status is unknown or was not checked yet", "is_revoked": null },
{ "id": 1, "name": "not_revoked", "description": "certificate was checked against a CRL and is not revoked", "is_revoked": false },
{ "id": 2, "name": "revoked", "description": "certificate is listed as revoked in the CRL", "is_revoked": true },
{ "id": 3, "name": "certificate_missing", "description": "no certificate is stored for this asset", "is_revoked": null },
{ "id": 4, "name": "crl_missing", "description": "no CRL was available for the certificate", "is_revoked": null },
{ "id": 5, "name": "ca_missing", "description": "no issuing CA certificate was available for CRL validation", "is_revoked": null },
{ "id": 6, "name": "cert_chain_invalid", "description": "certificate chain is invalid for the configured issuing CA", "is_revoked": null },
{ "id": 7, "name": "ca_crlsign_missing", "description": "issuing CA certificate does not allow CRL signing", "is_revoked": null },
{ "id": 8, "name": "crl_issuer_mismatch", "description": "CRL issuer does not match the configured issuing CA", "is_revoked": null },
{ "id": 9, "name": "crl_signature_invalid", "description": "CRL signature could not be verified with the issuing CA", "is_revoked": null },
{ "id": 10, "name": "crl_time_invalid", "description": "CRL is outside its validity window", "is_revoked": null },
{ "id": 11, "name": "parsing_error", "description": "certificate, CA, or CRL could not be parsed correctly", "is_revoked": null },
{ "id": 12, "name": "self_signed", "description": "certificate is a self-signed certificate", "is_revoked": false }
],
"reasons": [
{ "id": 0, "name": "unspecified", "description": "no specific revocation reason was provided" },
{ "id": 1, "name": "keyCompromise", "description": "the subject private key is suspected to be compromised" },
{ "id": 2, "name": "cACompromise", "description": "the issuing CA private key is suspected to be compromised" },
{ "id": 3, "name": "affiliationChanged", "description": "the subject affiliation changed" },
{ "id": 4, "name": "superseded", "description": "the certificate was superseded" },
{ "id": 5, "name": "cessationOfOperation", "description": "the certificate is no longer needed because operations ceased" },
{ "id": 6, "name": "certificateHold", "description": "the certificate was temporarily placed on hold" },
{ "id": 8, "name": "removeFromCRL", "description": "the certificate was removed from a delta CRL" },
{ "id": 9, "name": "privilegeWithdrawn", "description": "the subject privileges were withdrawn" },
{ "id": 10,"name": "aACompromise", "description": "the attribute authority is suspected to be compromised" }
]
}
Antwortfelder
statuses[] — Liste aller bekannten CRL-Prüfstatus
| Feld | Typ | Beschreibung |
|---|---|---|
id | integer | Interner Bezeichner des Status, wird in Inventareinträgen referenziert |
name | string | Maschinenlesbarer Statusname |
description | string | Menschenlesbare Beschreibung des Status |
is_revoked | boolean | null | true = widerrufen, false = nicht widerrufen, null = unbestimmt (z. B. CRL nicht verfügbar) |
reasons[] — Liste der RFC 5280-konformen Widerrufsgründe
| Feld | Typ | Beschreibung |
|---|---|---|
id | integer | Numerischer Reason-Code gemäß RFC 5280 |
name | string | Reason-Code-Name in CamelCase (entspricht dem OID-Namen aus RFC 5280) |
description | string | Menschenlesbare Erklärung des Widerrufsgrundes |
Die id-Werte in reasons entsprechen direkt den RFC 5280 CRLReason-Codes. Reason-Code 7 (removeFromCRL im Delta-CRL-Kontext) ist intern nicht gelistet; id: 8 ist removeFromCRL gemäß RFC 5280 Nummerierung.
GET /supported-devices
Gibt eine Liste aller OPC UA-Gerätetypen zurück, die IDIAL für das Zertifikatsmanagement via GDS Push unterstützt. IDIAL pflegt eine Kompatibilitätsliste der Gerätehersteller und Firmware-Versionen, die getestet wurden.
Authentifizierung: Erforderlich (X-API-Key-Header)
Antwort 200
[
{
"id": 0,
"device_name": "SIMATIC S7-1500 OPC UA",
"firmware_version": "V02.09.04"
},
{
"id": 1,
"device_name": "SIMATIC S7-1500 OPC UA",
"firmware_version": "V03.01.03"
}
]
Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
id | integer | Interner Bezeichner der Gerät-/Firmware-Kombination. Wird beim Hinzufügen eines Inventareintrags referenziert (supported_device_firmware_id). |
device_name | string | Name des Geräteherstellers und Gerätetyps |
firmware_version | string | Getestete und unterstützte Firmware-Version |
Verwenden Sie diesen Endpunkt, um vor dem Hinzufügen eines OPC UA-Geräts zum Inventar zu prüfen, ob das jeweilige Gerätemodell unterstützt wird.