/** * Aktivierbare Module je Mandant (§3.4). `nav` verweist auf den Übersetzungs- * schlüssel des Navigationseintrags, `href` auf die gegatete Route. Das Dashboard * ist immer aktiv und kein Modul. */ export interface ModuleDef { key: string; name: string; // Anzeigename in der Admin-Konsole href: string; nav: string; // Schlüssel in messages nav.* } export const MODULES: ModuleDef[] = [ { key: "assets", name: "Asset-Inventar", href: "/assets", nav: "assets" }, { key: "bia", name: "Business Impact Analyse", href: "/processes", nav: "bia" }, { key: "risk", name: "Risikoanalyse", href: "/risks", nav: "risks" }, { key: "soa", name: "SoA & Controls", href: "/soa", nav: "soa" }, { key: "measures", name: "Maßnahmen / Reviews", href: "/measures", nav: "measures" }, { key: "incidents", name: "Vorfälle", href: "/incidents", nav: "incidents" }, { key: "policies", name: "Richtlinien & Verfahren", href: "/policies", nav: "policies" }, { key: "suppliers", name: "Lieferanten- / IT-Service-Management", href: "/suppliers", nav: "suppliers" }, { key: "dependencies", name: "Abhängigkeiten", href: "/dependencies", nav: "dependencies" }, { key: "evidence", name: "Nachweise", href: "/evidence", nav: "evidence" }, { key: "chat", name: "KI-Chat", href: "/chat", nav: "chat" }, { key: "review", name: "Management-Review", href: "/review", nav: "review" }, ]; export const MODULE_KEYS = MODULES.map((m) => m.key); /** Route → Modul-Key (für den serverseitigen requireModule-Guard). */ export const HREF_TO_MODULE: Record = Object.fromEntries( MODULES.map((m) => [m.href, m.key]) );