All checks were successful
CI/CD / go-lint (push) Has been skipped
CI/CD / python-lint (push) Has been skipped
CI/CD / nodejs-lint (push) Has been skipped
CI/CD / test-go-ai-compliance (push) Successful in 36s
CI/CD / test-python-backend-compliance (push) Successful in 36s
CI/CD / test-python-document-crawler (push) Successful in 22s
CI/CD / test-python-dsms-gateway (push) Successful in 18s
CI/CD / validate-canonical-controls (push) Successful in 12s
CI/CD / Deploy (push) Successful in 2s
Add dual-mode risk engine: legacy S×E×P (avoidance=0) and ISO mode S×F×P×A (avoidance>=1) with new thresholds (low/medium/high/very_high/not_acceptable). - 150+ hazard library entries across 28 categories incl. physical hazards (mechanical, electrical, thermal, pneumatic/hydraulic, noise/vibration, ergonomic, material/environmental) - 160-entry protective measures library with 3-step hierarchy validation (design → protective → information) - 25 lifecycle phases, 20 affected person roles, 50 evidence types - 10 verification methods (expanded from 7) - New API endpoints: lifecycle-phases, roles, evidence-types, protective-measures-library, validate-mitigation-hierarchy - DB migrations 018+019 for extended schema - Frontend: 4-slider risk assessment, hierarchy warnings, measures library modal - MkDocs wiki updated with ISO mode docs and legal notice (no norm text) All content uses original wording — norms referenced as methodology only. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
558 lines
23 KiB
Markdown
558 lines
23 KiB
Markdown
# IACE — Industrial AI Compliance Engine
|
||
|
||
**Modul:** CE-Risikobeurteilung fuer Maschinen mit Software / Firmware / KI
|
||
**Service:** `ai-compliance-sdk` (Go/Gin, Port 8093)
|
||
**Base-URL:** `GET|POST https://macmini:8093/sdk/v1/iace/...`
|
||
|
||
---
|
||
|
||
## Ueberblick
|
||
|
||
Das IACE-Modul unterstuetzt die vollstaendige CE-Konformitaetsbewertung von Maschinen und Systemen mit Software-, Firmware- und KI-Anteilen gemaess:
|
||
|
||
- **Maschinenverordnung (EU) 2023/1230** (loest Maschinenrichtlinie 2006/42/EG ab)
|
||
- **AI Act (EU) 2024/1689** (fuer KI-Systeme in Hochrisikoklassen)
|
||
- **CRA (Cyber Resilience Act)** (fuer vernetzte Produkte)
|
||
- **NIS2** (fuer kritische Infrastrukturen)
|
||
|
||
---
|
||
|
||
## Risikomodell (Dual-Modus)
|
||
|
||
IACE unterstuetzt zwei Betriebsmodi fuer die Risikobewertung:
|
||
|
||
### Legacy-Modus (S×E×P)
|
||
|
||
| Avoidance | Formel | Beschreibung |
|
||
|-----------|--------|--------------|
|
||
| `0` (Standard) | `R = S × E × P` | Backward-kompatibel, kein Avoidance-Faktor |
|
||
|
||
**Schwellwerte (Legacy):**
|
||
|
||
| Schwelle | Level |
|
||
|----------|-------|
|
||
| >= 75 | critical |
|
||
| >= 40 | high |
|
||
| >= 15 | medium |
|
||
| >= 5 | low |
|
||
| < 5 | negligible |
|
||
|
||
### ISO-Modus (S×F×P×A) — ab v2.0
|
||
|
||
Wenn `avoidance >= 1`, wird automatisch der ISO-Modus aktiviert:
|
||
|
||
| Formel | Beschreibung |
|
||
|--------|--------------|
|
||
| `R = S × F × P × A` | Direkte 4-Faktor-Multiplikation (KEIN /3.0) |
|
||
|
||
**Faktoren:**
|
||
|
||
| Faktor | Skala | Beschreibung |
|
||
|--------|-------|--------------|
|
||
| **S** (Severity) | 1–5 | Schwere des moeglichen Schadens |
|
||
| **F** (Frequency/Exposure) | 1–5 | Haeufigkeit/Dauer der Exposition |
|
||
| **P** (Probability) | 1–5 | Wahrscheinlichkeit des Eintretens |
|
||
| **A** (Avoidance) | 1–5 | Moeglichkeit der Vermeidung (1=leicht, 5=nicht vermeidbar) |
|
||
|
||
**Schwellwerte (ISO-Modus):**
|
||
|
||
| Schwelle | Level | Farbe |
|
||
|----------|-------|-------|
|
||
| > 300 | not_acceptable | Dunkelrot |
|
||
| 151–300 | very_high | Dunkelorange |
|
||
| 61–150 | high | Rot |
|
||
| 21–60 | medium | Gelb |
|
||
| 1–20 | low | Gruen |
|
||
|
||
### ALARP-Akzeptanz
|
||
|
||
- `residualRisk < 15` → akzeptabel
|
||
- `residualRisk < 40` + alle Minderungsschritte verifiziert + Begruendung → akzeptabel (ALARP)
|
||
- `residualRisk >= 40` → nicht akzeptabel (blockiert CE-Export)
|
||
|
||
### Schutzmassnahmen-Hierarchie (3-Stufen)
|
||
|
||
Die Risikobehandlung folgt einer verbindlichen Hierarchie:
|
||
|
||
| Stufe | Typ | Beschreibung |
|
||
|-------|-----|--------------|
|
||
| 1 | **Design** | Inhaerent sichere Konstruktion (z.B. Begrenzung von Kraeften, Geschwindigkeiten) |
|
||
| 2 | **Schutzeinrichtung** | Technische Schutzmassnahmen (z.B. Schutzgitter, Lichtvorhang, STO) |
|
||
| 3 | **Information** | Hinweise, Warnungen, Schulung (z.B. Sicherheitskennzeichnung, Betriebsanleitung) |
|
||
|
||
!!! warning "Hierarchie-Regel"
|
||
Informationsmassnahmen (Stufe 3) duerfen **nicht** als alleinige Primaermassnahme akzeptiert werden, wenn Design- oder Schutzmassnahmen technisch moeglich sind. Das System prueft dies automatisch und gibt eine Warnung aus.
|
||
|
||
---
|
||
|
||
## Hazard-Library
|
||
|
||
Die eingebaute Hazard-Library enthaelt **150+ Eintraege** in 28 Kategorien. Alle Eintraege verwenden eigene Formulierungen und referenzieren Normen nur als Methodenquelle.
|
||
|
||
### KI/Cyber-Kategorien (12)
|
||
|
||
| Kategorie | Beschreibung |
|
||
|-----------|--------------|
|
||
| `false_classification` | Falsche KI-Klassifikation |
|
||
| `timing_error` | Echtzeit-Verletzungen |
|
||
| `data_poisoning` | Manipulierte Trainingsdaten |
|
||
| `model_drift` | Modell-Verschlechterung |
|
||
| `sensor_spoofing` | Sensor-Manipulation |
|
||
| `communication_failure` | Kommunikationsausfall |
|
||
| `unauthorized_access` | Unberechtigter Zugriff |
|
||
| `firmware_corruption` | Firmware-Beschaedigung |
|
||
| `safety_boundary_violation` | Sicherheitsgrenzwert-Verletzung |
|
||
| `mode_confusion` | Betriebsart-Verwechslung |
|
||
| `unintended_bias` | Unbeabsichtigte Diskriminierung |
|
||
| `update_failure` | Update-Fehler |
|
||
|
||
### Software/Hardware-Kategorien (12)
|
||
|
||
| Kategorie | Beschreibung |
|
||
|-----------|--------------|
|
||
| `software_fault` | Race Condition, Stack Overflow, Integer Overflow, Deadlock |
|
||
| `hmi_error` | Falsche Einheit, fehlender Alarm, Quittierung ohne Ursache |
|
||
| `mechanical_hazard` | Quetschen, Scheren, Einziehen, Herabfallende Teile, Instabilitaet |
|
||
| `electrical_hazard` | Elektrischer Schlag, Lichtbogen, Ueberstrom, Erdungsfehler |
|
||
| `thermal_hazard` | Ueberhitzung, Brandgefahr, Einfrieren, Waermestrahlung |
|
||
| `emc_hazard` | EMV-Stoerabstrahlung, ESD, HF-Stoerung |
|
||
| `configuration_error` | Falscher Safety-Param, Hard-coded Credentials, Debug-Mode |
|
||
| `safety_function_failure` | Not-Halt, STO, Schutztuer, Zweihand-Taster |
|
||
| `logging_audit_failure` | Fehlende Protokollierung, Log-Manipulation, Overflow |
|
||
| `integration_error` | Datentyp-Mismatch, Endianness, Buffer Overflow, Heartbeat |
|
||
| `environmental_hazard` | Temperatur, Feuchtigkeit, Vibration, Kontamination |
|
||
| `maintenance_hazard` | LOTO fehlt, Wartung bei laufender Maschine, Wiederanlauf |
|
||
|
||
### Physikalische Kategorien (4, ab v2.0)
|
||
|
||
| Kategorie | Beschreibung |
|
||
|-----------|--------------|
|
||
| `pneumatic_hydraulic` | Druckverlust, Druckfreisetzung, Schlauchpeitschen, unerwartete Bewegung |
|
||
| `noise_vibration` | Gehoerschaedigung, Hand-Arm-Vibration, Ganzkoerpervibration |
|
||
| `ergonomic` | Fehlbedienung, Zwangshaltung, Ueberforderung, Repetitive Belastung |
|
||
| `material_environmental` | Staub, Rauch, Daempfe, chemische Exposition, Leckagen |
|
||
|
||
### Erweiterte Felder (ab v2.0)
|
||
|
||
Jeder Hazard-Library-Eintrag enthaelt zusaetzlich:
|
||
|
||
| Feld | Typ | Beschreibung |
|
||
|------|-----|--------------|
|
||
| `default_exposure` | int (1–5) | Standard-Expositionswert |
|
||
| `default_avoidance` | int (1–5) | Standard-Vermeidbarkeit |
|
||
| `typical_causes` | string[] | Typische Ursachen |
|
||
| `typical_harm` | string | Typische Schadensfolge |
|
||
| `relevant_lifecycle_phases` | string[] | Relevante Lebensphasen |
|
||
| `recommended_measures_design` | string[] | Empfohlene Design-Massnahmen |
|
||
| `recommended_measures_technical` | string[] | Empfohlene technische Massnahmen |
|
||
| `recommended_measures_information` | string[] | Empfohlene Informationsmassnahmen |
|
||
| `suggested_evidence` | string[] | Vorgeschlagene Nachweisdokumente |
|
||
| `related_keywords` | string[] | Suchbegriffe |
|
||
|
||
**Filter:** `GET /sdk/v1/iace/hazard-library?category=mechanical_hazard&componentType=mechanical`
|
||
|
||
---
|
||
|
||
## Controls-Library
|
||
|
||
Die Controls-Library enthaelt **200 Eintraege** in 6 Domaenen:
|
||
|
||
### Domaenen-Uebersicht
|
||
|
||
| Domain | Eintraege | Beschreibung | ReductionType |
|
||
|--------|-----------|--------------|---------------|
|
||
| `REQ` | 30 | Safety Requirements — HARA, SIL/PL, Traceability | design |
|
||
| `ARCH` | 30 | Architektur & Design — Redundanz, Fail-Safe, Watchdog | design |
|
||
| `SWDEV` | 40 | Software-Entwicklung — MISRA-C, Statische Analyse, WCET | design/protective |
|
||
| `VER` | 30 | Verifikation & Validation — Fault Injection, HIL, SIL-Nachweis | design/protective |
|
||
| `CYBER` | 40 | OT-Cybersecurity — Netzwerksegmentierung, Signed Updates, SBOM | design/protective |
|
||
| `DOC` | 30 | Dokumentation & CE-Akte — Technical File, DoC, Betriebsanleitung | information |
|
||
|
||
**Filter:** `GET /sdk/v1/iace/controls-library?domain=CYBER&category=unauthorized_access`
|
||
|
||
---
|
||
|
||
## Schutzmassnahmen-Bibliothek (ab v2.0)
|
||
|
||
Zusaetzlich zur Controls-Library bietet IACE eine **Schutzmassnahmen-Bibliothek** mit **160 Eintraegen**, kategorisiert nach der 3-Stufen-Hierarchie:
|
||
|
||
| ReductionType | Eintraege | Beispiele |
|
||
|---------------|-----------|-----------|
|
||
| `design` | ~55 | Kraftbegrenzung, Formschluessige Sicherung, Redundante Sensorik |
|
||
| `protective` | ~60 | Schutzgitter, Lichtvorhang, STO, Druckbegrenzungsventil |
|
||
| `information` | ~45 | Sicherheitskennzeichnung, Betriebsanleitung, Schulungsprogramm |
|
||
|
||
**Filter:** `GET /sdk/v1/iace/protective-measures-library?category=mechanical_hazard`
|
||
|
||
---
|
||
|
||
## Lebensphasen (25)
|
||
|
||
Die Risikobeurteilung beruecksichtigt **25 Lebensphasen** einer Maschine:
|
||
|
||
| Phase | DE | EN |
|
||
|-------|----|----|
|
||
| `transport` | Transport | Transport |
|
||
| `storage` | Lagerung | Storage |
|
||
| `assembly` | Montage | Assembly |
|
||
| `installation` | Aufstellung | Installation |
|
||
| `commissioning` | Inbetriebnahme | Commissioning |
|
||
| `parameterization` | Parametrierung | Parameterization |
|
||
| `setup` | Einrichten | Setup |
|
||
| `normal_operation` | Normalbetrieb | Normal Operation |
|
||
| `auto_operation` | Automatikbetrieb | Automatic Operation |
|
||
| `manual_operation` | Handbetrieb | Manual Operation |
|
||
| `teach_mode` | Teach-Modus | Teach Mode |
|
||
| `production_start` | Produktionsstart | Production Start |
|
||
| `production_stop` | Produktionsstopp | Production Stop |
|
||
| `process_monitoring` | Prozessueberwachung | Process Monitoring |
|
||
| `cleaning` | Reinigung | Cleaning |
|
||
| `inspection` | Inspektion | Inspection |
|
||
| `maintenance` | Wartung | Maintenance |
|
||
| `calibration` | Kalibrierung | Calibration |
|
||
| `repair` | Reparatur | Repair |
|
||
| `software_update` | Software-Update | Software Update |
|
||
| `remote_maintenance` | Fernwartung | Remote Maintenance |
|
||
| `fault_clearing` | Stoerungsbeseitigung | Fault Clearing |
|
||
| `changeover` | Umruestung | Changeover |
|
||
| `decommissioning` | Ausserbetriebnahme | Decommissioning |
|
||
| `disposal` | Demontage/Entsorgung | Dismantling/Disposal |
|
||
|
||
**API:** `GET /sdk/v1/iace/lifecycle-phases`
|
||
|
||
---
|
||
|
||
## Betroffene Personen (20 Rollen)
|
||
|
||
Jede Gefaehrdung kann einer oder mehreren betroffenen Personengruppen zugeordnet werden:
|
||
|
||
| Rolle | DE | EN |
|
||
|-------|----|----|
|
||
| `operator` | Bediener | Operator |
|
||
| `setup_personnel` | Einrichter | Setup Personnel |
|
||
| `maintenance_tech` | Wartungstechniker | Maintenance Technician |
|
||
| `cleaning_staff` | Reinigungspersonal | Cleaning Staff |
|
||
| `supervisor` | Aufsichtsperson | Supervisor |
|
||
| `programmer` | Programmierer/Integrator | Programmer/Integrator |
|
||
| `trainee` | Auszubildender | Trainee |
|
||
| `temp_worker` | Leiharbeiter | Temporary Worker |
|
||
| `visitor` | Besucher | Visitor |
|
||
| `third_party` | Dritte/Passanten | Third Party/Bystander |
|
||
| `transport_personnel` | Transportpersonal | Transport Personnel |
|
||
| `commissioning_eng` | Inbetriebnahme-Ingenieur | Commissioning Engineer |
|
||
| `quality_inspector` | Qualitaetspruefer | Quality Inspector |
|
||
| `safety_officer` | Sicherheitsbeauftragter | Safety Officer |
|
||
| `electrical_tech` | Elektrofachkraft | Electrical Technician |
|
||
| `it_admin` | IT-Administrator | IT Administrator |
|
||
| `remote_operator` | Fernbediener | Remote Operator |
|
||
| `emergency_responder` | Ersthelfer/Rettungskraft | Emergency Responder |
|
||
| `contractor` | Fremdfirma-Mitarbeiter | Contractor |
|
||
| `disabled_person` | Person mit Einschraenkung | Person with Disability |
|
||
|
||
**API:** `GET /sdk/v1/iace/roles`
|
||
|
||
---
|
||
|
||
## Nachweistypen (50 in 7 Kategorien)
|
||
|
||
Fuer die Verifikation stehen **50 Nachweistypen** zur Auswahl:
|
||
|
||
| Kategorie | Beispiele |
|
||
|-----------|-----------|
|
||
| **Konstruktion** | Risikobeurteilung, Sicherheitskonzept, Schaltplan, Pneumatikplan |
|
||
| **Berechnung** | Festigkeitsberechnung, Thermische Simulation, FMEA |
|
||
| **Pruefung** | Funktionspruefung, Druckpruefung, EMV-Messung, Isolationspruefung |
|
||
| **Zertifizierung** | Baumuster-Pruefbescheinigung, SIL/PL-Zertifikat, CE-Konformitaetserklaerung |
|
||
| **Software** | Code-Review-Protokoll, Statische Analyse, Unit-Test-Report, Penetrationstest |
|
||
| **Betrieb** | Betriebsanleitung, Wartungsplan, Schulungsnachweis, Notfallplan |
|
||
| **Ueberwachung** | Inspektionsbericht, Kalibrierprotokoll, Audit-Report, Maengelprotokoll |
|
||
|
||
**API:** `GET /sdk/v1/iace/evidence-types?category=pruefung`
|
||
|
||
---
|
||
|
||
## Verifikationsmethoden (10)
|
||
|
||
| Methode | Beschreibung |
|
||
|---------|--------------|
|
||
| `design_review` | Systematische Pruefung von Konstruktionsunterlagen |
|
||
| `calculation` | Rechnerischer Nachweis (Festigkeit, Thermik, SIL) |
|
||
| `test_report` | Pruefbericht aus Labor- oder Feldversuchen |
|
||
| `validation` | Nachweis der Gebrauchstauglichkeit unter realen Bedingungen |
|
||
| `electrical_test` | Isolationsmessung, Schutzleiter, Spannungspruefung |
|
||
| `software_test` | Unit-Test, Integrationstest, statische Analyse |
|
||
| `penetration_test` | Sicherheitstest der IT/OT-Infrastruktur |
|
||
| `acceptance_protocol` | Formales Abnahmeprotokoll mit Checkliste |
|
||
| `user_test` | Anwendertest unter realistischen Einsatzbedingungen |
|
||
| `documentation_release` | Formale Freigabe von Dokumenten und Anleitungen |
|
||
|
||
---
|
||
|
||
## API-Endpunkte (30+)
|
||
|
||
### Libraries & Referenzdaten (projektunabhaengig)
|
||
|
||
| Methode | Pfad | Beschreibung |
|
||
|---------|------|--------------|
|
||
| GET | `/sdk/v1/iace/hazard-library` | Alle Gefaehrdungen (150+) |
|
||
| GET | `/sdk/v1/iace/controls-library` | Alle Controls (200) |
|
||
| GET | `/sdk/v1/iace/protective-measures-library` | Schutzmassnahmen-Bibliothek (160) |
|
||
| GET | `/sdk/v1/iace/lifecycle-phases` | 25 Lebensphasen (DE/EN) |
|
||
| GET | `/sdk/v1/iace/roles` | 20 betroffene Personengruppen (DE/EN) |
|
||
| GET | `/sdk/v1/iace/evidence-types` | 50 Nachweistypen in 7 Kategorien |
|
||
|
||
### Projektmanagement
|
||
|
||
| Methode | Pfad | Beschreibung |
|
||
|---------|------|--------------|
|
||
| POST | `/sdk/v1/iace/projects` | Neues Projekt erstellen |
|
||
| GET | `/sdk/v1/iace/projects` | Alle Projekte auflisten |
|
||
| GET | `/sdk/v1/iace/projects/:id` | Projekt-Details |
|
||
| PUT | `/sdk/v1/iace/projects/:id` | Projekt aktualisieren |
|
||
| DELETE | `/sdk/v1/iace/projects/:id` | Projekt archivieren |
|
||
|
||
### Onboarding
|
||
|
||
| Methode | Pfad | Beschreibung |
|
||
|---------|------|--------------|
|
||
| POST | `/sdk/v1/iace/projects/:id/init-from-profile` | Projekt aus Company-Profile initialisieren |
|
||
| POST | `/sdk/v1/iace/projects/:id/completeness-check` | 25-Gates-Pruefung |
|
||
|
||
### Komponenten
|
||
|
||
| Methode | Pfad | Beschreibung |
|
||
|---------|------|--------------|
|
||
| POST | `/sdk/v1/iace/projects/:id/components` | Komponente hinzufuegen |
|
||
| GET | `/sdk/v1/iace/projects/:id/components` | Alle Komponenten |
|
||
| PUT | `/sdk/v1/iace/projects/:id/components/:cid` | Komponente aktualisieren |
|
||
| DELETE | `/sdk/v1/iace/projects/:id/components/:cid` | Komponente loeschen |
|
||
|
||
### Klassifizierung
|
||
|
||
| Methode | Pfad | Beschreibung |
|
||
|---------|------|--------------|
|
||
| POST | `/sdk/v1/iace/projects/:id/classify` | Alle Regulierungen klassifizieren |
|
||
| GET | `/sdk/v1/iace/projects/:id/classifications` | Klassifizierungen abrufen |
|
||
| POST | `/sdk/v1/iace/projects/:id/classify/:regulation` | Einzelne Regulierung |
|
||
|
||
### Gefaehrdungen & Risikobewertung
|
||
|
||
| Methode | Pfad | Beschreibung |
|
||
|---------|------|--------------|
|
||
| POST | `/sdk/v1/iace/projects/:id/hazards` | Gefaehrdung anlegen |
|
||
| GET | `/sdk/v1/iace/projects/:id/hazards` | Alle Gefaehrdungen |
|
||
| PUT | `/sdk/v1/iace/projects/:id/hazards/:hid` | Gefaehrdung aktualisieren |
|
||
| POST | `/sdk/v1/iace/projects/:id/hazards/suggest` | KI-gestuetzte Vorschlaege |
|
||
| POST | `/sdk/v1/iace/projects/:id/hazards/:hid/assess` | Risikobewertung (SEPA) |
|
||
| POST | `/sdk/v1/iace/projects/:id/hazards/:hid/reassess` | Neubewertung nach Minderung |
|
||
| GET | `/sdk/v1/iace/projects/:id/risk-summary` | Aggregierte Risikouebersicht |
|
||
| POST | `/sdk/v1/iace/projects/:id/validate-mitigation-hierarchy` | Hierarchie-Pruefung (3-Stufen) |
|
||
|
||
### Minderung & Verifikation
|
||
|
||
| Methode | Pfad | Beschreibung |
|
||
|---------|------|--------------|
|
||
| POST | `/sdk/v1/iace/projects/:id/hazards/:hid/mitigations` | Massnahme anlegen |
|
||
| GET | `/sdk/v1/iace/projects/:id/hazards/:hid/mitigations` | Alle Massnahmen |
|
||
| PUT | `/sdk/v1/iace/projects/:id/hazards/:hid/mitigations/:mid` | Massnahme aktualisieren |
|
||
| POST | `/sdk/v1/iace/projects/:id/verification-plans` | Verifikationsplan erstellen |
|
||
| GET | `/sdk/v1/iace/projects/:id/verification-plans` | Alle Plaene |
|
||
| PUT | `/sdk/v1/iace/projects/:id/verification-plans/:vid` | Plan aktualisieren |
|
||
|
||
### CE-Technische Akte
|
||
|
||
| Methode | Pfad | Beschreibung |
|
||
|---------|------|--------------|
|
||
| GET | `/sdk/v1/iace/projects/:id/tech-file` | Technische Akte abrufen |
|
||
| POST | `/sdk/v1/iace/projects/:id/tech-file/generate` | Akte generieren |
|
||
| GET | `/sdk/v1/iace/projects/:id/tech-file/export` | Akte exportieren (PDF/Markdown) |
|
||
| PUT | `/sdk/v1/iace/projects/:id/tech-file/sections/:sid` | Abschnitt aktualisieren |
|
||
|
||
### Post-Market Monitoring
|
||
|
||
| Methode | Pfad | Beschreibung |
|
||
|---------|------|--------------|
|
||
| POST | `/sdk/v1/iace/projects/:id/monitoring-events` | Ereignis protokollieren |
|
||
| GET | `/sdk/v1/iace/projects/:id/monitoring-events` | Alle Ereignisse |
|
||
|
||
### Audit-Trail
|
||
|
||
| Methode | Pfad | Beschreibung |
|
||
|---------|------|--------------|
|
||
| GET | `/sdk/v1/iace/projects/:id/audit-trail` | Unveraenderliches Audit-Log |
|
||
|
||
---
|
||
|
||
## Completeness Gates (25)
|
||
|
||
Das Modul prueft 25 Vollstaendigkeitstore vor dem CE-Export:
|
||
|
||
| Gate | Kategorie | Pflicht |
|
||
|------|-----------|---------|
|
||
| G01 | Projekt-Grunddaten vollstaendig | ✅ Required |
|
||
| G02 | CE-Markierungsziel definiert | ✅ Required |
|
||
| G03 | Mind. 1 Komponente erfasst | ✅ Required |
|
||
| G04 | Regulatorische Klassifizierung abgeschlossen | ✅ Required |
|
||
| G05 | HARA-Dokument vorhanden (Evidence) | ✅ Required |
|
||
| G06 | Mind. 1 Gefaehrdung identifiziert | ✅ Required |
|
||
| G07 | Alle Gefaehrdungen bewertet | ✅ Required |
|
||
| G08 | Kein Restrisiko > critical ohne Akzeptanz | ✅ Required |
|
||
| G09 | Mind. 1 Minderungsmassnahme je Gefaehrdung | ✅ Required |
|
||
| G10 | Minderungsmassnahmen verifiziert | ✅ Required |
|
||
| G11 | Verifikationsplan vorhanden | ✅ Required |
|
||
| G12 | SIL/PL-Dokumentation (Evidence) | ✅ Required |
|
||
| G13 | Technische Akte generiert | ✅ Required |
|
||
| G14 | Konformitaetserklaerung bereit | ✅ Required |
|
||
| G15 | Betriebsanleitung vorhanden | ✅ Required |
|
||
| G16 | Wartungsanleitung vorhanden | Recommended |
|
||
| G17 | Post-Market Monitoring aktiv | Recommended |
|
||
| G18 | Cybersecurity-Massnahmen dokumentiert | Recommended |
|
||
| G19 | AI-spezifische Anforderungen erfuellt | Recommended (bei AI) |
|
||
| G20 | Kalibrierprotokolle vorhanden | Recommended |
|
||
| G21 | SBOM generiert | Optional |
|
||
| G22 | Penetrationstest durchgefuehrt | Optional |
|
||
| G23 | EMV-Pruefung dokumentiert | Optional |
|
||
| G24 | Lebenszyklusplan vorhanden | Optional |
|
||
| G25 | Monitoring-Ereignisse protokolliert | Optional |
|
||
|
||
**Completeness Score:** `(passed_required/total_required)*80 + (passed_recommended/total_recommended)*15 + (passed_optional/total_optional)*5`
|
||
|
||
---
|
||
|
||
## CE RAG-Corpus
|
||
|
||
Die folgenden 15 Dokumente werden via `scripts/ingest-ce-corpus.sh` ingestiert:
|
||
|
||
### Collection: bp_compliance_ce
|
||
|
||
| # | Dokument | Kategorie | Lizenz |
|
||
|---|----------|-----------|--------|
|
||
| 1 | Machinery Regulation (EU) 2023/1230 | ce_machinery | EU Public Law |
|
||
| 2 | Machinery Directive 2006/42/EC | ce_machinery | EU Public Law |
|
||
| 3 | Low Voltage Directive 2014/35/EU | ce_electrical | EU Public Law |
|
||
| 4 | EMC Directive 2014/30/EU | ce_emc | EU Public Law |
|
||
| 5 | Radio Equipment Directive 2014/53/EU | ce_radio | EU Public Law |
|
||
| 6 | AI Act (EU) 2024/1689 | ce_ai | EU Public Law |
|
||
| 7 | EC Guide to the Machinery Directive | ce_machinery_guidance | EU Public |
|
||
| 8 | NIST SP 800-218 (SSDF) | ce_software_safety | US Gov Public Domain |
|
||
| 9 | NIST AI RMF 1.0 | ce_ai_safety | US Gov Public Domain |
|
||
| 10 | ENISA Guidelines for Securing the IoT | ce_ot_cybersecurity | EU Public |
|
||
| 12 | NASA Software Safety Guidebook | ce_software_safety | US Gov Public Domain |
|
||
| 13 | OWASP Top 10 (2021) | ce_software_security | CC BY-SA 4.0 |
|
||
| 15 | MITRE CWE Top 25 (2023) | ce_software_weaknesses | MIT |
|
||
|
||
### Collection: bp_compliance_datenschutz
|
||
|
||
| # | Dokument | Kategorie | Lizenz |
|
||
|---|----------|-----------|--------|
|
||
| 11 | ENISA Securing Machine Learning Algorithms | ai_cybersecurity | EU Public |
|
||
| 14 | OECD AI Principles | ai_governance | OECD Public |
|
||
|
||
### Ingest-Script ausfuehren
|
||
|
||
```bash
|
||
# Auf dem Mac Mini:
|
||
bash ~/Projekte/breakpilot-compliance/scripts/ingest-ce-corpus.sh
|
||
|
||
# Nur bestimmte Phase:
|
||
bash .../ingest-ce-corpus.sh --only ce
|
||
bash .../ingest-ce-corpus.sh --only datenschutz
|
||
bash .../ingest-ce-corpus.sh --skip-download --only verify
|
||
|
||
# Ergebnis pruefen:
|
||
curl -sk https://macmini:8093/sdk/v1/iace/hazard-library | python3 -c "import sys,json; print(json.load(sys.stdin)['total'])"
|
||
curl -sk https://macmini:8093/sdk/v1/iace/controls-library | python3 -c "import sys,json; print(json.load(sys.stdin)['total'])"
|
||
```
|
||
|
||
---
|
||
|
||
## Beispiel: Risikobewertung
|
||
|
||
### Legacy-Modus (A=0)
|
||
|
||
```bash
|
||
curl -sk -X POST https://macmini:8093/sdk/v1/iace/projects/{id}/hazards/{hid}/assess \
|
||
-H "Content-Type: application/json" \
|
||
-H "X-Tenant-Id: <tenant-uuid>" \
|
||
-d '{"severity": 5, "exposure": 3, "probability": 3, "avoidance": 0}'
|
||
```
|
||
|
||
Ergebnis: `R = 5 × 3 × 3 = 45` → **high**
|
||
|
||
### ISO-Modus (A >= 1)
|
||
|
||
```bash
|
||
curl -sk -X POST https://macmini:8093/sdk/v1/iace/projects/{id}/hazards/{hid}/assess \
|
||
-H "Content-Type: application/json" \
|
||
-H "X-Tenant-Id: <tenant-uuid>" \
|
||
-d '{
|
||
"severity": 5,
|
||
"exposure": 3,
|
||
"probability": 3,
|
||
"avoidance": 4,
|
||
"control_maturity": 2,
|
||
"control_coverage": 0.6,
|
||
"test_evidence_strength": 0.5,
|
||
"acceptance_justification": "ALARP: STO implementiert und verifiziert"
|
||
}'
|
||
```
|
||
|
||
Ergebnis: `R = 5 × 3 × 3 × 4 = 180` → **very_high** (ISO-Schwellwerte)
|
||
|
||
---
|
||
|
||
## Beispiel: Controls-Library abfragen
|
||
|
||
```bash
|
||
# Alle CYBER-Controls
|
||
curl -sk "https://macmini:8093/sdk/v1/iace/controls-library?domain=CYBER" \
|
||
| python3 -c "import sys,json; d=json.load(sys.stdin); print(f'{d[\"total\"]} Controls')"
|
||
|
||
# Controls fuer software_fault-Kategorie
|
||
curl -sk "https://macmini:8093/sdk/v1/iace/controls-library?category=software_fault" \
|
||
| python3 -m json.tool | head -40
|
||
```
|
||
|
||
---
|
||
|
||
## Datenbank-Tabellen
|
||
|
||
| Tabelle | Beschreibung |
|
||
|---------|--------------|
|
||
| `iace_projects` | CE-Projekte |
|
||
| `iace_components` | System-Komponenten |
|
||
| `iace_regulatory_classifications` | Regulierungsklassifizierungen |
|
||
| `iace_hazard_library` | Benutzerdefinierte Hazard-Templates |
|
||
| `iace_hazards` | Projektspezifische Gefaehrdungen (inkl. lifecycle_phase, affected_person, trigger_event) |
|
||
| `iace_risk_assessments` | Risikobewertungen (Legacy S×E×P + ISO S×F×P×A) |
|
||
| `iace_mitigations` | Minderungsmassnahmen |
|
||
| `iace_verification_plans` | Verifikationsplaene |
|
||
| `iace_evidence` | Nachweise (Uploads) |
|
||
| `iace_tech_file_sections` | CE-Akte-Abschnitte |
|
||
| `iace_monitoring_events` | Post-Market-Ereignisse |
|
||
| `iace_audit_trail` | Unveraenderbares Audit-Log |
|
||
| `iace_lifecycle_phases` | 25 Lebensphasen (DE/EN) |
|
||
| `iace_roles` | 20 betroffene Personengruppen (DE/EN) |
|
||
| `iace_evidence_types` | 50 Nachweistypen in 7 Kategorien |
|
||
|
||
---
|
||
|
||
## Rechtlicher Hinweis — Normenreferenz
|
||
|
||
!!! warning "Urheberrecht bei Normen"
|
||
Saemtliche Inhalte des IACE-Moduls (Gefaehrdungsbibliothek, Schutzmassnahmen-Katalog,
|
||
Risikomodell, Lebensphasen, Rollen) sind **eigenstaendig formuliert**. Normen wie
|
||
ISO 12100, DIN EN 62443, IEC 61508 etc. werden ausschliesslich als **Methodenreferenz**
|
||
in den Metadaten gefuehrt (z.B. `"methodology_reference": "ISO 12100"`).
|
||
|
||
Es wird **kein normativer Text** reproduziert — keine Tabellen, Risikoklassifikationen,
|
||
Prozesstexte oder Checklisten aus Normen. Dies ist konform mit §51 UrhG (Zitatrecht).
|
||
|
||
Fuer die Anwendung der vollstaendigen Normen muss die jeweilige Norm separat
|
||
ueber DIN Media (beuth.de) oder ISO erworben werden.
|
||
|
||
**Beispiel fuer konforme Normenreferenz in generierten Dokumenten:**
|
||
|
||
> Die Risikobeurteilung wurde unter Beruecksichtigung allgemein anerkannter Methoden
|
||
> der Maschinensicherheit durchgefuehrt (u.a. angelehnt an ISO 12100).
|