diff --git a/admin-compliance/app/sdk/advisory-board/page.tsx b/admin-compliance/app/sdk/advisory-board/page.tsx index 1276a80..f88f4ca 100644 --- a/admin-compliance/app/sdk/advisory-board/page.tsx +++ b/admin-compliance/app/sdk/advisory-board/page.tsx @@ -2,20 +2,71 @@ import React, { useState } from 'react' import Link from 'next/link' -import { useSDK, UseCaseAssessment } from '@/lib/sdk' +import { useSDK, UseCaseAssessment, UseCaseIntake } from '@/lib/sdk' // ============================================================================= // WIZARD STEPS // ============================================================================= const WIZARD_STEPS = [ - { id: 1, name: 'Grunddaten', description: 'Name und Beschreibung des Use Cases' }, + { id: 1, name: 'Grunddaten', description: 'Name, Beschreibung, Kategorie und Branche' }, { id: 2, name: 'Datenkategorien', description: 'Welche Daten werden verarbeitet?' }, - { id: 3, name: 'Technologie', description: 'Eingesetzte KI-Technologien' }, - { id: 4, name: 'Risikobewertung', description: 'Erste Risikoeinschätzung' }, - { id: 5, name: 'Zusammenfassung', description: 'Überprüfung und Abschluss' }, + { id: 3, name: 'Verarbeitungszweck', description: 'Rechtsgrundlage und Zweck' }, + { id: 4, name: 'Technologie & Modell', description: 'KI-Technologien und Modell-Nutzung' }, + { id: 5, name: 'Automatisierung', description: 'Grad der Automatisierung' }, + { id: 6, name: 'Hosting & Transfer', description: 'Hosting und Datentransfer' }, + { id: 7, name: 'Datenhaltung', description: 'Aufbewahrung und Vertraege' }, + { id: 8, name: 'Zusammenfassung', description: 'Ueberpruefung und Abschluss' }, ] +const TOTAL_STEPS = WIZARD_STEPS.length + +const DOMAINS = [ + { value: 'healthcare', label: 'Gesundheit' }, + { value: 'finance', label: 'Finanzen' }, + { value: 'education', label: 'Bildung' }, + { value: 'retail', label: 'Handel' }, + { value: 'it_services', label: 'IT-Dienstleistungen' }, + { value: 'consulting', label: 'Beratung' }, + { value: 'manufacturing', label: 'Produktion' }, + { value: 'hr', label: 'Personalwesen' }, + { value: 'marketing', label: 'Marketing' }, + { value: 'legal', label: 'Recht' }, + { value: 'public', label: 'Oeffentlicher Sektor' }, + { value: 'general', label: 'Allgemein' }, +] + +// ============================================================================= +// RISK CALCULATION (client-side) +// ============================================================================= + +function calculateRiskScore(form: WizardFormData): { score: number; level: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL'; dsfaRequired: boolean } { + let score = 0 + if (form.processesPersonalData) score += 10 + if (form.specialCategories) score += 25 + if (form.biometricData) score += 20 + if (form.healthData) score += 15 + if (form.minorsData) score += 15 + if (form.financialData) score += 5 + if (form.purposeProfiling) score += 15 + if (form.purposeAutomatedDecision) score += 20 + if (form.automation === 'fully_automated') score += 25 + else if (form.automation === 'semi_automated') score += 10 + if (form.internationalTransfer) score += 10 + if (form.modelTraining) score += 10 + if (form.modelFinetune) score += 5 + + let level: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL' + if (score >= 60) level = 'CRITICAL' + else if (score >= 40) level = 'HIGH' + else if (score >= 20) level = 'MEDIUM' + else level = 'LOW' + + const dsfaRequired = score >= 40 || form.specialCategories || (form.purposeAutomatedDecision && form.automation === 'fully_automated') + + return { score, level, dsfaRequired } +} + // ============================================================================= // USE CASE CARD // ============================================================================= @@ -31,7 +82,7 @@ function UseCaseCard({ onSelect: () => void onDelete: () => void }) { - const completionPercent = Math.round((useCase.stepsCompleted / 5) * 100) + const completionPercent = Math.round((useCase.stepsCompleted / TOTAL_STEPS) * 100) return (
- Schritt {currentStep}: {WIZARD_STEPS[currentStep - 1].description} + Schritt {currentStep} von {TOTAL_STEPS}: {WIZARD_STEPS[currentStep - 1].description}
+
Bei besonderen Kategorien ist eine DSFA in der Regel erforderlich!
)}+ z.B. Kennzeichen, Fahrzeug-Identifikationsnummer (VIN), Geraete-IDs, IP-Adressen +
+ {formData.customDataTypes.map((dt, idx) => ( ++ Wie stark greift die KI in Entscheidungen ein? Je hoeher der Automatisierungsgrad, desto strenger die regulatorischen Anforderungen. +
+ + {[ + { + value: 'assistive' as const, + label: 'Assistiv (Mensch entscheidet)', + desc: 'Die KI liefert Informationen oder Vorschlaege, aber ein Mensch trifft immer die finale Entscheidung.', + examples: 'Rechtschreibkorrektur, Suchvorschlaege, Zusammenfassungen, Uebersetzungshilfe', + }, + { + value: 'semi_automated' as const, + label: 'Teilautomatisiert (Mensch prueft)', + desc: 'Die KI erstellt Ergebnisse oder Entwuerfe, die ein Mensch vor der Ausfuehrung prueft und bestaetigt.', + examples: 'E-Mail-Entwuerfe mit manueller Freigabe, vorgeschlagene Diagnosen mit Arztbestaetigung, KI-generierte Vertraege mit juristischer Pruefung', + }, + { + value: 'fully_automated' as const, + label: 'Vollautomatisiert (KI entscheidet)', + desc: 'Die KI trifft Entscheidungen eigenstaendig. Ein Mensch ueberwacht nur stichprobenartig oder bei Ausnahmen.', + examples: 'Automatische Kreditentscheidungen, automatisierte Bewerbungs-Vorauswahl, autonome Chatbot-Antworten ohne Pruefung', + }, + ].map(item => ( ++ Vollautomatisierte Systeme, die Personen erheblich beeinflussen (z.B. Kreditvergabe, Bewerbungsauswahl), + unterliegen strengen Auflagen: Informationspflicht, Recht auf menschliche Ueberpruefung und Anfechtungsmoeglichkeit. +
Kommagetrennte Laenderkuerzel
+- Basierend auf Ihrer Eingabe wird eine Datenschutz-Folgenabschätzung empfohlen. + Basierend auf Ihren Angaben wird eine DSFA nach Art. 35 DSGVO empfohlen. + Sie koennen diese im DSFA-Modul erstellen, nachdem der Use Case angelegt wurde.
- Erfassen Sie Ihre KI-Anwendungsfälle und erhalten Sie eine erste Compliance-Bewertung + Erfassen Sie Ihre KI-Anwendungsfaelle und erhalten Sie eine erste Compliance-Bewertung