Iteration Teil D: Lieferantenmanagement (VDA-ISA 2027 Kap. 6 + NIS2)

Datenmodell (Prisma, RLS): Supplier + SupplierAsset, SupplierAssessment,
Contract, Nda, SupplierEvidence, ServiceResponsibility, Subcontractor,
ManagementDecision, SupplierControl (globaler Katalog) +
SupplierControlMaturity.

- VDA-ISA-2027-Kap.-6-Mini-Katalog (Controls 6.1.1–6.1.3) mit Zielbild,
  Muss/Soll, Anforderungen für hoch/sehr hoch, Simplified Group
  Assessment, Ziel-Reifegrad 3 und Cross-Referenzen (ISO/NIST/BSI); im
  Seed befüllt
- Lieferantenverzeichnis mit KPIs (gesamt, NIS2-relevant, ablaufend,
  Reviews fällig), Kritikalität, NIS2-Flag, Review-Fristen
- Detail-Popup: Stammdaten (Sektor/Leistung/Datenkategorien/CIA),
  betroffene Assets, VDA-ISA-Reifegrade je Control (Ziel 3, farbige
  Balken), Nachweise (Angemessenheit + Ablauf), Assessments, Verträge
  (AV/DPA, Flow-down, Fristen), NDAs (Fristen), Shared-Responsibility-
  Matrix, Subunternehmer, Managemententscheidungen
- Bearbeiten-Popup: Stammdaten (ein Speichern), Reifegrad je Control,
  Add/Delete für alle Kind-Entitäten, Löschen im ⋯-Menü
- Regel 6.1.1: fehlt geprüfter Audit-/TISAX-Nachweis → Warnung, dass
  eine dokumentierte risikobasierte Managemententscheidung nötig ist
- Server-Actions mit Zod/RBAC/Audit-Log; Seed mit Demo-Lieferant
  (TISAX-Label, AV/DPA, NDA, Assessment, RACI, Reifegrade)
- Menüpunkt „Lieferanten" aktiv; Lieferant ↔ Asset verknüpft (Graph)

Verifiziert: Register/Detail/Bearbeiten dunkel & vollständig, Reifegrad-
Save (6.1.2→4 mit Audit), Managemententscheidungs-Logik.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Martin
2026-07-03 10:23:02 +02:00
co-authored by Claude Opus 4.8
parent 18bd82e54a
commit 32ab91efbf
12 changed files with 2110 additions and 1 deletions
+117
View File
@@ -341,5 +341,122 @@
"legCrit": "Kritisch (K≥3)",
"empty": "Noch keine Prozesse/Assets für einen Graphen vorhanden.",
"openGraph": "Im Abhängigkeitsgraph anzeigen"
},
"suppliers": {
"title": "Lieferanten & Dienstleister",
"sub": "VDA-ISA 2027 Kap. 6 · NIS2 Lieferkette (Art. 21(2)(d))",
"crumb": "Fachdaten",
"new": "Lieferant",
"newSupplier": "Neuer Lieferant",
"ref": "ID",
"kpiTotal": "Lieferanten",
"kpiNis2": "NIS2-relevant",
"kpiExpiring": "Ablaufend (90 T.)",
"kpiReviews": "Reviews fällig",
"name": "Name",
"sector": "Sektor",
"services": "Leistung / IT-Services",
"criticality": "Kritikalität",
"dataCategories": "Datenkategorien (kommagetrennt)",
"protection": "Schutzbedarf",
"nis2": "NIS2-relevant (Lieferkette)",
"status": "Status",
"contact": "Kontakt",
"nextReview": "Nächstes Review",
"notes": "Anmerkungen",
"empty": "Keine Lieferanten erfasst.",
"detailSub": "Bewertung, Verträge, Nachweise & Verantwortung",
"createTitle": "Lieferant anlegen",
"editTitle": "Lieferant bearbeiten",
"masterPill": "■ Stammdaten",
"catalog": "VDA-ISA 2027 · Kap. 6 Supplier Relationships",
"catalogNote": "Reifegrad je Prüfziel (Ziel 3)",
"target": "Ziel",
"maturity": "Reifegrad",
"references": "Referenzen",
"objective": "Zielbild",
"must": "Muss",
"should": "Soll",
"high": "Hoher Schutzbedarf",
"veryHigh": "Sehr hoher Schutzbedarf",
"sga": "Simplified Group Assessment",
"assessments": "Sicherheitsbewertungen",
"addAssessment": "Bewertung hinzufügen",
"score": "Score",
"result": "Ergebnis",
"type": "Typ",
"date": "Datum",
"contracts": "Verträge",
"addContract": "Vertrag hinzufügen",
"avDpa": "AV/DPA (Art. 28)",
"securityClauses": "Sicherheitsklauseln",
"flowdown": "Flow-down (Subunternehmer)",
"customerTransparency": "Kunden-Transparenz",
"validFrom": "Gültig ab",
"validTo": "Gültig bis",
"reference": "Referenz",
"ndas": "NDA / Geheimhaltung",
"addNda": "NDA hinzufügen",
"parties": "Parteien",
"infoScope": "Informationsart",
"subject": "Gegenstand",
"obligations": "Pflichten",
"extensionStatus": "Verlängerung",
"evidence": "Nachweise & Assurance",
"addEvidence": "Nachweis hinzufügen",
"kind": "Art",
"protectsCia": "Deckt (C/I/A)",
"adequacy": "Angemessenheit geprüft",
"expires": "läuft ab",
"raci": "Verantwortung (Shared Responsibility)",
"addRaci": "Zuordnung hinzufügen",
"itService": "IT-Service",
"requirement": "Anforderung",
"responsible": "Verantwortlich",
"isaApplicability": "ISA-Anwendbarkeit",
"localControls": "Lokale Schutzmaßnahmen",
"subcontractors": "Subunternehmer (4th Party)",
"addSub": "Subunternehmer hinzufügen",
"flowdownObl": "Flow-down-Pflicht",
"decision": "Risikobasierte Managemententscheidung",
"addDecision": "Entscheidung protokollieren",
"reasonNoAudit": "Grund (kein Audit/Label)",
"decisionText": "Entscheidung",
"decidedBy": "Entschieden von",
"recordRef": "Aktenzeichen",
"decisionNeeded": "Kein Third-Party-Audit/TISAX-Label mit geprüfter Angemessenheit vorhanden — eine dokumentierte risikobasierte Managemententscheidung ist erforderlich.",
"assets": "Betroffene Assets",
"close": "Schließen",
"none": "—",
"add": "Hinzufügen"
},
"assessmentType": {
"QUESTIONNAIRE": "Fragebogen",
"SELF_ASSESSMENT": "Self-Assessment",
"AUDIT": "Audit"
},
"assessmentStatus": {
"SENT": "Versendet",
"RECEIVED": "Eingegangen",
"EVALUATED": "Bewertet",
"OVERDUE": "Überfällig"
},
"evidenceKind": {
"CERTIFICATE": "Zertifikat",
"TISAX_LABEL": "TISAX-Label",
"ATTESTATION": "Attestierung",
"AUDIT_REPORT": "Auditbericht",
"SELF_ASSESSMENT": "Self-Assessment"
},
"responsibleParty": {
"CLIENT": "Kunde",
"SUPPLIER": "Lieferant",
"SHARED": "Geteilt"
},
"supplierStatus": {
"ACTIVE": "Aktiv",
"ONBOARDING": "Onboarding",
"UNDER_REVIEW": "In Prüfung",
"OFFBOARDED": "Beendet"
}
}
+117
View File
@@ -341,5 +341,122 @@
"legCrit": "Critical (K≥3)",
"empty": "No processes/assets available for a graph yet.",
"openGraph": "Show in dependency graph"
},
"suppliers": {
"title": "Suppliers & service providers",
"sub": "VDA-ISA 2027 ch. 6 · NIS2 supply chain (Art. 21(2)(d))",
"crumb": "Core data",
"new": "Supplier",
"newSupplier": "New supplier",
"ref": "ID",
"kpiTotal": "Suppliers",
"kpiNis2": "NIS2-relevant",
"kpiExpiring": "Expiring (90 d)",
"kpiReviews": "Reviews due",
"name": "Name",
"sector": "Sector",
"services": "Service / IT services",
"criticality": "Criticality",
"dataCategories": "Data categories (comma-separated)",
"protection": "Protection needs",
"nis2": "NIS2-relevant (supply chain)",
"status": "Status",
"contact": "Contact",
"nextReview": "Next review",
"notes": "Notes",
"empty": "No suppliers recorded.",
"detailSub": "Assessment, contracts, evidence & responsibility",
"createTitle": "Create supplier",
"editTitle": "Edit supplier",
"masterPill": "■ Master data",
"catalog": "VDA-ISA 2027 · ch. 6 Supplier Relationships",
"catalogNote": "Maturity per objective (target 3)",
"target": "Target",
"maturity": "Maturity",
"references": "References",
"objective": "Objective",
"must": "Must",
"should": "Should",
"high": "High protection",
"veryHigh": "Very high protection",
"sga": "Simplified Group Assessment",
"assessments": "Security assessments",
"addAssessment": "Add assessment",
"score": "Score",
"result": "Result",
"type": "Type",
"date": "Date",
"contracts": "Contracts",
"addContract": "Add contract",
"avDpa": "DPA (Art. 28)",
"securityClauses": "Security clauses",
"flowdown": "Flow-down (subcontractors)",
"customerTransparency": "Customer transparency",
"validFrom": "Valid from",
"validTo": "Valid to",
"reference": "Reference",
"ndas": "NDA / non-disclosure",
"addNda": "Add NDA",
"parties": "Parties",
"infoScope": "Information type",
"subject": "Subject",
"obligations": "Obligations",
"extensionStatus": "Extension",
"evidence": "Evidence & assurance",
"addEvidence": "Add evidence",
"kind": "Kind",
"protectsCia": "Covers (C/I/A)",
"adequacy": "Adequacy checked",
"expires": "expires",
"raci": "Responsibility (shared responsibility)",
"addRaci": "Add assignment",
"itService": "IT service",
"requirement": "Requirement",
"responsible": "Responsible",
"isaApplicability": "ISA applicability",
"localControls": "Local controls",
"subcontractors": "Subcontractors (4th party)",
"addSub": "Add subcontractor",
"flowdownObl": "Flow-down obligation",
"decision": "Risk-based management decision",
"addDecision": "Record decision",
"reasonNoAudit": "Reason (no audit/label)",
"decisionText": "Decision",
"decidedBy": "Decided by",
"recordRef": "Record ref",
"decisionNeeded": "No third-party audit/TISAX label with checked adequacy present — a documented risk-based management decision is required.",
"assets": "Affected assets",
"close": "Close",
"none": "—",
"add": "Add"
},
"assessmentType": {
"QUESTIONNAIRE": "Questionnaire",
"SELF_ASSESSMENT": "Self-assessment",
"AUDIT": "Audit"
},
"assessmentStatus": {
"SENT": "Sent",
"RECEIVED": "Received",
"EVALUATED": "Evaluated",
"OVERDUE": "Overdue"
},
"evidenceKind": {
"CERTIFICATE": "Certificate",
"TISAX_LABEL": "TISAX label",
"ATTESTATION": "Attestation",
"AUDIT_REPORT": "Audit report",
"SELF_ASSESSMENT": "Self-assessment"
},
"responsibleParty": {
"CLIENT": "Client",
"SUPPLIER": "Supplier",
"SHARED": "Shared"
},
"supplierStatus": {
"ACTIVE": "Active",
"ONBOARDING": "Onboarding",
"UNDER_REVIEW": "Under review",
"OFFBOARDED": "Offboarded"
}
}