Files
breakpilot-compliance/admin-compliance/lib/navigation.ts
Benjamin Boenisch dccb3e9f36 feat: add reporting frontend, fix module categorization, update docs
- Create Reporting module frontend (page.tsx) with executive dashboard
  showing compliance score, risk overview, deadlines, module KPIs
- Create Reporting lib (types.ts, api.ts) matching Go backend models
- Add Reporting to STEP_EXPLANATIONS and both SDK sidebars
- Remove DSB Portal, Multi-Tenant, SSO from SDK sidebars (admin-only)
- Add Multi-Tenant, SSO, DSB Portal to dashboard navigation.ts
  with 'Plattform-Verwaltung' subgroup
- Update docs: academy.md (PDF certs), reporting.md (new),
  index.md (SDK vs Admin categorization), mkdocs.yml (all modules)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 01:03:53 +01:00

155 lines
5.3 KiB
TypeScript

/**
* Navigation Structure for Admin Compliance
*
* Compliance-only navigation with SDK modules.
* Extracted from admin-v2, keeping only compliance-relevant modules.
*/
export type CategoryId = 'compliance-sdk' | 'development'
export interface NavModule {
id: string
name: string
href: string
description: string
purpose: string
audience: string[]
gdprArticles?: string[]
oldAdminPath?: string
subgroup?: string
}
export interface NavCategory {
id: CategoryId
name: string
icon: string
color: string
colorClass: string
description: string
modules: NavModule[]
}
export const navigation: NavCategory[] = [
// =========================================================================
// Compliance SDK - Alle Datenschutz-, Compliance- und SDK-Module
// =========================================================================
{
id: 'compliance-sdk',
name: 'Compliance SDK',
icon: 'shield',
color: '#8b5cf6', // Violet-500
colorClass: 'compliance-sdk',
description: 'DSGVO, Audit, GRC & SDK-Werkzeuge',
modules: [
{
id: 'catalog-manager',
name: 'Katalogverwaltung',
href: '/dashboard/catalog-manager',
description: 'SDK-Kataloge & Auswahltabellen',
purpose: 'Zentrale Verwaltung aller Dropdown- und Auswahltabellen im SDK. Systemkataloge (Risiken, Massnahmen, Vorlagen) anzeigen und benutzerdefinierte Eintraege ergaenzen, bearbeiten und loeschen.',
audience: ['DSB', 'Compliance Officer', 'Administratoren'],
},
// --- Plattform-Verwaltung (interne Admin-Tools) ---
{
id: 'multi-tenant',
name: 'Mandantenverwaltung',
href: '/dashboard/multi-tenant',
description: 'B2B-Kundenverwaltung & Mandanten',
purpose: 'Verwaltung aller Compliance-Mandanten (B2B-Kunden). Mandanten anlegen, konfigurieren, Lizenzen zuweisen und Nutzungsstatistiken einsehen.',
audience: ['Plattform-Admins', 'Entwickler'],
subgroup: 'Plattform-Verwaltung',
},
{
id: 'sso',
name: 'SSO-Konfiguration',
href: '/dashboard/sso',
description: 'Single Sign-On & Authentifizierung',
purpose: 'Konfiguration der Authentifizierung fuer Mandanten. SAML/OIDC-Provider anbinden, SSO-Policies verwalten und Login-Flows testen.',
audience: ['Plattform-Admins', 'Entwickler'],
subgroup: 'Plattform-Verwaltung',
},
{
id: 'dsb-portal',
name: 'DSB Portal',
href: '/dashboard/dsb-portal',
description: 'Datenschutzbeauftragter-Arbeitsbereich',
purpose: 'Zentraler Arbeitsbereich fuer den externen Datenschutzbeauftragten (DSB). Aufgabenverwaltung, Beratungsprotokolle, Taetigkeitsbericht und mandantenuebergreifende Uebersicht gemaess Art. 37-39 DSGVO.',
audience: ['DSB', 'Plattform-Admins'],
gdprArticles: ['Art. 37', 'Art. 38', 'Art. 39'],
subgroup: 'Plattform-Verwaltung',
},
],
},
// =========================================================================
// Development - Entwickler-Tools und Dokumentation
// =========================================================================
{
id: 'development',
name: 'Entwicklung & Produkte',
icon: 'code',
color: '#64748b', // Slate-500
colorClass: 'development',
description: 'Dokumentation, Screenflow & Brandbook',
modules: [
{
id: 'docs',
name: 'Developer Docs',
href: '/development/docs',
description: 'MkDocs Projekt-Dokumentation',
purpose: 'Technische Dokumentation der Compliance-Plattform mit Architektur, API-Referenz und Entwickler-Guides.',
audience: ['Entwickler', 'Architekten'],
},
{
id: 'screen-flow',
name: 'Screen Flow',
href: '/development/screen-flow',
description: 'UI Screen-Verbindungen & Navigation',
purpose: 'Visualisierung aller SDK-Screens und deren Verbindungen mit interaktivem ReactFlow-Diagramm.',
audience: ['Entwickler', 'Designer'],
},
{
id: 'brandbook',
name: 'Brandbook',
href: '/development/brandbook',
description: 'Corporate Design & Styleguide',
purpose: 'Compliance SDK Design-System mit Farben, Typografie, Komponenten und Tonalitaet.',
audience: ['Entwickler', 'Designer'],
},
],
},
]
// Meta modules (always visible)
export const metaModules: NavModule[] = [
{
id: 'dashboard',
name: 'Dashboard',
href: '/dashboard',
description: 'Uebersicht & Statistiken',
purpose: 'Zentrale Uebersicht ueber alle Systeme mit wichtigen Kennzahlen.',
audience: ['Alle'],
oldAdminPath: '/admin',
},
]
// Helper function to get category by ID
export function getCategoryById(id: CategoryId): NavCategory | undefined {
return navigation.find(cat => cat.id === id)
}
// Helper function to get module by href
export function getModuleByHref(href: string): { category: NavCategory; module: NavModule } | undefined {
for (const category of navigation) {
const module = category.modules.find(m => m.href === href)
if (module) {
return { category, module }
}
}
return undefined
}
// Helper function to get all modules flat
export function getAllModules(): NavModule[] {
return [...navigation.flatMap(cat => cat.modules), ...metaModules]
}