Zum Hauptinhalt springen

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

FeldTypBeschreibung
statusintegerBetriebsstatus des Systems. Wert: 0 = Betriebsbereit. Ermöglicht konsistentes Status-Reporting für Monitoring-Systeme.
softwarestringSoftware-Bezeichner. Fester Wert: "IDIAL @ BxC".
versionstringIDIAL-Softwareversionsinformation. Format: Semantische Versionierung (z. B. "1.2.3"). Zweck: Versionsprüfung und Update-Verwaltung.
infrastructure.db_versionstringVersion des Datenbankschemas. Zweck: Datenbank-Migration und Kompatibilitätsprüfung. Beispiel: "v1.2.0", "schema_20240305".
infrastructure.sqlite_versionstringSQLite-Datenbank-Engine-Version. Zweck: Überprüfung der Datenbankkompatibilität und unterstützter Funktionen. Beispiel: "3.38.5", "3.45.1".
infrastructure.python_versionstringPython-Interpreter-Version. Zweck: Laufzeitkompatibilität und Abhängigkeitsverwaltung. Beispiel: "3.11.7", "3.13.2".
infrastructure.debian_versionstringBetriebssystemversion des Containers. Zweck: Systemkompatibilität und Sicherheits-Patch-Status. Beispiel: "Debian 12.4", "Ubuntu 22.04.3 LTS".
infrastructure.openssl_versionstringVersion der OpenSSL-Kryptobibliothek. Zweck: Verfügbarkeit von Sicherheitsfunktionen und Schwachstellenbewertung. Beispiel: "OpenSSL 3.0.11 19 Sep 2023".
infrastructure.idial_versionstringIDIAL-Anwendungsversion (kann von der Haupt-version abweichen). Zweck: Komponentenspezifisches Versions-Tracking. Beispiel: "0.3.1".
infrastructure.updated_atstringZeitstempel 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_statusstringAktueller Ausführungsstatus des GDS-Push-Schedulers
gds_push_scheduler_activebooleanGibt an, ob der GDS-Push-Scheduler aktiv ist
gds_push_scheduler_renewal_daysintegerTage vor Ablauf, ab denen eine Erneuerung ausgelöst wird
gds_push_scheduler_scan_interval_secintegerScan-Intervall des Schedulers in Sekunden
monitor_scheduler_statusstringAktueller Ausführungsstatus des Monitor-Schedulers
monitor_scheduler_activebooleanGibt an, ob der Monitor-Scheduler aktiv ist
monitor_scheduler_scan_interval_secintegerScan-Intervall des Monitor-Schedulers in Sekunden
show_inactive_devicesbooleanGibt an, ob inaktive Geräte im Inventar angezeigt werden
hinweis

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.

hinweis

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

FeldTypBeschreibung
idintegerInterner Bezeichner des Status, wird in Inventareinträgen referenziert
namestringMaschinenlesbarer Statusname
descriptionstringMenschenlesbare Beschreibung des Status
is_revokedboolean | nulltrue = widerrufen, false = nicht widerrufen, null = unbestimmt (z. B. CRL nicht verfügbar)

reasons[] — Liste der RFC 5280-konformen Widerrufsgründe

FeldTypBeschreibung
idintegerNumerischer Reason-Code gemäß RFC 5280
namestringReason-Code-Name in CamelCase (entspricht dem OID-Namen aus RFC 5280)
descriptionstringMenschenlesbare Erklärung des Widerrufsgrundes
hinweis

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

FeldTypBeschreibung
idintegerInterner Bezeichner der Gerät-/Firmware-Kombination. Wird beim Hinzufügen eines Inventareintrags referenziert (supported_device_firmware_id).
device_namestringName des Geräteherstellers und Gerätetyps
firmware_versionstringGetestete und unterstützte Firmware-Version
tipp

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.