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:
+121
-1
@@ -1,7 +1,34 @@
|
||||
{
|
||||
"common": {
|
||||
"appName": "ISMS-Tool",
|
||||
"logout": "Abmelden"
|
||||
"logout": "Abmelden",
|
||||
"create": "Anlegen",
|
||||
"save": "Speichern",
|
||||
"cancel": "Abbrechen",
|
||||
"edit": "Bearbeiten",
|
||||
"delete": "Löschen",
|
||||
"back": "Zurück",
|
||||
"search": "Suchen…",
|
||||
"actions": "Aktionen",
|
||||
"add": "Hinzufügen",
|
||||
"remove": "Entfernen",
|
||||
"none": "—",
|
||||
"comingSoon": "Bald verfügbar",
|
||||
"confirmDelete": "Wirklich löschen?"
|
||||
},
|
||||
"nav": {
|
||||
"dashboard": "Dashboard",
|
||||
"assetsBia": "Assets & BIA",
|
||||
"risks": "Risikoanalyse",
|
||||
"soa": "SoA & Controls",
|
||||
"measures": "Maßnahmen",
|
||||
"incidents": "Vorfälle",
|
||||
"policies": "Richtlinien",
|
||||
"chat": "ISMS-Chat",
|
||||
"dependencies": "Abhängigkeiten",
|
||||
"evidence": "Nachweise",
|
||||
"suppliers": "Lieferanten",
|
||||
"review": "Management-Review"
|
||||
},
|
||||
"login": {
|
||||
"title": "Anmelden",
|
||||
@@ -19,5 +46,98 @@
|
||||
"tenant": "Mandant",
|
||||
"roles": "Rollen",
|
||||
"placeholder": "Die Modul-Dashboards (Risiken, Aufgaben, SoA-Erfüllungsgrad) folgen in den nächsten Iterationen."
|
||||
},
|
||||
"assets": {
|
||||
"title": "Assets & BIA",
|
||||
"tabAssets": "Assets",
|
||||
"tabProcesses": "Prozesse & BIA",
|
||||
"newAsset": "Neues Asset",
|
||||
"name": "Name",
|
||||
"description": "Beschreibung",
|
||||
"type": "Typ",
|
||||
"status": "Status",
|
||||
"owner": "Owner",
|
||||
"location": "Standort",
|
||||
"tags": "Tags (kommagetrennt)",
|
||||
"protection": "Schutzbedarf",
|
||||
"confidentiality": "Vertraulichkeit",
|
||||
"integrity": "Integrität",
|
||||
"availability": "Verfügbarkeit",
|
||||
"allTypes": "Alle Typen",
|
||||
"allStatus": "Alle Status",
|
||||
"empty": "Keine Assets gefunden.",
|
||||
"detailTitle": "Asset-Details",
|
||||
"relations": "Abhängigkeiten",
|
||||
"relationHint": "Dieses Asset hängt ab von:",
|
||||
"relationReverseHint": "Von diesem Asset hängen ab:",
|
||||
"addRelation": "Abhängigkeit hinzufügen",
|
||||
"processes": "Zugeordnete Prozesse",
|
||||
"linkedRisks": "Zugeordnete Risiken",
|
||||
"linkedRisksPlaceholder": "Risiken werden mit dem Risiko-Modul (Iteration 3) verknüpft und erscheinen dann hier.",
|
||||
"editTitle": "Asset bearbeiten",
|
||||
"createTitle": "Asset anlegen",
|
||||
"deleted": "Asset gelöscht",
|
||||
"inheritedNote": "Vererbter Schutzbedarf aus Prozessen (Max-Prinzip) wird bei der BIA berücksichtigt."
|
||||
},
|
||||
"assetType": {
|
||||
"INFORMATION": "Information",
|
||||
"SYSTEM": "System",
|
||||
"APPLICATION": "Anwendung",
|
||||
"LOCATION": "Standort",
|
||||
"SUPPLIER": "Lieferant",
|
||||
"PERSON": "Person/Rolle",
|
||||
"DATA": "Datenkategorie"
|
||||
},
|
||||
"assetStatus": {
|
||||
"ACTIVE": "Aktiv",
|
||||
"PLANNED": "Geplant",
|
||||
"RETIRED": "Ausgemustert"
|
||||
},
|
||||
"processes": {
|
||||
"newProcess": "Neuer Prozess",
|
||||
"name": "Name",
|
||||
"description": "Beschreibung",
|
||||
"owner": "Owner",
|
||||
"criticality": "Kritikalität",
|
||||
"assets": "Zugeordnete Assets",
|
||||
"empty": "Keine Prozesse gefunden.",
|
||||
"detailTitle": "Prozess-Details",
|
||||
"createTitle": "Prozess anlegen",
|
||||
"editTitle": "Prozess bearbeiten",
|
||||
"primaryAssets": "Primäre Assets",
|
||||
"primaryHint": "Das im Prozess erzeugte/verantwortete Ergebnis-Asset.",
|
||||
"secondaryAssets": "Sekundäre Assets",
|
||||
"secondaryHint": "Unterstützende Assets (Systeme, Anwendungen, Personen, Lieferanten).",
|
||||
"assignAsset": "Asset zuordnen",
|
||||
"role": "Rolle",
|
||||
"linkedRisks": "Zugeordnete Risiken",
|
||||
"linkedRisksPlaceholder": "Risiken werden mit dem Risiko-Modul (Iteration 3) verknüpft und erscheinen dann hier.",
|
||||
"bia": "Business Impact Analyse",
|
||||
"rto": "RTO (Stunden)",
|
||||
"rpo": "RPO (Stunden)",
|
||||
"mtd": "MTD/MTPD (Stunden)",
|
||||
"rtoLong": "Recovery Time Objective — max. Zeit bis zur Wiederherstellung",
|
||||
"rpoLong": "Recovery Point Objective — max. tolerierbarer Datenverlust",
|
||||
"mtdLong": "Maximum Tolerable Downtime — max. tolerierbarer Ausfall",
|
||||
"impact": "Schadenshöhe je Schutzziel (1–4)",
|
||||
"notes": "Anmerkungen / Schadensszenarien",
|
||||
"biaSaved": "BIA gespeichert",
|
||||
"noBia": "Noch keine BIA erfasst."
|
||||
},
|
||||
"processRole": {
|
||||
"PRIMARY": "Primär",
|
||||
"SECONDARY": "Sekundär"
|
||||
},
|
||||
"criticality": {
|
||||
"1": "Niedrig",
|
||||
"2": "Mittel",
|
||||
"3": "Hoch",
|
||||
"4": "Sehr hoch"
|
||||
},
|
||||
"protectionLevel": {
|
||||
"1": "Normal",
|
||||
"2": "Erhöht",
|
||||
"3": "Hoch",
|
||||
"4": "Sehr hoch"
|
||||
}
|
||||
}
|
||||
|
||||
+121
-1
@@ -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 (1–4)",
|
||||
"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"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user