All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Successful in 37s
CI / test-python-backend-compliance (push) Successful in 33s
CI / test-python-document-crawler (push) Successful in 22s
CI / test-python-dsms-gateway (push) Successful in 18s
Alle /ai/... und /developers/... Pfade hatten keine Pages (404). Gefixt: Daten&RAG→/sdk/rag, Schulungen→/sdk/training, Screening→/sdk/screening, Qualitaet→/sdk/quality. SDK-Doku-Kategorie entfernt (liegt auf Developer Portal :3006). Meta-Links ohne Pages (architecture, onboarding, backlog, rbac) durch SDK-Module-Link ersetzt. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
125 lines
3.6 KiB
TypeScript
125 lines
3.6 KiB
TypeScript
/**
|
|
* Navigation Structure for Admin v2
|
|
*
|
|
* Main categories with color-coded modules.
|
|
* All DSGVO and Compliance modules are now consolidated under the SDK.
|
|
*/
|
|
|
|
export type CategoryId = 'ai'
|
|
|
|
export interface NavModule {
|
|
id: string
|
|
name: string
|
|
href: string
|
|
description: string
|
|
purpose: string
|
|
audience: string[]
|
|
gdprArticles?: string[]
|
|
oldAdminPath?: string // Reference to old admin for migration
|
|
subgroup?: string // Optional subgroup for visual grouping in sidebar
|
|
}
|
|
|
|
export interface NavCategory {
|
|
id: CategoryId
|
|
name: string
|
|
icon: string
|
|
color: string
|
|
colorClass: string
|
|
description: string
|
|
modules: NavModule[]
|
|
}
|
|
|
|
export const navigation: NavCategory[] = [
|
|
// =========================================================================
|
|
// KI & Automatisierung
|
|
// =========================================================================
|
|
{
|
|
id: 'ai',
|
|
name: 'KI & Automatisierung',
|
|
icon: 'brain',
|
|
color: '#14b8a6', // Teal
|
|
colorClass: 'ai',
|
|
description: 'LLM, OCR, RAG & Machine Learning',
|
|
modules: [
|
|
{
|
|
id: 'rag',
|
|
name: 'Daten & RAG',
|
|
href: '/sdk/rag',
|
|
description: 'Vektor-Suche & Collections',
|
|
purpose: 'Verwalten und durchsuchen Sie indexierte Dokumente. Zeigt Status aller Qdrant Collections und ermoeglicht semantische Suche.',
|
|
audience: ['Entwickler', 'Data Scientists', 'Compliance Officer'],
|
|
subgroup: 'KI-Daten-Pipeline',
|
|
},
|
|
{
|
|
id: 'training',
|
|
name: 'Schulungen',
|
|
href: '/sdk/training',
|
|
description: 'KI-gestuetzte Mitarbeiter-Schulungen',
|
|
purpose: 'Erstellen und verwalten Sie Compliance-Schulungen fuer Mitarbeiter mit KI-Unterstuetzung.',
|
|
audience: ['Compliance Officer', 'HR', 'Admins'],
|
|
subgroup: 'KI-Anwendungen',
|
|
},
|
|
{
|
|
id: 'screening',
|
|
name: 'KI-Screening',
|
|
href: '/sdk/screening',
|
|
description: 'Automatische Compliance-Pruefung',
|
|
purpose: 'Automatisierte Pruefung von Dokumenten und Prozessen auf Compliance-Konformitaet.',
|
|
audience: ['Compliance Officer', 'DSB'],
|
|
subgroup: 'KI-Anwendungen',
|
|
},
|
|
{
|
|
id: 'quality',
|
|
name: 'Qualitaetssicherung',
|
|
href: '/sdk/quality',
|
|
description: 'KI-Qualitaets-Dashboard',
|
|
purpose: 'Ueberwachung und Sicherstellung der KI-Ausgabequalitaet.',
|
|
audience: ['Entwickler', 'QA'],
|
|
subgroup: 'KI-Werkzeuge',
|
|
},
|
|
],
|
|
},
|
|
]
|
|
|
|
// 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',
|
|
},
|
|
{
|
|
id: 'sdk-overview',
|
|
name: 'SDK Module',
|
|
href: '/sdk',
|
|
description: 'Alle DSGVO & Compliance Module',
|
|
purpose: 'Uebersicht aller SDK-Module fuer Datenschutz und Compliance.',
|
|
audience: ['Alle'],
|
|
},
|
|
]
|
|
|
|
// 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]
|
|
}
|