Zum Hauptinhalt springen

System & Status

Diese Seite dokumentiert die Endpoints, die den Systemzustand und die 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 Endpoint 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"
},
"eol": "2027-12-31",
"eol_days_remaining": 605,
"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.
softwarestringFester Wert: "IDIAL @ BxC".
versionstringIDIAL-Softwareversion. Format: Semantische Versionierung (z. B. "1.2.3").
infrastructure.db_versionstringVersion des Datenbankschemas.
infrastructure.sqlite_versionstringSQLite-Datenbank-Engine-Version.
infrastructure.python_versionstringPython-Interpreter-Version.
infrastructure.debian_versionstringBetriebssystemversion des Containers.
infrastructure.openssl_versionstringVersion der OpenSSL-Kryptobibliothek.
infrastructure.idial_versionstringIDIAL-Anwendungsversion.
infrastructure.updated_atstringZeitstempel der letzten Aktualisierung. ISO 8601.
eolstringEnd-of-Life-Datum dieser IDIAL-Version.
eol_days_remainingintegerTage bis zum End-of-Life. -1 wenn unbekannt.
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 in Inventarantworten enthalten sind.

Antwort 500

{"error": "string"}

POST /systeminfo

Aktualisiert die Systemkonfiguration. Mindestens ein Feld muss angegeben werden.

Authentifizierung: X-API-Key erforderlich

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}'

Anfragefelder

FeldTypPflichtBeschreibung
gds_push_scheduler_activebooleanNeinGDS-Push-Scheduler aktivieren oder deaktivieren.
gds_push_scheduler_renewal_daysinteger ≥ 0NeinTage vor Zertifikatsablauf, ab denen eine Erneuerung ausgelöst wird.
gds_push_scheduler_scan_interval_secinteger ≥ 1NeinScan-Intervall in Sekunden.
monitor_scheduler_activebooleanNeinMonitor-Scheduler aktivieren oder deaktivieren.
monitor_scheduler_scan_interval_secinteger ≥ 1NeinScan-Intervall des Monitor-Schedulers in Sekunden.
show_inactive_devicesbooleanNeinInaktive Geräte in Inventarantworten einschließen.

Antwort 200

Die Antwort entspricht dem Format von GET /systeminfo.

Antwort 400

{"error": "At least one of ... is required"}

GET /gds/systeminfo

Gibt GDS-spezifische Systeminformationen zurück, darunter unterstützte OPC UA-Sicherheitsrichtlinien, Sicherheitsmodi und Betriebsmodi.

Authentifizierung: X-API-Key erforderlich

Anfrage

curl -X GET http://localhost:5000/gds/systeminfo \
-H "X-API-Key: your-api-key"

Antwort 200

{
"max_allowed_policy_mask": 63,
"max_allowed_mode_mask": 7,
"security_policy_bits": [
{"name": "none", "enum_value": 0, "bit": null, "mask": 0 },
{"name": "Basic128Rsa15", "enum_value": 1, "bit": 0, "mask": 1 },
{"name": "Basic256", "enum_value": 2, "bit": 1, "mask": 2 },
{"name": "Aes128Sha256RsaOaep","enum_value": 3, "bit": 2, "mask": 4 },
{"name": "Basic256Sha256", "enum_value": 4, "bit": 3, "mask": 8 },
{"name": "Aes256Sha256RsaPss", "enum_value": 5, "bit": 4, "mask": 16}
],
"security_mode_bits": [
{"name": "none", "enum_value": 0, "bit": null, "mask": 0},
{"name": "Sign", "enum_value": 1, "bit": 0, "mask": 1},
{"name": "SignAndEncrypt", "enum_value": 2, "bit": 1, "mask": 2}
]
}
hinweis

Dieser Endpoint liefert die OPC UA GDS-Konfiguration, wie sie vom OPC UA-Client-Stack des IDIAL-Containers unterstützt wird. Verwenden Sie ihn, um gültige Bitmasken-Werte für security_policy und security_mode zu ermitteln. Siehe auch Parameter-Referenz.


GET /crl/systeminfo

Gibt den Status des CRL-Subsystems sowie die von IDIAL verwendeten Status- und Reason-Code-Zuordnungen zurück.

Authentifizierung: X-API-Key erforderlich

Anfrage

curl -X GET http://localhost:5000/crl/systeminfo \
-H "X-API-Key: your-api-key"

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[] — Alle bekannten CRL-Prüfstatus

FeldTypBeschreibung
idintegerInterner Bezeichner des Status, wird in Inventareinträgen referenziert.
namestringMaschinenlesbarer Statusname.
descriptionstringMenschenlesbare Beschreibung.
is_revokedboolean | nulltrue = widerrufen, false = nicht widerrufen, null = unbestimmt.

reasons[] — RFC 5280-konforme Widerrufsgründe

FeldTypBeschreibung
idintegerNumerischer Reason-Code gemäß RFC 5280.
namestringReason-Code-Name in CamelCase.
descriptionstringMenschenlesbare Erklärung des Widerrufsgrundes.

GET /supported-devices

Gibt eine Liste aller OPC UA-Gerätetypen zurück, die IDIAL für das Zertifikatsmanagement via GDS Push unterstützt.

Authentifizierung: X-API-Key erforderlich

Anfrage

curl -X GET http://localhost:5000/supported-devices \
-H "X-API-Key: your-api-key"

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.
device_namestringName des Geräteherstellers und Gerätetyps.
firmware_versionstringGetestete und unterstützte Firmware-Version.
tipp

Verwenden Sie diesen Endpoint, um vor dem Hinzufügen eines OPC UA-Geräts zum Inventar zu prüfen, ob das jeweilige Gerätemodell unterstützt wird.