Iteration 2: Assets & BIA als gemeinsames Modul

- App-Shell mit Seitennavigation (alle 12 Module, kommende ausgegraut),
  shadcn/ui-Setup (Base-UI-Variante) mit hellem Theme
- Asset-Inventar: filterbare Liste (Suche/Typ/Status), Anlegen/Bearbeiten/
  Löschen, Detailansicht mit Schutzbedarf (C/I/A 1–4), Abhängigkeiten
  (beide Richtungen, hinzufügen/entfernen), zugeordneten Prozessen mit
  Primär-/Sekundär-Rolle und Platzhalter für zugeordnete Risiken
- Prozesse & BIA: Liste mit Kritikalität/RTO/MTD, Prozess-Detail mit
  Asset-Zuordnung nach Rolle (primär/sekundär), BIA-Formular
  (RTO/RPO/MTD, Schadenshöhe je Schutzziel, Kritikalität nach Max-Prinzip)
- Server-Actions mit Zod-Validierung, requirePermission und Audit-Log
  für jede schreibende Aktion; Tenant-Guard um upsert-Injektion erweitert
- Prisma: Asset, AssetRelation, Process, ProcessAsset, BiaEntry
  inkl. RLS-Policies; Seed mit Beispiel-Assets, Prozessen und BIA
- Im Browser verifiziert: CRUD, Relationen, BIA-Speichern, Audit-Einträge

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Martin
2026-07-02 12:35:19 +02:00
co-authored by Claude Fable 5
parent 880afed391
commit 392bb246cf
41 changed files with 6085 additions and 149 deletions
+121 -1
View File
@@ -1,7 +1,34 @@
{
"common": {
"appName": "ISMS Tool",
"logout": "Sign out"
"logout": "Sign out",
"create": "Create",
"save": "Save",
"cancel": "Cancel",
"edit": "Edit",
"delete": "Delete",
"back": "Back",
"search": "Search…",
"actions": "Actions",
"add": "Add",
"remove": "Remove",
"none": "—",
"comingSoon": "Coming soon",
"confirmDelete": "Really delete?"
},
"nav": {
"dashboard": "Dashboard",
"assetsBia": "Assets & BIA",
"risks": "Risk analysis",
"soa": "SoA & controls",
"measures": "Measures",
"incidents": "Incidents",
"policies": "Policies",
"chat": "ISMS chat",
"dependencies": "Dependencies",
"evidence": "Evidence",
"suppliers": "Suppliers",
"review": "Management review"
},
"login": {
"title": "Sign in",
@@ -19,5 +46,98 @@
"tenant": "Tenant",
"roles": "Roles",
"placeholder": "Module dashboards (risks, tasks, SoA coverage) follow in upcoming iterations."
},
"assets": {
"title": "Assets & BIA",
"tabAssets": "Assets",
"tabProcesses": "Processes & BIA",
"newAsset": "New asset",
"name": "Name",
"description": "Description",
"type": "Type",
"status": "Status",
"owner": "Owner",
"location": "Location",
"tags": "Tags (comma-separated)",
"protection": "Protection needs",
"confidentiality": "Confidentiality",
"integrity": "Integrity",
"availability": "Availability",
"allTypes": "All types",
"allStatus": "All statuses",
"empty": "No assets found.",
"detailTitle": "Asset details",
"relations": "Dependencies",
"relationHint": "This asset depends on:",
"relationReverseHint": "Depending on this asset:",
"addRelation": "Add dependency",
"processes": "Assigned processes",
"linkedRisks": "Assigned risks",
"linkedRisksPlaceholder": "Risks will be linked with the risk module (iteration 3) and appear here.",
"editTitle": "Edit asset",
"createTitle": "Create asset",
"deleted": "Asset deleted",
"inheritedNote": "Inherited protection needs from processes (max principle) are considered in the BIA."
},
"assetType": {
"INFORMATION": "Information",
"SYSTEM": "System",
"APPLICATION": "Application",
"LOCATION": "Location",
"SUPPLIER": "Supplier",
"PERSON": "Person/role",
"DATA": "Data category"
},
"assetStatus": {
"ACTIVE": "Active",
"PLANNED": "Planned",
"RETIRED": "Retired"
},
"processes": {
"newProcess": "New process",
"name": "Name",
"description": "Description",
"owner": "Owner",
"criticality": "Criticality",
"assets": "Assigned assets",
"empty": "No processes found.",
"detailTitle": "Process details",
"createTitle": "Create process",
"editTitle": "Edit process",
"primaryAssets": "Primary assets",
"primaryHint": "The result asset produced/owned by this process.",
"secondaryAssets": "Secondary assets",
"secondaryHint": "Supporting assets (systems, applications, people, suppliers).",
"assignAsset": "Assign asset",
"role": "Role",
"linkedRisks": "Assigned risks",
"linkedRisksPlaceholder": "Risks will be linked with the risk module (iteration 3) and appear here.",
"bia": "Business impact analysis",
"rto": "RTO (hours)",
"rpo": "RPO (hours)",
"mtd": "MTD/MTPD (hours)",
"rtoLong": "Recovery Time Objective — max. time to recovery",
"rpoLong": "Recovery Point Objective — max. tolerable data loss",
"mtdLong": "Maximum Tolerable Downtime — max. tolerable outage",
"impact": "Damage level per protection goal (14)",
"notes": "Notes / damage scenarios",
"biaSaved": "BIA saved",
"noBia": "No BIA recorded yet."
},
"processRole": {
"PRIMARY": "Primary",
"SECONDARY": "Secondary"
},
"criticality": {
"1": "Low",
"2": "Medium",
"3": "High",
"4": "Very high"
},
"protectionLevel": {
"1": "Normal",
"2": "Elevated",
"3": "High",
"4": "Very high"
}
}