Fundament des VDA-ISA-2027-Richtlinienmoduls (Spec §1–9):
- Datenmodell: PolicyDocument, PolicyRequirement, PolicyVariable (Variablen +
Feature-Flags), PolicyBaselineParam, PolicyEvidence — inkl. RLS + Tenant-Guard
- Seed-Importer (import-policies.ts): liest die echten .md-Dateien (15 Richtlinien
L00/R01–R14 + 11 Verfahren), mapping.json (120 Anforderungen/46 Controls),
variables.schema.json (53 Variablen/Flags), Technische-Sicherheits-Baseline
(31 BL-Parameter) und Nachweisregister; idempotent pro Mandant
- 6 im Vorlagenpaket beschädigte Variablen-Tokens (VA-08/09/10/12/13) repariert
(dokumentiert im README des Übergabepakets)
- Rendering-Engine (policy-render.ts, Handlebars + marked): verschachtelte
{{#if FLAG}}, {{VARIABLE}}, {{LINK:…}}-Deeplinks, Hidden-Anker + BL-Referenzen
im Lesemodus entfernt (Wert bleibt), zentral verwaltete Abschnitte unterdrückt,
wiederholtes „Umsetzung bei <Org>" reduziert (§7a); lenienter Fallback +
Residue-Check über alle Flag-Kombinationen (analog _verify.py)
- UI: Bibliothek mit Typ-Chips/KPIs, Lesemodus-Popup (einklappbare Info-Tabelle,
Control-Chips, Richtlinie↔Verfahren-Verlinkung), Coverage-Matrix
(Control → Richtlinie → MUSS/SOLL → Verfahren → Anforderungs-IDs)
- Nav-Punkt „Richtlinien" aktiviert; de/en-Übersetzungen
Verifiziert: Import 28 Dokumente/120 Anforderungen; Rendering rückstandsfrei
über alle Flag-Kombinationen; Bibliothek, Lesemodus (R08 nested flags), Coverage
im Browser.
Später (Phase 2+): Bearbeiten/Freigabe-Workflow mit Versionierung, verwaltete
Tabellen (Krypto-/Risiko-/Klassifizierungsregister), Anwender-Handbuch,
DOCX/PDF-Export, Word-Upload, KI-Wizard, zentrale Baseline-/Variablen-Einstellseite.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
8.8 KiB
Integrationsleitfaden für den Programmierer – ISMS-Vorlagenpaket v2
Dieses Dokument beschreibt, wie die Richtlinien-Templates, Variablen, das versteckte Anforderungs-Mapping und die Verlinkungen in den Wizard/das Tool eingebaut werden. Zielgruppe: die Person, die den Wizard implementiert.
1. Paketstruktur
ISMS-Vorlagenpaket-v2/
├── 00_Integrationsleitfaden_Wizard.md ← dieses Dokument
├── variables.schema.json ← alle Wizard-Variablen (Single Source of Truth)
├── mapping.json ← Anforderungs-Mapping (REQ/IMPL ↔ ISA-Control ↔ Richtlinie)
├── ISA-Mapping-Matrix.md ← menschenlesbare ISA-Matrix (ersetzt "Bezug zu VDA ISA")
├── Technische-Sicherheits-Baseline.md ← zentrale konkrete Parameter (BL-IDs), einzige Pflegestelle
├── Nachweisregister_zentral.md ← zentrales Nachweis-Template
├── richtlinien/
│ ├── L00_Informationssicherheitsleitlinie.md
│ └── R01 … R14
└── verfahren/
└── VA-01 … VA-13 ← Verfahrensanweisungen (Abläufe zu den Richtlinien)
Richtlinie vs. Verfahren: Die Richtlinie (R01–R14) sagt was gilt und wie es grundsätzlich umgesetzt ist. Die Verfahrensanweisung (VA-01–VA-13) beschreibt den konkreten Ablauf (Auslöser → Schritte → RACI → Ergebnis/Nachweis). Jedes Verfahren trägt einen Hidden-Anker <!-- FULFILLS <req-ids> | POLICY <Rxx> -->; die erfüllten Anforderungen sind zusätzlich je Eintrag in mapping.json (verfahren-Liste) und je Anforderung (verfahren-Feld) hinterlegt. So fließen Verfahren automatisch in die Nachweisdokumentation ein.
2. Vier Bausteine im Überblick
- Variablen (
{{NAME}}, UPPER_SNAKE) – organisationsspezifische Werte, ausvariables.schema.json. - Bedingungsblöcke (
{{#if FLAG_X}} … {{/if}}) – blenden Anforderungen/Abschnitte je nach Feature-Flag und Reifegrad ein/aus. - Hidden-Anker (
<!-- REQ … -->/<!-- IMPL … -->) – unsichtbare IDs je Einzelanforderung; Grundlage für Nachweis-Mapping und Deep-Links. - Link-Platzhalter (
{{LINK:ZIEL}}) – Verweise zwischen Dokumenten und zu Nachweisen, die das Tool zur Laufzeit auflöst.
3. Templating-Konvention (Handlebars-kompatibel)
| Konstrukt | Bedeutung |
|---|---|
{{ORG_NAME}} |
Variablen-Einsetzung |
{{#if FLAG_CLOUD_USED}} … {{/if}} |
bedingter Block (Feature-Flag) |
{{#if FLAG_INCLUDE_SHOULD}} … {{/if}} |
SOLL-Anforderungen ein-/ausblenden (Reifegrad) |
[MUSS] / [SOLL] |
Text-Kennzeichnung der Anforderungsstufe |
<!-- REQ 1.2.1-M1 --> |
Hidden-Anker vor einer Anforderung |
<!-- IMPL 1.2.1-M1 --> |
Hidden-Anker vor dem zugehörigen Umsetzungstext |
{{LINK:R02}} |
Link-Platzhalter (siehe Abschnitt 6) |
Beim Rendern: Variablen einsetzen, {{#if}}-Blöcke nach Kontext auflösen, {{LINK:…}} in echte Links übersetzen. Die <!-- … -->-Anker im Dokument belassen (sie sind im Lesemodus unsichtbar) – das Tool braucht sie zur Laufzeit für Deep-Links und Nachweiszuordnung. Für den PDF-/Druckexport können sie entfernt werden.
4. Aufbau einer thematischen Richtlinie (R01–R14)
### 3.1 <Control-Titel> (ISA 1.2.1)
**Anforderung**
<!-- REQ 1.2.1-M1 -->
- **[MUSS]** <normativer Anforderungstext>
{{#if FLAG_INCLUDE_SHOULD}}
<!-- REQ 1.2.1-S1 -->
- **[SOLL]** <SOLL-Anforderung>
{{/if}}
**Umsetzung bei {{ORG_NAME}}**
<!-- IMPL 1.2.1-M1 -->
<vorformulierter Ist-Text mit Variablen/Optionalblöcken>
Jede Anforderung (REQ) hat genau eine Umsetzung (IMPL) mit identischer ID. Ausnahme L00 (Leitlinie): kombiniertes Dokument, dort ist IMPL-Anker = REQ-Anker (in mapping.json bereits so hinterlegt).
ID-Schema: <ISA-Control>-<M|S><laufnr>, z. B. 1.2.1-M1, 5.2.9-S1. MUSS und SOLL werden getrennt nummeriert.
5. mapping.json – das versteckte Anforderungs-Mapping
Zentrale Datei, die je Einzelanforderung Metadaten bündelt. Aufbau je Eintrag:
{
"id": "1.2.1-M1",
"policy": "R01",
"policy_file": "R01_ISMS-Organisation-und-Rollen.md",
"control": "1.2.1",
"type": "MUSS",
"req_anchor": "REQ 1.2.1-M1",
"impl_anchor": "IMPL 1.2.1-M1",
"condition": null,
"requirement": "Der Geltungsbereich des ISMS … ist bestimmt und dokumentiert.",
"implementation": "Der ISMS-Geltungsbereich ist im ISMS-Tool … dokumentiert.",
"link": "{{LINK:R01#1.2.1}}",
"nachweis_link": "{{LINK:NACHWEISREGISTER}}"
}
condition=null(immer aktiv),"FLAG_INCLUDE_SHOULD"(nur bei SOLL) oder ein Feature-Flag. Anforderungen, deren Bedingung im Kontextfalseist, erscheinen im Dokument nicht und werden in der Nachweisdoku übersprungen.- Reading-Mode: Der Anwender sieht nur Anforderung + Umsetzung, keine IDs. Das Tool blendet je Anforderung eine dezente Verlinkung („Nachweise") ein, die über
nachweis_linkbzw. die ID auf den Nachweiseintrag zeigt.
6. Link-Platzhalter {{LINK:ZIEL}} auflösen
Das Tool ersetzt Platzhalter durch echte Deep-Links (unabhängig von Dateipfaden):
| Platzhalter | Ziel |
|---|---|
{{LINK:L00}} … {{LINK:R14}} |
jeweiliges Richtlinien-Dokument |
{{LINK:R01#1.2.1}} |
Sprungziel auf Control-Abschnitt (Anker aus ID ableitbar) |
{{LINK:NACHWEISREGISTER}} |
zentrales Nachweisregister |
{{LINK:ISA_MAPPING}} |
ISA-Mapping-Matrix |
{{LINK:BASELINE}} |
Technische Sicherheits-Baseline |
{{LINK:VA-01}} … {{LINK:VA-13}} |
Verfahrensanweisungen |
Konkrete Parameter (Passwort, Fristen, Krypto …): liegen ausschließlich in Technische-Sicherheits-Baseline.md und im Schema (Variablen wie PW_MIN_LENGTH, LOG_RETENTION). Die Umsetzungstexte referenzieren die Baseline-IDs (BL-IAM-01 …) und rendern die Werte über dieselben Variablen – so gibt es genau eine Pflegestelle je Wert.
Empfehlung: eine Auflösungstabelle DOC_ID → interne Tool-URL pflegen; unbekannte Ziele als Warnung loggen.
7. Wizard-Ablauf (empfohlen)
- Schema laden (
variables.schema.json) → Eingabemasken erzeugen. Reihenfolge: Organisation → Geltungsbereich → Rollen → ISMS-Tool → Feature-Flags → Reifegrad → tech. Lösungen (TECH_*) → Metadaten. - Kontext validieren (Pflichtfelder
required, Defaults übernehmen). - Rendern je Dokument: Variablen einsetzen,
{{#if}}auflösen,{{LINK}}übersetzen, Hidden-Anker belassen. - Mapping filtern: aus
mapping.jsonalle Anforderungen entfernen, derenconditionim Kontextfalseist → ergibt die aktive Anforderungsliste dieses Mandanten. - Speichern/Verknüpfen im Tool.
Minimal-Render (Node/Handlebars)
import Handlebars from "handlebars";
const render = (tpl, ctx) =>
Handlebars.compile(tpl, { noEscape: true })(ctx) // Hidden-Anker bleiben erhalten
.replace(/\{\{LINK:([^}]+)\}\}/g, (_, id) => resolveLink(id));
8. Nachweisdokumentation aus dem Mapping bauen
Genau der Zweck des Mappings: Aus mapping.json + Nachweiseinträgen lässt sich per Knopfdruck eine Nachweisdoku erzeugen. Vorgehen:
- Aktive Anforderungen ermitteln (Abschnitt 7, Schritt 4).
- Je Anforderung:
id,type,requirement,implementation, Link zur Richtlinie (link) und zum Nachweis (nachweis_link) zusammenstellen. - Nachweise aus {{TOOL_NAME}} anhängen (Owner/Turnus aus
Nachweisregister_zentral.md). - Ausgabe als Tabelle/Export (z. B. für das VDA-ISA-Assessment: Spalten „Implementation description" =
implementation, „Reference documentation" = Nachweis-Link).
So entsteht die Assessment-Sicht, ohne dass der Anwender im Lesemodus mit IDs konfrontiert wird.
9. Cross-Links zwischen Dokumenten
Jede Richtlinie enthält einen Abschnitt „Verwandte Dokumente" mit {{LINK:…}} auf Leitlinie, ISA-Matrix, Nachweisregister und thematisch verwandte Richtlinien. Innerhalb der Umsetzungstexte stehen zusätzlich kontextbezogene Verweise (z. B. R08 verweist bei Zugriffsrechten auf R10). Das Tool löst alle Platzhalter einheitlich auf.
10. Pflege & Konsistenz
- Neue Variable: zuerst in
variables.schema.json, dann im Template verwenden. - Neue Anforderung/Control: Anforderung + Umsetzung im Template ergänzen (mit
REQ/IMPL-Ankern) und Eintrag inmapping.json; ISA-Matrix neu erzeugen. - Konsistenzcheck vor Auslieferung (empfohlen): (a) jeder
{{NAME}}existiert im Schema; (b) jederREQ/IMPL-Anker im Dokument hat einenmapping.json-Eintrag und umgekehrt; (c) jedes{{LINK:…}}-Ziel ist auflösbar. Die mitgelieferten Generatoren (_generate_v2.py,_matrix.py) sind die Referenzimplementierung dieser Regeln.
11. Reifegrad
FLAG_INCLUDE_SHOULD = true → Reifegrad 3 (MUSS + SOLL). false → reines MUSS-Set. Höhere Reifegrade (4/5) lassen sich später als zusätzliche condition-Stufe (z. B. FLAG_LEVEL_4) ergänzen, ohne die Struktur zu ändern.