'use client' /** * RAG & Legal Corpus Management * * Verwaltet das Legal Corpus RAG System fuer Compliance. * Zeigt Status aller 19 Regulierungen, Chunks und ermoeglicht Suche. */ import React, { useState, useEffect, useCallback } from 'react' import Link from 'next/link' import { PagePurpose } from '@/components/common/PagePurpose' import { AIModuleSidebarResponsive } from '@/components/ai/AIModuleSidebar' import { REGULATIONS_IN_RAG } from './rag-constants' import { ChunkBrowserQA } from './components/ChunkBrowserQA' // API uses local proxy route to klausur-service const API_PROXY = '/api/legal-corpus' const DSFA_API_PROXY = '/api/dsfa-corpus' // Types interface RegulationStatus { code: string name: string fullName: string type: string chunkCount: number expectedRequirements: number sourceUrl: string status: 'ready' | 'empty' | 'error' } interface CollectionStatus { collection: string totalPoints: number vectorSize: number status: string regulations: Record } interface SearchResult { text: string regulation_code: string regulation_name: string article: string | null paragraph: string | null source_url: string score: number } // DSFA source type (from /api/dsfa-corpus) interface DsfaSource { source_code: string name: string full_name?: string organization?: string source_url?: string license_code: string attribution_text: string document_type: string language: string chunk_count?: number } interface DsfaCorpusStatus { qdrant_collection: string total_sources: number total_documents: number total_chunks: number qdrant_points_count: number qdrant_status: string } // RAG category filter for Regulations tab type RegulationCategory = 'regulations' | 'dsfa' | 'nibis' | 'templates' // Tab definitions type TabId = 'overview' | 'regulations' | 'map' | 'search' | 'chunks' | 'data' | 'ingestion' | 'pipeline' // Custom document type interface CustomDocument { id: string code: string title: string filename?: string url?: string document_type: string uploaded_at: string status: 'uploaded' | 'queued' | 'fetching' | 'processing' | 'indexed' | 'error' chunk_count: number error?: string } // Pipeline types interface Validation { name: string status: 'passed' | 'warning' | 'failed' | 'not_run' expected: any actual: any message: string } interface PipelineCheckpoint { phase: string name: string status: 'pending' | 'running' | 'completed' | 'failed' | 'skipped' started_at: string | null completed_at: string | null duration_seconds: number | null metrics: Record validations: Validation[] error: string | null } interface PipelineState { status: string pipeline_id: string | null started_at: string | null completed_at: string | null current_phase: string | null checkpoints: PipelineCheckpoint[] summary: Record validation_summary?: { passed: number warning: number failed: number total: number } } // All regulations with descriptions const REGULATIONS = [ { code: 'GDPR', name: 'DSGVO', fullName: 'Datenschutz-Grundverordnung (GDPR)', type: 'eu_regulation', expected: 99, description: 'Die DSGVO ist das zentrale Datenschutzgesetz der EU. Sie regelt die Verarbeitung personenbezogener Daten und gibt Betroffenen umfangreiche Rechte (Auskunft, Loeschung, Datenportabilitaet). Gilt fuer alle Unternehmen, die Daten von EU-Buergern verarbeiten.', relevantFor: ['Alle Unternehmen mit EU-Kunden', 'Datenverarbeiter', 'Auftragsverarbeiter'], keyTopics: ['Einwilligung', 'Betroffenenrechte', 'Datenschutz-Folgenabschaetzung', 'Auftragsverarbeitung', 'Bussgelder bis 4% Umsatz'], effectiveDate: '25. Mai 2018' }, { code: 'EPRIVACY', name: 'ePrivacy-Richtlinie', fullName: 'Richtlinie 2002/58/EG (ePrivacy)', type: 'eu_directive', expected: 25, description: 'Ergaenzt die DSGVO speziell fuer elektronische Kommunikation. Regelt Cookies, Tracking, Direktmarketing und Vertraulichkeit der Kommunikation. Wird durch nationale Gesetze wie das TDDDG umgesetzt.', relevantFor: ['Website-Betreiber', 'App-Entwickler', 'Marketing-Abteilungen', 'Telekommunikationsanbieter'], keyTopics: ['Cookie-Consent', 'Tracking', 'E-Mail-Marketing', 'Vertraulichkeit'], effectiveDate: '31. Juli 2002' }, { code: 'TDDDG', name: 'TDDDG', fullName: 'Telekommunikation-Digitale-Dienste-Datenschutz-Gesetz', type: 'de_law', expected: 30, description: 'Deutsches Umsetzungsgesetz der ePrivacy-Richtlinie. Regelt den Datenschutz bei Telemedien und Telekommunikation. Enthaelt die strengen deutschen Cookie-Consent-Anforderungen.', relevantFor: ['Deutsche Unternehmen', 'Website-Betreiber mit deutschen Nutzern', 'App-Anbieter'], keyTopics: ['Cookie-Banner', 'Einwilligung fuer Endgeraetezugriff', 'Tracking-Consent', 'Bestandsdaten'], effectiveDate: '1. Dezember 2021' }, { code: 'SCC', name: 'Standardvertragsklauseln', fullName: 'EU-Standardvertragsklauseln (2021/914/EU)', type: 'eu_regulation', expected: 18, description: 'Vorgefertigte Vertragsklauseln fuer den internationalen Datentransfer. Erforderlich, wenn personenbezogene Daten in Drittlaender ohne Angemessenheitsbeschluss uebermittelt werden (z.B. USA vor DPF).', relevantFor: ['Unternehmen mit Drittland-Transfers', 'Cloud-Nutzer', 'Internationale Konzerne'], keyTopics: ['Drittlandtransfer', 'Controller-to-Controller', 'Controller-to-Processor', 'TIA (Transfer Impact Assessment)'], effectiveDate: '27. Juni 2021' }, { code: 'DPF', name: 'EU-US Data Privacy Framework', fullName: 'EU-US Data Privacy Framework', type: 'eu_regulation', expected: 12, description: 'Angemessenheitsbeschluss fuer Datentransfers in die USA. Nachfolger des gekippten Privacy Shield. Ermoeglicht Datenuebermittlungen an zertifizierte US-Unternehmen ohne zusaetzliche Garantien.', relevantFor: ['Unternehmen mit US-Dienstleistern', 'Cloud-Nutzer (AWS, Google, Microsoft)', 'SaaS-Anwender'], keyTopics: ['US-Datentransfer', 'Zertifizierung', 'Redress-Mechanismus', 'Privacy Shield Nachfolger'], effectiveDate: '10. Juli 2023' }, { code: 'AIACT', name: 'EU AI Act', fullName: 'Verordnung (EU) 2024/1689 - KI-Verordnung', type: 'eu_regulation', expected: 85, description: 'Weltweit erste umfassende KI-Regulierung. Klassifiziert KI-Systeme nach Risiko (verboten, hoch, begrenzt, minimal) und stellt entsprechende Anforderungen. Hochrisiko-KI benoetigt CE-Kennzeichnung.', relevantFor: ['KI-Entwickler', 'KI-Anwender', 'Hersteller von KI-Produkten', 'Importeure'], keyTopics: ['Risikoklassifizierung', 'Hochrisiko-KI', 'Verbotene KI', 'Transparenzpflichten', 'CE-Kennzeichnung'], effectiveDate: '1. August 2024 (gestaffelt bis 2027)' }, { code: 'CRA', name: 'Cyber Resilience Act', fullName: 'Verordnung (EU) 2024/2847 - Cyber Resilience Act', type: 'eu_regulation', expected: 45, description: 'Cybersicherheitsanforderungen fuer Produkte mit digitalen Elementen. Verpflichtet Hersteller zu Security-by-Design, Schwachstellenmanagement und Security-Updates ueber den Lebenszyklus.', relevantFor: ['IoT-Hersteller', 'Software-Entwickler', 'Hardware-Hersteller', 'Importeure'], keyTopics: ['Security by Design', 'Schwachstellenmanagement', 'SBOM', 'CE-Kennzeichnung', 'Security Updates'], effectiveDate: '2024 (Uebergangsfristen bis 2027)' }, { code: 'NIS2', name: 'NIS2-Richtlinie', fullName: 'Richtlinie (EU) 2022/2555 - Network and Information Security', type: 'eu_directive', expected: 46, description: 'Cybersicherheitsrichtlinie fuer kritische und wichtige Einrichtungen. Erweitert NIS1 erheblich auf mehr Sektoren. Fordert Risikomanagement, Incident Reporting und Lieferkettensicherheit.', relevantFor: ['Kritische Infrastrukturen (KRITIS)', 'Gesundheitswesen', 'Energie', 'Transport', 'Digitale Dienste', 'Oeffentliche Verwaltung'], keyTopics: ['Cybersicherheits-Risikomanagement', 'Incident Reporting (24h)', 'Lieferkettensicherheit', 'Geschaeftsfuehrer-Haftung'], effectiveDate: '17. Oktober 2024 (nationale Umsetzung)' }, { code: 'EUCSA', name: 'EU Cybersecurity Act', fullName: 'Verordnung (EU) 2019/881 - EU Cybersecurity Act', type: 'eu_regulation', expected: 35, description: 'Schafft den EU-Rahmen fuer Cybersicherheitszertifizierung und staerkt die ENISA. Ermoeglicht EU-weite Zertifizierungsschemata fuer IT-Produkte, -Dienste und -Prozesse.', relevantFor: ['IT-Produkthersteller', 'Cloud-Anbieter', 'Zertifizierungsstellen', 'Oeffentliche Auftraggeber'], keyTopics: ['Cybersicherheitszertifizierung', 'ENISA', 'Vertrauensstufen (basic/substantial/high)', 'EUCC Schema'], effectiveDate: '27. Juni 2019' }, { code: 'DATAACT', name: 'Data Act', fullName: 'Verordnung (EU) 2023/2854 - Data Act', type: 'eu_regulation', expected: 42, description: 'Regelt den Zugang zu und die Nutzung von Daten. Gibt Nutzern Rechte an Daten, die durch vernetzte Produkte erzeugt werden. Ermoeglicht Datenweitergabe und Cloud-Wechsel.', relevantFor: ['IoT-Hersteller', 'Cloud-Anbieter', 'Dateninhaber', 'Datennutzer', 'Oeffentliche Stellen'], keyTopics: ['Datenzugang', 'Datenportabilitaet', 'Cloud-Switching', 'B2B-Datenteilung', 'IoT-Daten'], effectiveDate: '12. September 2025' }, { code: 'DGA', name: 'Data Governance Act', fullName: 'Verordnung (EU) 2022/868 - Data Governance Act', type: 'eu_regulation', expected: 35, description: 'Schafft Rahmenbedingungen fuer Datenmaerkte und Datenaltruismus. Regelt Datenvermittlungsdienste und die Weiterverwendung geschuetzter oeffentlicher Daten.', relevantFor: ['Datenvermittler', 'Oeffentliche Stellen', 'Forschungseinrichtungen', 'Datenaltruismus-Organisationen'], keyTopics: ['Datenvermittlung', 'Datenaltruismus', 'Oeffentliche Daten', 'Datentreuhaender'], effectiveDate: '24. September 2023' }, { code: 'DSA', name: 'Digital Services Act', fullName: 'Verordnung (EU) 2022/2065 - Digital Services Act', type: 'eu_regulation', expected: 93, description: 'Reguliert digitale Dienste und Plattformen. Schafft Pflichten fuer Online-Vermittler, Hosting-Dienste und Plattformen. Sehr grosse Plattformen (VLOPs) haben erweiterte Pflichten.', relevantFor: ['Online-Plattformen', 'Marktplaetze', 'Social Media', 'Hosting-Anbieter', 'Suchmaschinen'], keyTopics: ['Notice-and-Action', 'Transparenz', 'Illegale Inhalte', 'VLOP-Pflichten', 'Algorithmen-Transparenz'], effectiveDate: '17. Februar 2024' }, { code: 'EAA', name: 'European Accessibility Act', fullName: 'Richtlinie (EU) 2019/882 - Barrierefreiheitsanforderungen', type: 'eu_directive', expected: 25, description: 'Barrierefreiheitsanforderungen fuer Produkte und Dienstleistungen. Betrifft Computer, Smartphones, Bankdienstleistungen, E-Commerce, E-Books und mehr.', relevantFor: ['E-Commerce', 'Banken', 'Telekommunikation', 'Verkehrsdienste', 'Medienanbieter'], keyTopics: ['Barrierefreiheit', 'WCAG', 'Assistive Technologien', 'Ausnahmen fuer KMU'], effectiveDate: '28. Juni 2025' }, { code: 'DSM', name: 'DSM-Urheberrechtsrichtlinie', fullName: 'Richtlinie (EU) 2019/790 - Digital Single Market Copyright', type: 'eu_directive', expected: 22, description: 'Modernisiert das EU-Urheberrecht fuer das digitale Zeitalter. Enthaelt kontroverse Artikel zu Uploadfiltern (Art. 17) und Leistungsschutzrecht fuer Presseverleger (Art. 15).', relevantFor: ['Content-Plattformen', 'Nachrichtenaggregatoren', 'Bildungseinrichtungen', 'Kulturerbe-Einrichtungen'], keyTopics: ['Upload-Filter (Art. 17)', 'Leistungsschutzrecht', 'Text-und-Data-Mining', 'Verguetungsansprueche'], effectiveDate: '7. Juni 2021' }, { code: 'PLD', name: 'Produkthaftungsrichtlinie', fullName: 'Richtlinie 85/374/EWG (aktualisiert) - Produkthaftung', type: 'eu_directive', expected: 18, description: 'Regelt die Haftung fuer fehlerhafte Produkte. Aktualisierte Version umfasst auch Software und KI. Hersteller haften verschuldensunabhaengig fuer Produktfehler.', relevantFor: ['Produkthersteller', 'Software-Entwickler', 'KI-Anbieter', 'Importeure'], keyTopics: ['Verschuldensunabhaengige Haftung', 'Software als Produkt', 'KI-Haftung', 'Beweislast'], effectiveDate: 'Ueberarbeitung 2024' }, { code: 'GPSR', name: 'General Product Safety', fullName: 'Verordnung (EU) 2023/988 - Allgemeine Produktsicherheit', type: 'eu_regulation', expected: 30, description: 'Ersetzt die alte Produktsicherheitsrichtlinie. Stellt sicher, dass nur sichere Verbraucherprodukte auf den EU-Markt gelangen. Gilt auch fuer Online-Marktplaetze.', relevantFor: ['Produkthersteller', 'Importeure', 'Online-Marktplaetze', 'Haendler'], keyTopics: ['Produktsicherheit', 'Marktplatzhaftung', 'Rueckrufe', 'Safety Gate'], effectiveDate: '13. Dezember 2024' }, { code: 'BSI-TR-03161-1', name: 'BSI-TR Teil 1', fullName: 'BSI TR-03161 Teil 1 - Sicherheitsanforderungen an Digitale Gesundheitsanwendungen (DiGA) - Mobile Anwendungen', type: 'bsi_standard', expected: 45, description: 'Deutsche Technische Richtlinie fuer die Sicherheit mobiler Gesundheits-Apps (DiGA). Definiert Pruefverfahren und Sicherheitsanforderungen fuer die DiGA-Zulassung.', relevantFor: ['DiGA-Hersteller', 'Mobile-App-Entwickler im Gesundheitswesen', 'Pruefstellen'], keyTopics: ['Mobile App Security', 'Authentifizierung', 'Datenverschluesselung', 'Secure Coding'], effectiveDate: 'Version 1.0: 2020' }, { code: 'BSI-TR-03161-2', name: 'BSI-TR Teil 2', fullName: 'BSI TR-03161 Teil 2 - Sicherheitsanforderungen an Digitale Gesundheitsanwendungen (DiGA) - Web-Anwendungen', type: 'bsi_standard', expected: 40, description: 'Technische Richtlinie fuer die Sicherheit von Web-Anwendungen im Gesundheitswesen. Ergaenzt Teil 1 um spezifische Anforderungen fuer Web-Frontends.', relevantFor: ['DiGA-Hersteller mit Web-Apps', 'Web-Entwickler im Gesundheitswesen', 'Pruefstellen'], keyTopics: ['Web Application Security', 'OWASP Top 10', 'Session Management', 'TLS'], effectiveDate: 'Version 1.0: 2020' }, { code: 'BSI-TR-03161-3', name: 'BSI-TR Teil 3', fullName: 'BSI TR-03161 Teil 3 - Sicherheitsanforderungen an Digitale Gesundheitsanwendungen (DiGA) - Hintergrundsysteme', type: 'bsi_standard', expected: 35, description: 'Technische Richtlinie fuer Backend-Systeme von Gesundheitsanwendungen. Deckt Server, APIs, Datenbanken und Cloud-Infrastruktur ab.', relevantFor: ['DiGA-Backend-Entwickler', 'Cloud-Architekten im Gesundheitswesen', 'DevOps-Teams'], keyTopics: ['Backend Security', 'API Security', 'Datenbanksicherheit', 'Cloud Security', 'Logging'], effectiveDate: 'Version 1.0: 2020' }, // Financial Sector Regulations { code: 'DORA', name: 'DORA', fullName: 'Verordnung (EU) 2022/2554 - Digital Operational Resilience Act', type: 'eu_regulation', expected: 64, description: 'Digitale operationale Resilienz fuer den Finanzsektor. Verpflichtet Finanzunternehmen zu umfassendem IKT-Risikomanagement, Vorfallmeldung, Resilienz-Tests und Drittanbieter-Management.', relevantFor: ['Banken', 'Versicherungen', 'Wertpapierfirmen', 'Zahlungsdienstleister', 'Krypto-Anbieter', 'IKT-Drittanbieter'], keyTopics: ['IKT-Risikomanagement', 'Incident Reporting', 'Resilience Testing', 'Third-Party Risk', 'Threat-Led Penetration Testing'], effectiveDate: '17. Januar 2025' }, { code: 'PSD2', name: 'PSD2', fullName: 'Richtlinie (EU) 2015/2366 - Zahlungsdiensterichtlinie', type: 'eu_directive', expected: 117, description: 'Reguliert Zahlungsdienste im EU-Binnenmarkt. Fuehrt Open Banking ein, verpflichtet zu starker Kundenauthentifizierung (SCA) und ermoeglicht Drittanbieterzugang zu Bankkonten.', relevantFor: ['Banken', 'Zahlungsdienstleister', 'FinTechs', 'E-Commerce-Anbieter', 'Kontoinformationsdienste'], keyTopics: ['Strong Customer Authentication (SCA)', 'Open Banking APIs', 'PSD2-Schnittstellen', 'Kontoinformationsdienste', 'Zahlungsauslösedienste'], effectiveDate: '13. Januar 2018' }, { code: 'AMLR', name: 'AML-Verordnung', fullName: 'Verordnung (EU) 2024/1624 - Anti-Money Laundering Regulation', type: 'eu_regulation', expected: 89, description: 'EU-weite Verordnung zur Bekaempfung von Geldwaesche und Terrorismusfinanzierung. Ersetzt die bisherigen Richtlinien durch direkt anwendbare Vorschriften. Schafft einheitliche Sorgfaltspflichten.', relevantFor: ['Banken', 'Finanzdienstleister', 'Krypto-Anbieter', 'Immobilienmakler', 'Wirtschaftspruefer', 'Notare'], keyTopics: ['Sorgfaltspflichten (KYC)', 'Verdachtsmeldungen', 'Wirtschaftlich Berechtigte', 'Risikobewertung', 'AMLA (neue EU-Behoerde)'], effectiveDate: '2027 (gestaffelt)' }, { code: 'MiCA', name: 'MiCA', fullName: 'Verordnung (EU) 2023/1114 - Markets in Crypto-Assets', type: 'eu_regulation', expected: 149, description: 'Umfassende Regulierung fuer Kryptowerte, Stablecoins und Crypto-Asset-Dienstleister. Schafft EU-weiten Rechtsrahmen fuer Krypto-Maerkte mit Zulassungspflichten und Verbraucherschutz.', relevantFor: ['Krypto-Boersen', 'Wallet-Anbieter', 'Stablecoin-Emittenten', 'Token-Herausgeber', 'Krypto-Verwahrer', 'FinTechs'], keyTopics: ['Krypto-Zulassung', 'Stablecoin-Regulierung', 'Whitepaper-Pflicht', 'Marktmissbrauch', 'Verwahrung'], effectiveDate: '30. Dezember 2024' }, { code: 'EHDS', name: 'EHDS', fullName: 'Verordnung (EU) 2025/327 - Europaeischer Gesundheitsdatenraum', type: 'eu_regulation', expected: 95, description: 'Schafft den Europaeischen Raum fuer Gesundheitsdaten. Ermoeglicht Primaernutzung (Patientenrechte) und Sekundaernutzung (Forschung, KI-Training) von Gesundheitsdaten unter strengen Auflagen.', relevantFor: ['Krankenhaeuser', 'Aerzte', 'Gesundheits-Apps', 'Pharma', 'Forschungseinrichtungen', 'Versicherungen'], keyTopics: ['Patientenakte (MyHealth@EU)', 'Sekundaernutzung', 'Datenzugangsorgane', 'Gesundheitsdatenstandards', 'Forschungszugang'], effectiveDate: '2025 (gestaffelt bis 2029)' }, // National Data Protection Laws (migrated from bp_dsfa_corpus) { code: 'AT_DSG', name: 'DSG Oesterreich', fullName: 'Datenschutzgesetz Oesterreich (DSG)', type: 'national_law', expected: 50, description: 'Oesterreichisches Datenschutzgesetz zur Ergaenzung der DSGVO. Regelt nationale Besonderheiten wie Bildverarbeitung, Datenschutzbehoerde und Strafbestimmungen.', relevantFor: ['Unternehmen in Oesterreich', 'DACH-Unternehmen', 'Auftragsverarbeiter'], keyTopics: ['Nationale DSGVO-Ergaenzung', 'Bildverarbeitung', 'Datenschutzbehoerde', 'Strafbestimmungen'], effectiveDate: '25. Mai 2018' }, { code: 'BDSG_FULL', name: 'BDSG', fullName: 'Bundesdatenschutzgesetz (BDSG) - Volltext', type: 'de_law', expected: 9, description: 'Deutsches Bundesdatenschutzgesetz als nationale Ergaenzung zur DSGVO. Regelt Beschaeftigtendatenschutz, Videoueberachung, Scoring und Datenschutzbeauftragte.', relevantFor: ['Deutsche Unternehmen', 'Arbeitgeber', 'Auskunfteien', 'Oeffentliche Stellen'], keyTopics: ['Beschaeftigtendatenschutz', 'Videoueberachung', 'Scoring', 'Datenschutzbeauftragter'], effectiveDate: '25. Mai 2018' }, { code: 'CH_DSG', name: 'DSG Schweiz', fullName: 'Datenschutzgesetz Schweiz (revDSG 2023)', type: 'national_law', expected: 2, description: 'Revidiertes Schweizer Datenschutzgesetz mit DSGVO-nahen Anforderungen. Gilt fuer Schweizer Unternehmen und solche, die Schweizer Daten verarbeiten.', relevantFor: ['Schweizer Unternehmen', 'DACH-Unternehmen', 'Internationale Dienstleister'], keyTopics: ['Datenschutz-Folgenabschaetzung', 'Meldepflichten', 'Profiling', 'Strafbestimmungen'], effectiveDate: '1. September 2023' }, { code: 'LI_DSG', name: 'DSG Liechtenstein', fullName: 'Datenschutzgesetz Liechtenstein', type: 'national_law', expected: 1, description: 'Liechtensteinisches Datenschutzgesetz als EWR-Umsetzung der DSGVO.', relevantFor: ['Unternehmen in Liechtenstein', 'EWR-Dienstleister'], keyTopics: ['EWR-Datenschutz', 'Nationale Ergaenzung', 'Datenschutzstelle'], effectiveDate: '2018' }, { code: 'BE_DPA_LAW', name: 'Datenschutzgesetz Belgien', fullName: 'Loi relative a la protection des donnees (Belgien)', type: 'national_law', expected: 153, description: 'Belgisches Datenschutzgesetz zur nationalen Umsetzung der DSGVO. Regelt die Autorite de protection des donnees (APD).', relevantFor: ['Unternehmen in Belgien', 'EU-Hauptsitz Bruessel'], keyTopics: ['APD', 'Nationale DSGVO-Umsetzung', 'Strafbestimmungen', 'Sektorale Regeln'], effectiveDate: '2018' }, { code: 'NL_UAVG', name: 'UAVG Niederlande', fullName: 'Uitvoeringswet AVG (UAVG) Niederlande', type: 'national_law', expected: 138, description: 'Niederlaendisches Ausfuehrungsgesetz zur DSGVO. Regelt nationale Besonderheiten wie BSN-Verarbeitung und Gesundheitsdaten.', relevantFor: ['Unternehmen in den Niederlanden', 'Gesundheitssektor NL'], keyTopics: ['BSN-Nummer', 'Gesundheitsdaten', 'Autoriteit Persoonsgegevens', 'Nationale Ergaenzung'], effectiveDate: '25. Mai 2018' }, { code: 'FR_CNIL_GUIDE', name: 'CNIL Guide RGPD', fullName: 'Guide pratique RGPD (CNIL Frankreich)', type: 'national_law', expected: 14, description: 'Praktischer DSGVO-Leitfaden der franzoesischen Datenschutzbehoerde CNIL. Wichtig fuer alle Unternehmen mit franzoesischen Kunden.', relevantFor: ['Unternehmen in Frankreich', 'Franzoesischsprachige Maerkte'], keyTopics: ['CNIL-Guidance', 'Cookies', 'Einwilligung', 'Sanktionen'], effectiveDate: '2018' }, { code: 'ES_LOPDGDD', name: 'LOPDGDD Spanien', fullName: 'Ley Organica de Proteccion de Datos (LOPDGDD) Spanien', type: 'national_law', expected: 154, description: 'Spanisches organisches Datenschutzgesetz mit Garantien digitaler Rechte. Umfassende DSGVO-Umsetzung mit digitalen Grundrechten.', relevantFor: ['Unternehmen in Spanien', 'Spanischsprachige Maerkte'], keyTopics: ['Digitale Rechte', 'AEPD', 'Recht auf Vergessenwerden', 'Beschaeftigtendatenschutz'], effectiveDate: '7. Dezember 2018' }, { code: 'IT_CODICE_PRIVACY', name: 'Codice Privacy Italien', fullName: 'Codice in materia di protezione dei dati personali (Italien)', type: 'national_law', expected: 3, description: 'Italienisches Datenschutzgesetzbuch, aktualisiert gemaess DSGVO. Umfassende nationale Regelung durch den Garante.', relevantFor: ['Unternehmen in Italien', 'Garante-regulierte Sektoren'], keyTopics: ['Garante Privacy', 'Codice Privacy', 'Gesundheitsdaten', 'Strafrecht'], effectiveDate: '2018 (aktualisiert)' }, { code: 'IE_DPA_2018', name: 'DPA 2018 Ireland', fullName: 'Data Protection Act 2018 (Ireland)', type: 'national_law', expected: 28, description: 'Irisches Datenschutzgesetz. Besonders relevant da viele Tech-Konzerne (Google, Meta, Apple) ihren EU-Hauptsitz in Irland haben.', relevantFor: ['Tech-Konzerne mit EU-Sitz Irland', 'Irische Unternehmen', 'DPC-reguliert'], keyTopics: ['DPC Ireland', 'Big Tech Aufsicht', 'Nationale Ergaenzung', 'Strafbestimmungen'], effectiveDate: '24. Mai 2018' }, { code: 'UK_DPA_2018', name: 'DPA 2018 UK', fullName: 'Data Protection Act 2018 (United Kingdom)', type: 'national_law', expected: 94, description: 'Britisches Datenschutzgesetz nach dem Brexit. Ergaenzt die UK GDPR mit nationalen Bestimmungen, reguliert durch das ICO.', relevantFor: ['Unternehmen mit UK-Kunden', 'UK-Datentransfers', 'ICO-regulierte Unternehmen'], keyTopics: ['ICO', 'UK Adequacy', 'Post-Brexit Datenschutz', 'Law Enforcement'], effectiveDate: '23. Mai 2018' }, { code: 'UK_GDPR', name: 'UK GDPR', fullName: 'UK General Data Protection Regulation (retained EU law)', type: 'national_law', expected: 24, description: 'In UK-Recht ueberfuehrte DSGVO nach dem Brexit. Weitgehend identisch mit EU-DSGVO, aber unter britischer Aufsicht (ICO).', relevantFor: ['UK-Unternehmen', 'EU-UK Datentransfers', 'Internationale Konzerne'], keyTopics: ['Retained EU Law', 'UK-EU Adequacy', 'ICO Enforcement', 'UK-spezifische Anpassungen'], effectiveDate: '1. Januar 2021' }, { code: 'NO_PERSONOPPLYSNINGSLOVEN', name: 'Personopplysningsloven', fullName: 'Personopplysningsloven (Norwegen)', type: 'national_law', expected: 18, description: 'Norwegisches Datenschutzgesetz als EWR-Umsetzung der DSGVO. Reguliert durch Datatilsynet.', relevantFor: ['Unternehmen in Norwegen', 'EWR-Dienstleister', 'Skandinavische Maerkte'], keyTopics: ['Datatilsynet', 'EWR-Datenschutz', 'Nationale Ergaenzung', 'Kameras'], effectiveDate: '20. Juli 2018' }, { code: 'SE_DATASKYDDSLAG', name: 'Dataskyddslag Schweden', fullName: 'Dataskyddslag (2018:218) Schweden', type: 'national_law', expected: 30, description: 'Schwedisches Datenschutzgesetz als ergaenzende Bestimmungen zur DSGVO. Reguliert durch IMY.', relevantFor: ['Unternehmen in Schweden', 'Skandinavische Maerkte'], keyTopics: ['IMY', 'Personnummer', 'Forschungsdaten', 'Pressefreiheit'], effectiveDate: '25. Mai 2018' }, { code: 'FI_TIETOSUOJALAKI', name: 'Tietosuojalaki Finnland', fullName: 'Tietosuojalaki (1050/2018) Finnland', type: 'national_law', expected: 1, description: 'Finnisches Datenschutzgesetz als nationale Ergaenzung zur DSGVO.', relevantFor: ['Unternehmen in Finnland', 'Nordische Maerkte'], keyTopics: ['Nationale Ergaenzung', 'Tietosuojavaltuutettu', 'Forschungsdaten'], effectiveDate: '1. Januar 2019' }, { code: 'PL_UODO', name: 'UODO Polen', fullName: 'Ustawa o ochronie danych osobowych (Polen)', type: 'national_law', expected: 1, description: 'Polnisches Datenschutzgesetz als DSGVO-Umsetzung. Reguliert durch den UODO (Praesident des Amtes fuer den Schutz personenbezogener Daten).', relevantFor: ['Unternehmen in Polen', 'Osteuropaeische Maerkte'], keyTopics: ['UODO', 'Nationale Ergaenzung', 'Strafbestimmungen', 'Oeffentlicher Sektor'], effectiveDate: '25. Mai 2018' }, { code: 'CZ_ZOU', name: 'Zakon Tschechien', fullName: 'Zakon o zpracovani osobnich udaju (Tschechien)', type: 'national_law', expected: 135, description: 'Tschechisches Datenschutzgesetz zur DSGVO-Umsetzung. Reguliert durch das UOOU.', relevantFor: ['Unternehmen in Tschechien', 'Mitteleuropaeische Maerkte'], keyTopics: ['UOOU', 'Nationale Ergaenzung', 'Kamerasysteme', 'Strafbestimmungen'], effectiveDate: '24. April 2019' }, { code: 'HU_INFOTV', name: 'Infotv. Ungarn', fullName: 'Informacios torvenye (Infotv.) Ungarn', type: 'national_law', expected: 156, description: 'Ungarisches Informationsgesetz ueber Selbstbestimmung und Informationsfreiheit als DSGVO-Ergaenzung. Reguliert durch NAIH.', relevantFor: ['Unternehmen in Ungarn', 'Mitteleuropaeische Maerkte'], keyTopics: ['NAIH', 'Informationsfreiheit', 'Nationale Ergaenzung', 'Datensicherheit'], effectiveDate: '2018 (aktualisiert)' }, { code: 'SCC_FULL_TEXT', name: 'SCC Volltext', fullName: 'Standardvertragsklauseln Volltext (2021/914/EU)', type: 'eu_regulation', expected: 154, description: 'Vollstaendiger Text der EU-Standardvertragsklauseln fuer internationale Datentransfers. Alle Module (C2C, C2P, P2C, P2P) mit Annexen.', relevantFor: ['Alle mit Drittlandtransfers', 'Cloud-Nutzer', 'Auftragsverarbeiter'], keyTopics: ['Module 1-4', 'TIA', 'Annexe', 'Technische Massnahmen'], effectiveDate: '27. Juni 2021' }, { code: 'EDPB_GUIDELINES_2_2019', name: 'EDPB GL Art. 6(1)(b)', fullName: 'EDPB Leitlinien 2/2019 zu Art. 6(1)(b) DSGVO', type: 'eu_guideline', expected: 3, description: 'EDPB-Leitlinien zur Verarbeitung personenbezogener Daten auf Grundlage der Vertragserfullung gemaess Art. 6 Abs. 1 lit. b DSGVO.', relevantFor: ['Alle Verantwortlichen', 'Vertragsdatenverarbeitung', 'Online-Dienste'], keyTopics: ['Vertragserfullung', 'Art. 6(1)(b)', 'Erforderlichkeit', 'Online-Dienste'], effectiveDate: '2019' }, { code: 'EDPB_GUIDELINES_3_2019', name: 'EDPB GL Videoueberwachung', fullName: 'EDPB Leitlinien 3/2019 Videoueberwachung', type: 'eu_guideline', expected: 3, description: 'EDPB-Leitlinien zur Verarbeitung personenbezogener Daten durch Videoueberwachungsgeraete.', relevantFor: ['Videoueberwachung', 'Sicherheitsdienste', 'Einzelhandel', 'Oeffentliche Stellen'], keyTopics: ['Videoueberwachung', 'Kameras', 'Speicherfristen', 'Hinweisschilder'], effectiveDate: '2020' }, { code: 'EDPB_GUIDELINES_5_2020', name: 'EDPB GL Einwilligung', fullName: 'EDPB Leitlinien 5/2020 zur Einwilligung', type: 'eu_guideline', expected: 2, description: 'EDPB-Leitlinien zur Einwilligung gemaess DSGVO. Klaert Anforderungen an gueltige Einwilligungen, Widerruf und Cookie-Consent.', relevantFor: ['Website-Betreiber', 'Marketing', 'App-Entwickler', 'Consent-Management'], keyTopics: ['Einwilligung', 'Cookie-Consent', 'Widerruf', 'Freiwilligkeit'], effectiveDate: '2020' }, { code: 'EDPB_GUIDELINES_7_2020', name: 'EDPB GL Controller/Processor', fullName: 'EDPB Leitlinien 7/2020 Controller und Processor', type: 'eu_guideline', expected: 2, description: 'EDPB-Leitlinien zu den Begriffen Verantwortlicher und Auftragsverarbeiter. Klaert Rollen, Pflichten und Joint Controllership.', relevantFor: ['Alle Verantwortlichen', 'Auftragsverarbeiter', 'Joint Controller'], keyTopics: ['Verantwortlicher', 'Auftragsverarbeiter', 'Joint Controller', 'AVV'], effectiveDate: '2021' }, // ===================================================================== // DACH National Laws — Deutschland // ===================================================================== { code: 'DE_DDG', name: 'Digitale-Dienste-Gesetz', fullName: 'Digitale-Dienste-Gesetz (DDG)', type: 'de_law', expected: 30, description: 'Deutsches Umsetzungsgesetz zum DSA. Regelt Impressumspflicht (§5 DDG), Informationspflichten fuer digitale Dienste und Cookie-Consent.', relevantFor: ['Website-Betreiber', 'Online-Dienste', 'Plattformen'], keyTopics: ['Impressumspflicht §5', 'Informationspflichten', 'Digitale Dienste'], effectiveDate: '14. Mai 2024' }, { code: 'DE_BGB_AGB', name: 'BGB AGB-Recht', fullName: 'BGB §§305-310, 312-312k — AGB und Fernabsatz', type: 'de_law', expected: 40, description: 'Deutsches AGB-Recht: Einbeziehungskontrolle (§305), Inhaltskontrolle (§307), Klauselverbote (§§308-309). Fernabsatz: Widerrufsrecht, Button-Loesung.', relevantFor: ['Alle Unternehmen mit AGB', 'Online-Shops', 'SaaS-Anbieter', 'Dienstleister'], keyTopics: ['AGB-Kontrolle', 'Klauselverbote', 'Widerrufsrecht', 'Button-Loesung', 'Fernabsatz'], effectiveDate: 'Dauerhaft gueltig' }, { code: 'DE_EGBGB', name: 'EGBGB Art. 246-248', fullName: 'EGBGB — Informationspflichten bei Verbrauchervertraegen', type: 'de_law', expected: 20, description: 'Detaillierte Informationspflichten bei Verbrauchervertraegen (Art. 246), Fernabsatz (Art. 246a) und E-Commerce (Art. 246c).', relevantFor: ['Online-Shops', 'E-Commerce', 'Dienstleister', 'App-Anbieter'], keyTopics: ['Vorvertragliche Information', 'Widerrufsbelehrung', 'E-Commerce-Pflichten'], effectiveDate: 'Dauerhaft gueltig' }, { code: 'DE_UWG', name: 'UWG Deutschland', fullName: 'Gesetz gegen den unlauteren Wettbewerb (UWG)', type: 'de_law', expected: 25, description: 'Schutz vor unlauterem Wettbewerb: irrefuehrende Werbung, Spam-Verbot, Preisangaben, Online-Marketing-Regeln.', relevantFor: ['Marketing', 'Vertrieb', 'Online-Shops', 'Werbetreibende'], keyTopics: ['Irrefuehrende Werbung', 'Spam-Verbot', 'Dark Patterns', 'Preisangaben'], effectiveDate: '2004 (laufend aktualisiert)' }, { code: 'DE_HGB_RET', name: 'HGB Aufbewahrung', fullName: 'HGB §§238-261, 257 — Handelsbuecher und Aufbewahrungsfristen', type: 'de_law', expected: 15, description: 'Buchfuehrungspflicht und handelsrechtliche Aufbewahrungsfristen: 6 Jahre (Handelsbriefe) und 10 Jahre (Buchungsbelege, Jahresabschluesse).', relevantFor: ['Alle Kaufleute', 'Kapitalgesellschaften', 'Buchhaltung'], keyTopics: ['Aufbewahrung 6/10 Jahre', 'Buchfuehrungspflicht', 'Elektronische Aufbewahrung'], effectiveDate: 'Dauerhaft gueltig' }, { code: 'DE_AO_RET', name: 'AO Aufbewahrung', fullName: 'Abgabenordnung §§140-148 — Steuerliche Aufbewahrungspflichten', type: 'de_law', expected: 12, description: 'Steuerliche Buchfuehrungs- und Aufbewahrungspflichten. 6/10 Jahre Fristen, Datenzugriff durch Finanzbehoerden (§147 Abs. 6).', relevantFor: ['Alle Steuerpflichtigen', 'Gewerbetreibende', 'Buchhaltung'], keyTopics: ['Steuerliche Aufbewahrung', 'Datenzugriff Finanzamt', 'GoBD'], effectiveDate: 'Dauerhaft gueltig' }, { code: 'DE_TKG', name: 'TKG 2021', fullName: 'Telekommunikationsgesetz 2021', type: 'de_law', expected: 45, description: 'Telekommunikationsregulierung: Kundenschutz, Datenschutz, Vertragslaufzeiten max. 24 Monate, Netzinfrastruktur.', relevantFor: ['Telekommunikationsanbieter', 'VoIP-Dienste', 'ISPs'], keyTopics: ['Kundenschutz', 'Vertragslaufzeiten', 'Fernmeldegeheimnis', 'Netzneutralitaet'], effectiveDate: '1. Dezember 2021' }, { code: 'DE_PANGV', name: 'PAngV', fullName: 'Preisangabenverordnung (PAngV 2022)', type: 'de_law', expected: 15, description: 'Preisangaben: Gesamtpreis, Grundpreis, Streichpreise (§11 — 30-Tage-Regel), Online-Preisauszeichnung.', relevantFor: ['Online-Shops', 'Einzelhandel', 'Marktplaetze'], keyTopics: ['Gesamtpreis', 'Grundpreis', 'Streichpreis-Regel', 'Online-Preise'], effectiveDate: '28. Mai 2022' }, { code: 'DE_DLINFOV', name: 'DL-InfoV', fullName: 'Dienstleistungs-Informationspflichten-Verordnung', type: 'de_law', expected: 10, description: 'Informationspflichten fuer Dienstleister: Identitaet, Kontakt, Berufshaftpflicht, AGB-Zugang.', relevantFor: ['Dienstleister', 'Freiberufler', 'Handwerker'], keyTopics: ['Dienstleister-Impressum', 'Kontaktdaten', 'Berufshaftpflicht'], effectiveDate: '17. Mai 2010' }, { code: 'DE_BETRVG', name: 'BetrVG §87', fullName: 'Betriebsverfassungsgesetz §87 Abs.1 Nr.6', type: 'de_law', expected: 5, description: 'Mitbestimmung des Betriebsrats bei technischer Ueberwachung: IT-Systeme die Arbeitnehmerverhalten ueberwachen koennen.', relevantFor: ['Arbeitgeber mit Betriebsrat', 'IT-Abteilungen', 'HR'], keyTopics: ['Mitbestimmung', 'Technische Ueberwachung', 'IT-Systeme', 'DSFA-Pflicht'], effectiveDate: '1972 (laufend aktualisiert)' }, { code: 'DE_GESCHGEHG', name: 'GeschGehG', fullName: 'Gesetz zum Schutz von Geschaeftsgeheimnissen', type: 'de_law', expected: 10, description: 'Schutz von Geschaeftsgeheimnissen: Definition, angemessene Geheimhaltungsmassnahmen erforderlich, Reverse Engineering erlaubt.', relevantFor: ['Alle Unternehmen', 'IT-Sicherheit', 'F&E-Abteilungen'], keyTopics: ['Geschaeftsgeheimnis-Definition', 'Geheimhaltungsmassnahmen', 'Reverse Engineering'], effectiveDate: '26. April 2019' }, { code: 'DE_BSIG', name: 'BSI-Gesetz', fullName: 'Gesetz ueber das Bundesamt fuer Sicherheit in der Informationstechnik', type: 'de_law', expected: 20, description: 'BSI-Aufgaben, KRITIS-Meldepflichten, IT-Sicherheitsstandards, Zertifizierung, Warn- und Empfehlungsbefugnis.', relevantFor: ['KRITIS-Betreiber', 'IT-Sicherheit', 'Cloud-Anbieter'], keyTopics: ['KRITIS-Meldepflicht', 'IT-Sicherheitsstandards', 'BSI-Zertifizierung'], effectiveDate: '2009 (laufend aktualisiert)' }, { code: 'DE_USTG_RET', name: 'UStG §14b', fullName: 'Umsatzsteuergesetz §14b — Aufbewahrung von Rechnungen', type: 'de_law', expected: 5, description: 'Aufbewahrungspflicht fuer Rechnungen: 10 Jahre, Grundstuecke 20 Jahre, elektronische Aufbewahrung.', relevantFor: ['Alle Unternehmer', 'Buchhaltung', 'Steuerberater'], keyTopics: ['Rechnungsaufbewahrung', '10/20 Jahre Frist', 'Elektronische Rechnungen'], effectiveDate: 'Dauerhaft gueltig' }, // ===================================================================== // DACH National Laws — Oesterreich // ===================================================================== { code: 'AT_ECG', name: 'E-Commerce-Gesetz AT', fullName: 'E-Commerce-Gesetz (ECG) Oesterreich', type: 'at_law', expected: 30, description: 'Oesterreichisches E-Commerce-Gesetz: Impressum/Offenlegungspflicht (§5), Informationspflichten, Haftung von Diensteanbietern.', relevantFor: ['Oesterreichische Online-Dienste', 'E-Commerce AT', 'Website-Betreiber'], keyTopics: ['Impressum §5 ECG', 'Offenlegungspflicht', 'Diensteanbieter-Haftung'], effectiveDate: '1. Januar 2002' }, { code: 'AT_TKG', name: 'TKG 2021 AT', fullName: 'Telekommunikationsgesetz 2021 Oesterreich', type: 'at_law', expected: 40, description: 'Oesterreichisches TKG: Cookie-Bestimmungen (§165), Kommunikationsgeheimnis, Endgeraetezugriff, Spam-Verbot.', relevantFor: ['Oesterreichische Websites', 'Telekommunikation AT', 'App-Anbieter'], keyTopics: ['Cookies §165', 'Kommunikationsgeheimnis', 'Endgeraetezugriff', 'Spam-Verbot'], effectiveDate: '1. November 2021' }, { code: 'AT_KSCHG', name: 'KSchG Oesterreich', fullName: 'Konsumentenschutzgesetz (KSchG) Oesterreich', type: 'at_law', expected: 35, description: 'Konsumentenschutz: AGB-Kontrolle (§6 Klauselverbote, §9 Verbandsklage), Ruecktrittsrecht bei Haustuergeschaeften.', relevantFor: ['Unternehmen mit oesterreichischen Verbrauchern', 'E-Commerce AT'], keyTopics: ['AGB-Klauselverbote §6', 'Verbandsklage §9', 'Ruecktrittsrecht', 'Transparenzkontrolle'], effectiveDate: '1. Oktober 1979 (laufend aktualisiert)' }, { code: 'AT_FAGG', name: 'FAGG Oesterreich', fullName: 'Fern- und Auswaertsgeschaefte-Gesetz (FAGG) Oesterreich', type: 'at_law', expected: 20, description: 'Fernabsatzrecht: Informationspflichten, Widerrufsrecht 14 Tage, Button-Loesung, Ausnahmen.', relevantFor: ['Oesterreichische Online-Shops', 'Fernabsatz AT', 'Versandhandel'], keyTopics: ['Widerrufsrecht 14 Tage', 'Informationspflichten', 'Button-Loesung', 'Kostenfolgen'], effectiveDate: '13. Juni 2014' }, { code: 'AT_UGB_RET', name: 'UGB Aufbewahrung AT', fullName: 'UGB §§189-216, 212 — Rechnungslegung und Aufbewahrung Oesterreich', type: 'at_law', expected: 15, description: 'Oesterreichische Rechnungslegungspflicht und Aufbewahrungsfristen (7 Jahre). Buchfuehrung, Jahresabschluss.', relevantFor: ['Oesterreichische Kapitalgesellschaften', 'Unternehmen >700k EUR Umsatz'], keyTopics: ['Aufbewahrung 7 Jahre', 'Rechnungslegung', 'Buchfuehrung'], effectiveDate: 'Dauerhaft gueltig' }, { code: 'AT_BAO_RET', name: 'BAO §132 AT', fullName: 'Bundesabgabenordnung §132 — Aufbewahrung Oesterreich', type: 'at_law', expected: 5, description: 'Steuerliche Aufbewahrungspflicht 7 Jahre fuer Buecher, Aufzeichnungen und Belege. Grundstuecke 22 Jahre.', relevantFor: ['Oesterreichische Steuerpflichtige', 'Buchhaltung AT'], keyTopics: ['Aufbewahrung 7 Jahre', 'Grundstuecke 22 Jahre', 'Steuerliche Belege'], effectiveDate: 'Dauerhaft gueltig' }, { code: 'AT_MEDIENG', name: 'MedienG §§24-25 AT', fullName: 'Mediengesetz §§24-25 Oesterreich — Impressum und Offenlegung', type: 'at_law', expected: 10, description: 'Impressum/Offenlegungspflicht fuer periodische Medien und Websites in Oesterreich.', relevantFor: ['Medienunternehmen AT', 'Website-Betreiber AT', 'Blogger AT'], keyTopics: ['Impressum', 'Offenlegung', 'Medieninhaber', 'Periodische Medien'], effectiveDate: '1. Januar 1982 (laufend aktualisiert)' }, { code: 'AT_ABGB_AGB', name: 'ABGB AGB-Recht AT', fullName: 'ABGB §§861-879, 864a — AGB-Kontrolle Oesterreich', type: 'at_law', expected: 10, description: 'Geltungskontrolle (§864a — ueberraschende Klauseln), Sittenwidrigkeitskontrolle (§879 Abs.3 — groebliche Benachteiligung).', relevantFor: ['Unternehmen mit oesterreichischen Kunden', 'AGB-Ersteller'], keyTopics: ['Geltungskontrolle §864a', 'Inhaltskontrolle §879', 'Groebliche Benachteiligung'], effectiveDate: '1. Juni 1811 (laufend aktualisiert)' }, { code: 'AT_UWG', name: 'UWG Oesterreich', fullName: 'Bundesgesetz gegen den unlauteren Wettbewerb Oesterreich', type: 'at_law', expected: 15, description: 'Lauterkeitsrecht AT: irrefuehrende Geschaeftspraktiken, aggressive Praktiken, Preisauszeichnung.', relevantFor: ['Marketing AT', 'Vertrieb AT', 'Werbetreibende AT'], keyTopics: ['Irrefuehrung', 'Aggressive Praktiken', 'Preisauszeichnung', 'Unterlassungsklagen'], effectiveDate: '1984 (laufend aktualisiert)' }, // ===================================================================== // DACH National Laws — Schweiz // ===================================================================== { code: 'CH_DSV', name: 'DSV Schweiz', fullName: 'Datenschutzverordnung (DSV) Schweiz — SR 235.11', type: 'ch_law', expected: 30, description: 'Ausfuehrungsverordnung zum revDSG: Meldepflichten, DSFA-Verfahren, Auslandtransfers, technische Massnahmen.', relevantFor: ['Schweizer Unternehmen', 'DACH-Unternehmen', 'Datenexporteure CH'], keyTopics: ['Meldepflicht', 'DSFA-Verfahren', 'Datentransfer', 'Technische Massnahmen'], effectiveDate: '1. September 2023' }, { code: 'CH_OR_AGB', name: 'OR AGB/Aufbewahrung CH', fullName: 'Obligationenrecht — AGB-Kontrolle und Aufbewahrung Schweiz (SR 220)', type: 'ch_law', expected: 20, description: 'Art. 8 OR (AGB-Inhaltskontrolle), Art. 19/20 (Vertragsfreiheit), Art. 957-958f (Buchfuehrung, 10 Jahre Aufbewahrung).', relevantFor: ['Schweizer Unternehmen', 'AGB-Ersteller CH', 'Buchhaltung CH'], keyTopics: ['AGB-Kontrolle Art. 8', 'Aufbewahrung 10 Jahre', 'Buchfuehrungspflicht'], effectiveDate: '1. Januar 2023 (AGB-Revision)' }, { code: 'CH_UWG', name: 'UWG Schweiz', fullName: 'Bundesgesetz gegen den unlauteren Wettbewerb Schweiz (SR 241)', type: 'ch_law', expected: 20, description: 'Lauterkeitsrecht: Impressumspflicht, irrefuehrende Werbung, aggressive Verkaufsmethoden, AGB-Transparenz.', relevantFor: ['Schweizer Unternehmen', 'Marketing CH', 'Online-Shops CH'], keyTopics: ['Impressumspflicht', 'Irrefuehrende Werbung', 'AGB-Transparenz'], effectiveDate: '1. Maerz 1988 (laufend aktualisiert)' }, { code: 'CH_FMG', name: 'FMG Schweiz', fullName: 'Fernmeldegesetz Schweiz (SR 784.10)', type: 'ch_law', expected: 25, description: 'Telekommunikationsregulierung: Fernmeldegeheimnis, Cookies/Tracking (Art. 45c), Spam-Verbot, Datenschutz.', relevantFor: ['Schweizer Websites', 'Telekommunikation CH', 'App-Anbieter CH'], keyTopics: ['Cookies Art. 45c', 'Fernmeldegeheimnis', 'Spam-Verbot', 'Tracking'], effectiveDate: '1. April 2007 (laufend aktualisiert)' }, { code: 'CH_GEBUV', name: 'GeBuV Schweiz', fullName: 'Geschaeftsbuecher-Verordnung Schweiz (SR 221.431)', type: 'ch_law', expected: 10, description: 'Ausfuehrungsvorschriften zur Buchfuehrung: elektronische Aufbewahrung, Integritaet, Datentraeger.', relevantFor: ['Schweizer Unternehmen', 'Buchhaltung CH', 'IT-Archivierung'], keyTopics: ['Elektronische Aufbewahrung', 'Integritaet', 'Unveraenderbarkeit'], effectiveDate: '1. Juni 2002' }, { code: 'CH_ZERTES', name: 'ZertES Schweiz', fullName: 'Bundesgesetz ueber die elektronische Signatur (SR 943.03)', type: 'ch_law', expected: 10, description: 'Elektronische Signatur und Zertifizierung: Qualifizierte Signaturen, Zertifizierungsdiensteanbieter.', relevantFor: ['Vertragsmanagement CH', 'AVV-Erstellung', 'E-Government CH'], keyTopics: ['Qualifizierte Signatur', 'Zertifizierungsdienste', 'Rechtswirkung'], effectiveDate: '1. Januar 2017' }, { code: 'CH_ZGB_PERS', name: 'ZGB Persoenlichkeitsschutz CH', fullName: 'Zivilgesetzbuch Art. 28-28l — Persoenlichkeitsschutz Schweiz (SR 210)', type: 'ch_law', expected: 8, description: 'Persoenlichkeitsschutz: Recht am eigenen Bild, Schutz der Privatsphaere, Gegendarstellungsrecht.', relevantFor: ['Medien CH', 'Social Media', 'Datenschutz CH'], keyTopics: ['Persoenlichkeitsschutz', 'Recht am Bild', 'Gegendarstellung'], effectiveDate: '1. Juli 1985 (laufend aktualisiert)' }, // ===================================================================== // 3 fehlgeschlagene Quellen mit korrigierten URLs // ===================================================================== { code: 'LU_DPA_LAW', name: 'Datenschutzgesetz Luxemburg', fullName: 'Loi du 1er aout 2018 — Datenschutzgesetz Luxemburg', type: 'national_law', expected: 40, description: 'Luxemburgisches Datenschutzgesetz: Organisation der CNPD, nationale DSGVO-Ergaenzung.', relevantFor: ['Unternehmen in Luxemburg', 'EU-Finanzplatz', 'CNPD-reguliert'], keyTopics: ['CNPD', 'Nationale DSGVO-Umsetzung', 'Strafbestimmungen'], effectiveDate: '1. August 2018' }, { code: 'DK_DATABESKYTTELSESLOVEN', name: 'Databeskyttelsesloven DK', fullName: 'Databeskyttelsesloven — Datenschutzgesetz Daenemark', type: 'national_law', expected: 30, description: 'Daenisches Datenschutzgesetz als ergaenzende Bestimmungen zur DSGVO. Reguliert durch Datatilsynet.', relevantFor: ['Unternehmen in Daenemark', 'Skandinavische Maerkte'], keyTopics: ['Datatilsynet', 'Nationale DSGVO-Ergaenzung', 'Strafbestimmungen'], effectiveDate: '25. Mai 2018' }, { code: 'EDPB_GUIDELINES_1_2022', name: 'EDPB GL Bussgelder', fullName: 'EDPB Leitlinien 04/2022 zur Berechnung von Bussgeldern nach der DSGVO', type: 'eu_guideline', expected: 15, description: 'EDPB-Leitlinien zur Berechnung von Verwaltungsbussgeldern unter der DSGVO. Systematik, Schwere, Milderungsgruende.', relevantFor: ['Datenschutzbeauftragte', 'Compliance-Abteilungen', 'Rechtsabteilungen'], keyTopics: ['Bussgeldberechnung', 'Schweregrad', 'Milderungsgruende', 'Bussgeldrahmen'], effectiveDate: '2022' }, // ===================================================================== // Neu ingestierte EU-Richtlinien (Februar 2026) // ===================================================================== { code: 'E_COMMERCE_RL', name: 'E-Commerce-Richtlinie', fullName: 'Richtlinie 2000/31/EG ueber den elektronischen Geschaeftsverkehr', type: 'eu_directive', expected: 30, description: 'EU-Richtlinie ueber den elektronischen Geschaeftsverkehr (E-Commerce). Regelt Herkunftslandprinzip, Informationspflichten, Haftungsprivilegien fuer Vermittler (Mere Conduit, Caching, Hosting).', relevantFor: ['Online-Dienste', 'E-Commerce', 'Hosting-Anbieter', 'Plattformen'], keyTopics: ['Herkunftslandprinzip', 'Haftungsprivileg', 'Informationspflichten', 'Spam-Verbot', 'Vermittlerhaftung'], effectiveDate: '17. Juli 2000' }, { code: 'VERBRAUCHERRECHTE_RL', name: 'Verbraucherrechte-Richtlinie', fullName: 'Richtlinie 2011/83/EU ueber die Rechte der Verbraucher', type: 'eu_directive', expected: 25, description: 'EU-weite Harmonisierung der Verbraucherrechte bei Fernabsatz und aussergeschaeftlichen Vertraegen. 14-Tage-Widerrufsrecht, Informationspflichten, digitale Inhalte.', relevantFor: ['Online-Shops', 'E-Commerce', 'Fernabsatz', 'Dienstleister'], keyTopics: ['Widerrufsrecht 14 Tage', 'Informationspflichten', 'Fernabsatzvertraege', 'Digitale Inhalte'], effectiveDate: '13. Juni 2014' }, { code: 'DIGITALE_INHALTE_RL', name: 'Digitale-Inhalte-Richtlinie', fullName: 'Richtlinie (EU) 2019/770 ueber digitale Inhalte und Dienstleistungen', type: 'eu_directive', expected: 20, description: 'Gewaehrleistungsrecht fuer digitale Inhalte und Dienstleistungen. Regelt Maengelhaftung, Updates, Vertragsmaessigkeit und Kuendigungsrechte bei digitalen Produkten.', relevantFor: ['SaaS-Anbieter', 'App-Entwickler', 'Cloud-Dienste', 'Streaming-Anbieter', 'Software-Hersteller'], keyTopics: ['Digitale Gewaehrleistung', 'Update-Pflicht', 'Vertragsmaessigkeit', 'Kuendigungsrecht', 'Datenportabilitaet'], effectiveDate: '1. Januar 2022' }, { code: 'DMA', name: 'Digital Markets Act', fullName: 'Verordnung (EU) 2022/1925 - Digital Markets Act', type: 'eu_regulation', expected: 50, description: 'Reguliert digitale Gatekeeper-Plattformen. Stellt Verhaltensregeln fuer grosse Plattformen auf (Apple, Google, Meta, Amazon, Microsoft). Verbietet Selbstbevorzugung und erzwingt Interoperabilitaet.', relevantFor: ['Grosse Plattformen', 'App-Stores', 'Suchmaschinen', 'Social Media', 'Messenger-Dienste'], keyTopics: ['Gatekeeper-Pflichten', 'Interoperabilitaet', 'Selbstbevorzugung', 'App-Store-Regeln', 'Datenportabilitaet'], effectiveDate: '2. Mai 2023' }, // === Industrie-Compliance (2026-02-28) === { code: 'MACHINERY_REG', name: 'Maschinenverordnung', fullName: 'Verordnung (EU) 2023/1230 ueber Maschinen (Machinery Regulation)', type: 'eu_regulation', expected: 100, description: 'Loest die alte Maschinenrichtlinie 2006/42/EG ab. Regelt Sicherheitsanforderungen fuer Maschinen und zugehoerige Produkte, CE-Kennzeichnung, Konformitaetsbewertung und Marktaufsicht. Neu: Cybersecurity-Anforderungen fuer vernetzte Maschinen.', relevantFor: ['Maschinenbau', 'Industrie 4.0', 'Automatisierung', 'Hersteller', 'Importeure'], keyTopics: ['CE-Kennzeichnung', 'Konformitaetsbewertung', 'Risikobeurteilung', 'Cybersecurity', 'Betriebsanleitung'], effectiveDate: '20. Januar 2027' }, { code: 'BLUE_GUIDE', name: 'Blue Guide', fullName: 'Leitfaden fuer die Umsetzung der EU-Produktvorschriften (Blue Guide 2022)', type: 'eu_guideline', expected: 200, description: 'Umfassender Leitfaden der EU-Kommission zur Umsetzung von Produktvorschriften. Erklaert CE-Kennzeichnung, Konformitaetsbewertungsverfahren, notifizierte Stellen, Marktaufsicht und den New Legislative Framework.', relevantFor: ['Hersteller', 'Importeure', 'Haendler', 'Notifizierte Stellen', 'Marktaufsichtsbehoerden'], keyTopics: ['CE-Kennzeichnung', 'Konformitaetserklaerung', 'Notifizierte Stellen', 'Marktaufsicht', 'New Legislative Framework'], effectiveDate: '29. Juni 2022' }, { code: 'ENISA_SECURE_BY_DESIGN', name: 'ENISA Secure by Design', fullName: 'ENISA Secure Software Development Best Practices', type: 'eu_guideline', expected: 50, description: 'ENISA-Leitfaden fuer sichere Softwareentwicklung. Beschreibt Best Practices fuer Security by Design, sichere Entwicklungsprozesse und Schwachstellenmanagement.', relevantFor: ['Softwareentwickler', 'DevOps', 'IT-Sicherheit', 'Produktmanagement'], keyTopics: ['Security by Design', 'SDLC', 'Schwachstellenmanagement', 'Secure Coding', 'Threat Modeling'], effectiveDate: '2023' }, { code: 'ENISA_SUPPLY_CHAIN', name: 'ENISA Supply Chain Security', fullName: 'ENISA Threat Landscape for Supply Chain Attacks', type: 'eu_guideline', expected: 50, description: 'ENISA-Analyse der Bedrohungslandschaft fuer Supply-Chain-Angriffe. Beschreibt Angriffsvektoren, Taxonomie und Empfehlungen zur Absicherung von Software-Lieferketten.', relevantFor: ['IT-Sicherheit', 'Beschaffung', 'Softwareentwickler', 'CISO'], keyTopics: ['Supply Chain Security', 'SolarWinds', 'SBOM', 'Lieferantenrisiko', 'Third-Party Risk'], effectiveDate: '2021' }, { code: 'NIST_SSDF', name: 'NIST SSDF', fullName: 'NIST SP 800-218 — Secure Software Development Framework (SSDF)', type: 'international_standard', expected: 40, description: 'NIST-Framework fuer sichere Softwareentwicklung. Definiert Praktiken und Aufgaben in vier Gruppen: Prepare, Protect, Produce, Respond. Weit verbreitet als Referenz fuer Software Supply Chain Security.', relevantFor: ['Softwareentwickler', 'DevSecOps', 'IT-Sicherheit', 'Compliance-Manager'], keyTopics: ['SSDF', 'Secure SDLC', 'Software Supply Chain', 'Vulnerability Management', 'Code Review'], effectiveDate: '3. Februar 2022' }, { code: 'NIST_CSF_2', name: 'NIST CSF 2.0', fullName: 'NIST Cybersecurity Framework (CSF) 2.0', type: 'international_standard', expected: 50, description: 'Version 2.0 des NIST Cybersecurity Framework. Neue Kernfunktion "Govern" ergaenzt Identify, Protect, Detect, Respond, Recover. Erweitert den Anwendungsbereich ueber kritische Infrastruktur hinaus auf alle Organisationen.', relevantFor: ['CISO', 'IT-Sicherheit', 'Risikomanagement', 'Geschaeftsfuehrung', 'Alle Branchen'], keyTopics: ['Govern', 'Identify', 'Protect', 'Detect', 'Respond', 'Recover', 'Cybersecurity'], effectiveDate: '26. Februar 2024' }, { code: 'OECD_AI_PRINCIPLES', name: 'OECD AI Principles', fullName: 'OECD Recommendation on Artificial Intelligence (AI Principles)', type: 'international_standard', expected: 20, description: 'OECD-Empfehlung zu Kuenstlicher Intelligenz. Definiert fuenf Prinzipien fuer verantwortungsvolle KI: Inklusives Wachstum, Menschenzentrierte Werte, Transparenz, Robustheit und Rechenschaftspflicht. Von 46 Laendern angenommen.', relevantFor: ['KI-Entwickler', 'Policy-Maker', 'Ethik-Kommissionen', 'Geschaeftsfuehrung'], keyTopics: ['AI Ethics', 'Transparenz', 'Accountability', 'Trustworthy AI', 'Human-Centered AI'], effectiveDate: '22. Mai 2019' }, { code: 'EU_IFRS', name: 'EU-IFRS', fullName: 'Verordnung (EU) 2023/1803 — International Financial Reporting Standards', type: 'eu_regulation', expected: 500, description: 'Konsolidierte Fassung der von der EU uebernommenen IFRS/IAS/IFRIC/SIC. Rechtsverbindlich fuer boersennotierte EU-Unternehmen. Enthalt IFRS 1-17, IAS 1-41, IFRIC 1-23 und SIC 7-32 in der EU-endorsed Fassung (Stand Okt 2023). ACHTUNG: Neuere IASB-Standards sind moeglicherweise noch nicht EU-endorsed.', relevantFor: ['Rechnungswesen', 'Wirtschaftspruefer', 'boersennotierte Unternehmen', 'Finanzberichterstattung', 'CFO'], keyTopics: ['IFRS 16 Leasing', 'IFRS 9 Finanzinstrumente', 'IAS 1 Darstellung', 'IFRS 15 Erloese', 'IFRS 17 Versicherungsvertraege', 'Konsolidierung'], effectiveDate: '16. Oktober 2023' }, { code: 'EFRAG_ENDORSEMENT', name: 'EFRAG Endorsement Status', fullName: 'EFRAG EU Endorsement Status Report (Dezember 2025)', type: 'eu_guideline', expected: 30, description: 'Uebersicht des European Financial Reporting Advisory Group (EFRAG) ueber den EU-Endorsement-Stand aller IFRS/IAS-Standards. Zeigt welche Standards von der EU uebernommen wurden und welche noch ausstehend sind. Relevant fuer internationale Ausschreibungen und Compliance-Pruefung.', relevantFor: ['Rechnungswesen', 'Wirtschaftspruefer', 'Compliance Officer', 'internationale Ausschreibungen'], keyTopics: ['EU Endorsement', 'IFRS 18', 'IFRS S1/S2 Sustainability', 'Endorsement Status', 'IASB Updates'], effectiveDate: '18. Dezember 2025' }, ] // Source URLs for original documents (click to view original) const REGULATION_SOURCES: Record = { // EU Verordnungen/Richtlinien (EUR-Lex) GDPR: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32016R0679', EPRIVACY: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32002L0058', SCC: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32021D0914', DPF: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32023D1795', AIACT: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32024R1689', CRA: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32024R2847', NIS2: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32022L2555', EUCSA: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32019R0881', DATAACT: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32023R2854', DGA: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32022R0868', DSA: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32022R2065', EAA: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32019L0882', DSM: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32019L0790', PLD: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32024L2853', GPSR: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32023R0988', DORA: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32022R2554', PSD2: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32015L2366', AMLR: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32024R1624', MiCA: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32023R1114', EHDS: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32025R0327', SCC_FULL_TEXT: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32021D0914', E_COMMERCE_RL: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32000L0031', VERBRAUCHERRECHTE_RL: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32011L0083', DIGITALE_INHALTE_RL: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32019L0770', DMA: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32022R1925', MACHINERY_REG: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32023R1230', BLUE_GUIDE: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:52022XC0629(04)', EU_IFRS: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32023R1803', // EDPB Guidelines EDPB_GUIDELINES_2_2019: 'https://www.edpb.europa.eu/our-work-tools/our-documents/guidelines/guidelines-22019-processing-personal-data-under-article-61b_en', EDPB_GUIDELINES_3_2019: 'https://www.edpb.europa.eu/our-work-tools/our-documents/guidelines/guidelines-32019-processing-personal-data-through-video_en', EDPB_GUIDELINES_5_2020: 'https://www.edpb.europa.eu/our-work-tools/our-documents/guidelines/guidelines-052020-consent-under-regulation-2016679_en', EDPB_GUIDELINES_7_2020: 'https://www.edpb.europa.eu/our-work-tools/our-documents/guidelines/guidelines-072020-concepts-controller-and-processor-gdpr_en', EDPB_GUIDELINES_1_2022: 'https://www.edpb.europa.eu/our-work-tools/our-documents/guidelines/guidelines-042022-calculation-administrative-fines-under-gdpr_en', // BSI Technische Richtlinien 'BSI-TR-03161-1': 'https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03161/BSI-TR-03161-1.html', 'BSI-TR-03161-2': 'https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03161/BSI-TR-03161-2.html', 'BSI-TR-03161-3': 'https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03161/BSI-TR-03161-3.html', // Nationale Datenschutzgesetze AT_DSG: 'https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10001597', BDSG_FULL: 'https://www.gesetze-im-internet.de/bdsg_2018/', CH_DSG: 'https://www.fedlex.admin.ch/eli/cc/2022/491/de', LI_DSG: 'https://www.gesetze.li/konso/2018.272', BE_DPA_LAW: 'https://www.autoriteprotectiondonnees.be/citoyen/la-loi-du-30-juillet-2018', NL_UAVG: 'https://wetten.overheid.nl/BWBR0040940/', FR_CNIL_GUIDE: 'https://www.cnil.fr/fr/rgpd-par-ou-commencer', ES_LOPDGDD: 'https://www.boe.es/buscar/act.php?id=BOE-A-2018-16673', IT_CODICE_PRIVACY: 'https://www.garanteprivacy.it/home/docweb/-/docweb-display/docweb/9042678', IE_DPA_2018: 'https://www.irishstatutebook.ie/eli/2018/act/7/enacted/en/html', UK_DPA_2018: 'https://www.legislation.gov.uk/ukpga/2018/12/contents', UK_GDPR: 'https://www.legislation.gov.uk/eur/2016/679/contents', NO_PERSONOPPLYSNINGSLOVEN: 'https://lovdata.no/dokument/NL/lov/2018-06-15-38', SE_DATASKYDDSLAG: 'https://www.riksdagen.se/sv/dokument-och-lagar/dokument/svensk-forfattningssamling/lag-2018218-med-kompletterande-bestammelser_sfs-2018-218/', FI_TIETOSUOJALAKI: 'https://www.finlex.fi/fi/laki/ajantasa/2018/20181050', PL_UODO: 'https://isap.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=WDU20180001000', CZ_ZOU: 'https://www.zakonyprolidi.cz/cs/2019-110', HU_INFOTV: 'https://net.jogtar.hu/jogszabaly?docid=a1100112.tv', LU_DPA_LAW: 'https://legilux.public.lu/eli/etat/leg/loi/2018/08/01/a686/jo', DK_DATABESKYTTELSESLOVEN: 'https://www.retsinformation.dk/eli/lta/2018/502', // Deutschland — Weitere Gesetze TDDDG: 'https://www.gesetze-im-internet.de/tdddg/', DE_DDG: 'https://www.gesetze-im-internet.de/ddg/', DE_BGB_AGB: 'https://www.gesetze-im-internet.de/bgb/__305.html', DE_EGBGB: 'https://www.gesetze-im-internet.de/bgbeg/art_246.html', DE_UWG: 'https://www.gesetze-im-internet.de/uwg_2004/', DE_HGB_RET: 'https://www.gesetze-im-internet.de/hgb/__257.html', DE_AO_RET: 'https://www.gesetze-im-internet.de/ao_1977/__147.html', DE_TKG: 'https://www.gesetze-im-internet.de/tkg_2021/', DE_PANGV: 'https://www.gesetze-im-internet.de/pangv_2022/', DE_DLINFOV: 'https://www.gesetze-im-internet.de/dlinfov/', DE_BETRVG: 'https://www.gesetze-im-internet.de/betrvg/__87.html', DE_GESCHGEHG: 'https://www.gesetze-im-internet.de/geschgehg/', DE_BSIG: 'https://www.gesetze-im-internet.de/bsig_2009/', DE_USTG_RET: 'https://www.gesetze-im-internet.de/ustg_1980/__14b.html', // Oesterreich — Weitere Gesetze AT_ECG: 'https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=20001703', AT_TKG: 'https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=20007898', AT_KSCHG: 'https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10002462', AT_FAGG: 'https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=20008783', AT_UGB_RET: 'https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10001702', AT_BAO_RET: 'https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10003940', AT_MEDIENG: 'https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10000719', AT_ABGB_AGB: 'https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10001622', AT_UWG: 'https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10002665', // Schweiz CH_DSV: 'https://www.fedlex.admin.ch/eli/cc/2022/568/de', CH_OR_AGB: 'https://www.fedlex.admin.ch/eli/cc/27/317_321_377/de', CH_UWG: 'https://www.fedlex.admin.ch/eli/cc/1988/223_223_223/de', CH_FMG: 'https://www.fedlex.admin.ch/eli/cc/1997/2187_2187_2187/de', CH_GEBUV: 'https://www.fedlex.admin.ch/eli/cc/2002/249/de', CH_ZERTES: 'https://www.fedlex.admin.ch/eli/cc/2016/752/de', CH_ZGB_PERS: 'https://www.fedlex.admin.ch/eli/cc/24/233_245_233/de', // Industrie-Compliance ENISA_SECURE_BY_DESIGN: 'https://www.enisa.europa.eu/publications/secure-development-best-practices', ENISA_SUPPLY_CHAIN: 'https://www.enisa.europa.eu/publications/threat-landscape-for-supply-chain-attacks', NIST_SSDF: 'https://csrc.nist.gov/pubs/sp/800/218/final', NIST_CSF_2: 'https://www.nist.gov/cyberframework', OECD_AI_PRINCIPLES: 'https://legalinstruments.oecd.org/en/instruments/OECD-LEGAL-0449', // IFRS / EFRAG EU_IFRS_DE: 'https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32023R1803', EU_IFRS_EN: 'https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32023R1803', EFRAG_ENDORSEMENT: 'https://www.efrag.org/activities/endorsement-status-report', // Full-text Datenschutzgesetz AT AT_DSG_FULL: 'https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=10001597', } // License info for each regulation const REGULATION_LICENSES: Record = { GDPR: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk der EU — frei verwendbar' }, EPRIVACY: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Richtlinie — amtliches Werk' }, TDDDG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Deutsches Bundesgesetz — amtliches Werk (§5 UrhG)' }, SCC: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Durchfuehrungsbeschluss — amtliches Werk' }, DPF: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Angemessenheitsbeschluss — amtliches Werk' }, AIACT: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Verordnung — amtliches Werk' }, CRA: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Verordnung — amtliches Werk' }, NIS2: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Richtlinie — amtliches Werk' }, EUCSA: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Verordnung — amtliches Werk' }, DATAACT: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Verordnung — amtliches Werk' }, DGA: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Verordnung — amtliches Werk' }, DSA: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Verordnung — amtliches Werk' }, EAA: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Richtlinie — amtliches Werk' }, DSM: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Richtlinie — amtliches Werk' }, PLD: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Richtlinie — amtliches Werk' }, GPSR: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Verordnung — amtliches Werk' }, 'BSI-TR-03161-1': { license: 'DL-DE-BY-2.0', licenseNote: 'Datenlizenz Deutschland — Namensnennung 2.0' }, 'BSI-TR-03161-2': { license: 'DL-DE-BY-2.0', licenseNote: 'Datenlizenz Deutschland — Namensnennung 2.0' }, 'BSI-TR-03161-3': { license: 'DL-DE-BY-2.0', licenseNote: 'Datenlizenz Deutschland — Namensnennung 2.0' }, DORA: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Verordnung — amtliches Werk' }, PSD2: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Richtlinie — amtliches Werk' }, AMLR: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Verordnung — amtliches Werk' }, MiCA: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Verordnung — amtliches Werk' }, EHDS: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Verordnung — amtliches Werk' }, // National Data Protection Laws AT_DSG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Oesterreich — frei verwendbar' }, BDSG_FULL: { license: 'PUBLIC_DOMAIN', licenseNote: 'Deutsches Bundesgesetz — amtliches Werk (§5 UrhG)' }, CH_DSG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Schweiz — frei verwendbar' }, LI_DSG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Liechtenstein — frei verwendbar' }, BE_DPA_LAW: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Belgien — frei verwendbar' }, NL_UAVG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Niederlande — frei verwendbar' }, FR_CNIL_GUIDE: { license: 'PUBLIC_DOMAIN', licenseNote: 'CNIL — oeffentliches Dokument' }, ES_LOPDGDD: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Spanien (BOE) — frei verwendbar' }, IT_CODICE_PRIVACY: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Italien — frei verwendbar' }, IE_DPA_2018: { license: 'OGL-3.0', licenseNote: 'Open Government Licence v3.0 — Ireland' }, UK_DPA_2018: { license: 'OGL-3.0', licenseNote: 'Open Government Licence v3.0 — UK' }, UK_GDPR: { license: 'OGL-3.0', licenseNote: 'Open Government Licence v3.0 — UK' }, NO_PERSONOPPLYSNINGSLOVEN: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Norwegen — frei verwendbar' }, SE_DATASKYDDSLAG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Schweden — frei verwendbar' }, FI_TIETOSUOJALAKI: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Finnland — frei verwendbar' }, PL_UODO: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Polen — frei verwendbar' }, CZ_ZOU: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Tschechien — frei verwendbar' }, HU_INFOTV: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Ungarn — frei verwendbar' }, SCC_FULL_TEXT: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Durchfuehrungsbeschluss — amtliches Werk' }, EDPB_GUIDELINES_2_2019: { license: 'EDPB-LICENSE', licenseNote: 'EDPB Document License' }, EDPB_GUIDELINES_3_2019: { license: 'EDPB-LICENSE', licenseNote: 'EDPB Document License' }, EDPB_GUIDELINES_5_2020: { license: 'EDPB-LICENSE', licenseNote: 'EDPB Document License' }, EDPB_GUIDELINES_7_2020: { license: 'EDPB-LICENSE', licenseNote: 'EDPB Document License' }, // Industrie-Compliance (2026-02-28) MACHINERY_REG: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Verordnung — amtliches Werk' }, BLUE_GUIDE: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Leitfaden — amtliches Werk der Kommission' }, ENISA_SECURE_BY_DESIGN: { license: 'CC-BY-4.0', licenseNote: 'ENISA Publication — CC BY 4.0' }, ENISA_SUPPLY_CHAIN: { license: 'CC-BY-4.0', licenseNote: 'ENISA Publication — CC BY 4.0' }, NIST_SSDF: { license: 'PUBLIC_DOMAIN', licenseNote: 'US Government Work — Public Domain' }, NIST_CSF_2: { license: 'PUBLIC_DOMAIN', licenseNote: 'US Government Work — Public Domain' }, OECD_AI_PRINCIPLES: { license: 'PUBLIC_DOMAIN', licenseNote: 'OECD Legal Instrument — Reuse Notice' }, // EU-IFRS / EFRAG (2026-02-28) EU_IFRS_DE: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Verordnung — amtliches Werk' }, EU_IFRS_EN: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Verordnung — amtliches Werk' }, EFRAG_ENDORSEMENT: { license: 'PUBLIC_DOMAIN', licenseNote: 'EFRAG — oeffentliches Dokument' }, // DACH National Laws — Deutschland DE_DDG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Deutsches Bundesgesetz — amtliches Werk (§5 UrhG)' }, DE_BGB_AGB: { license: 'PUBLIC_DOMAIN', licenseNote: 'Deutsches Bundesgesetz — amtliches Werk (§5 UrhG)' }, DE_EGBGB: { license: 'PUBLIC_DOMAIN', licenseNote: 'Deutsches Bundesgesetz — amtliches Werk (§5 UrhG)' }, DE_UWG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Deutsches Bundesgesetz — amtliches Werk (§5 UrhG)' }, DE_HGB_RET: { license: 'PUBLIC_DOMAIN', licenseNote: 'Deutsches Bundesgesetz — amtliches Werk (§5 UrhG)' }, DE_AO_RET: { license: 'PUBLIC_DOMAIN', licenseNote: 'Deutsches Bundesgesetz — amtliches Werk (§5 UrhG)' }, DE_TKG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Deutsches Bundesgesetz — amtliches Werk (§5 UrhG)' }, DE_PANGV: { license: 'PUBLIC_DOMAIN', licenseNote: 'Deutsche Verordnung — amtliches Werk (§5 UrhG)' }, DE_DLINFOV: { license: 'PUBLIC_DOMAIN', licenseNote: 'Deutsche Verordnung — amtliches Werk (§5 UrhG)' }, DE_BETRVG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Deutsches Bundesgesetz — amtliches Werk (§5 UrhG)' }, DE_GESCHGEHG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Deutsches Bundesgesetz — amtliches Werk (§5 UrhG)' }, DE_BSIG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Deutsches Bundesgesetz — amtliches Werk (§5 UrhG)' }, DE_USTG_RET: { license: 'PUBLIC_DOMAIN', licenseNote: 'Deutsches Bundesgesetz — amtliches Werk (§5 UrhG)' }, // DACH National Laws — Oesterreich AT_ECG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Oesterreich — frei verwendbar' }, AT_TKG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Oesterreich — frei verwendbar' }, AT_KSCHG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Oesterreich — frei verwendbar' }, AT_FAGG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Oesterreich — frei verwendbar' }, AT_UGB_RET: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Oesterreich — frei verwendbar' }, AT_BAO_RET: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Oesterreich — frei verwendbar' }, AT_MEDIENG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Oesterreich — frei verwendbar' }, AT_ABGB_AGB: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Oesterreich — frei verwendbar' }, AT_UWG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Oesterreich — frei verwendbar' }, // DACH National Laws — Schweiz CH_DSV: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Schweiz — frei verwendbar' }, CH_OR_AGB: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Schweiz — frei verwendbar' }, CH_UWG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Schweiz — frei verwendbar' }, CH_FMG: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Schweiz — frei verwendbar' }, CH_GEBUV: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Schweiz — frei verwendbar' }, CH_ZERTES: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Schweiz — frei verwendbar' }, CH_ZGB_PERS: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Schweiz — frei verwendbar' }, // 3 fehlgeschlagene Quellen (korrigiert) LU_DPA_LAW: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Luxemburg — frei verwendbar' }, DK_DATABESKYTTELSESLOVEN: { license: 'PUBLIC_DOMAIN', licenseNote: 'Amtliches Werk Daenemark — frei verwendbar' }, EDPB_GUIDELINES_1_2022: { license: 'EDPB-LICENSE', licenseNote: 'EDPB Document License' }, // Neue EU-Richtlinien (Februar 2026 ingestiert) E_COMMERCE_RL: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Richtlinie — amtliches Werk' }, VERBRAUCHERRECHTE_RL: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Richtlinie — amtliches Werk' }, DIGITALE_INHALTE_RL: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Richtlinie — amtliches Werk' }, DMA: { license: 'PUBLIC_DOMAIN', licenseNote: 'EU-Verordnung — amtliches Werk' }, } // REGULATIONS_IN_RAG is imported from ./rag-constants.ts // Helper: Check if regulation is in RAG const isInRag = (code: string): boolean => code in REGULATIONS_IN_RAG // Helper: Get known chunk count for a regulation const getKnownChunks = (code: string): number => REGULATIONS_IN_RAG[code]?.chunks || 0 // Known collection totals (updated: 2026-03-12) // Note: bp_compliance_datenschutz expanded via edpb-crawler.py (55 EDPB/WP29/EDPS documents). // bp_dsfa_corpus expanded with 20 DSFA Muss-Listen (BfDI + DSK + 16 Bundeslaender). // bp_compliance_gesetze: +5263 Chunks durch Phase H Verbraucherschutz (Run #701, inkl. BDSG/DDG/TKG/HGB/AO Duplikate) const COLLECTION_TOTALS = { bp_compliance_gesetze: 63567, // 58304 + 5263 (Phase H) bp_compliance_ce: 18183, bp_legal_templates: 7689, bp_compliance_datenschutz: 17459, bp_dsfa_corpus: 8666, bp_compliance_recht: 1425, bp_nibis_eh: 7996, total_legal: 81750, // gesetze + ce total_all: 124985, } // License display labels const LICENSE_LABELS: Record = { PUBLIC_DOMAIN: 'Public Domain', 'DL-DE-BY-2.0': 'DL-DE-BY 2.0', 'CC-BY-4.0': 'CC BY 4.0', 'EDPB-LICENSE': 'EDPB License', 'OGL-3.0': 'OGL v3.0', PROPRIETARY: 'Proprietaer', } const TYPE_COLORS: Record = { eu_regulation: 'bg-blue-100 text-blue-700', eu_directive: 'bg-purple-100 text-purple-700', de_law: 'bg-yellow-100 text-yellow-700', at_law: 'bg-red-100 text-red-700', ch_law: 'bg-rose-100 text-rose-700', bsi_standard: 'bg-green-100 text-green-700', national_law: 'bg-orange-100 text-orange-700', eu_guideline: 'bg-teal-100 text-teal-700', } const TYPE_LABELS: Record = { eu_regulation: 'EU-VO', eu_directive: 'EU-RL', de_law: 'DE-Gesetz', at_law: 'AT-Gesetz', ch_law: 'CH-Gesetz', bsi_standard: 'BSI', national_law: 'Nat. Gesetz', eu_guideline: 'EDPB-GL', } // Industry/Sector definitions for the regulation map const INDUSTRIES = [ { id: 'all', name: 'Alle Unternehmen', icon: '🏢', description: 'Grundlegende Anforderungen fuer alle' }, { id: 'health', name: 'Gesundheitswesen', icon: '🏥', description: 'Krankenhaeuser, DiGA, Medizintechnik' }, { id: 'finance', name: 'Finanzsektor', icon: '🏦', description: 'Banken, Versicherungen, Zahlungsdienstleister' }, { id: 'ecommerce', name: 'E-Commerce', icon: '🛒', description: 'Online-Shops, Marktplaetze' }, { id: 'tech', name: 'Technologie/Software', icon: '💻', description: 'Software-Entwickler, SaaS, Cloud' }, { id: 'iot', name: 'IoT/Hardware', icon: '📱', description: 'Geraetehersteller, Smart Devices' }, { id: 'ai', name: 'KI-Anbieter', icon: '🤖', description: 'KI-Entwickler und -Anwender' }, { id: 'kritis', name: 'Kritische Infrastruktur', icon: '⚡', description: 'Energie, Wasser, Transport' }, { id: 'media', name: 'Medien/Plattformen', icon: '📺', description: 'Social Media, Content-Plattformen' }, { id: 'public', name: 'Oeffentlicher Sektor', icon: '🏛️', description: 'Behoerden, Verwaltung' }, ] // Mapping: Which regulations apply to which industries const INDUSTRY_REGULATION_MAP: Record = { all: ['GDPR', 'EPRIVACY', 'TDDDG'], health: ['GDPR', 'TDDDG', 'BSI-TR-03161-1', 'BSI-TR-03161-2', 'BSI-TR-03161-3', 'NIS2', 'AIACT', 'PLD', 'EHDS'], finance: ['GDPR', 'TDDDG', 'NIS2', 'EUCSA', 'DSA', 'AIACT', 'DPF', 'DORA', 'PSD2', 'AMLR', 'MiCA'], ecommerce: ['GDPR', 'TDDDG', 'DSA', 'GPSR', 'EAA', 'PLD', 'DPF', 'PSD2', 'DE_PANGV', 'DE_VSBG', 'DE_PRODHAFTG', 'DE_VERPACKG', 'DE_ELEKTROG', 'DE_BFSG', 'DE_UWG', 'E_COMMERCE_RL', 'VERBRAUCHERRECHTE_RL', 'WARENKAUF_RL', 'KLAUSEL_RL', 'UNLAUTERE_PRAKTIKEN_RL', 'PREISANGABEN_RL', 'OMNIBUS_RL', 'DIGITALE_INHALTE_RL'], tech: ['GDPR', 'TDDDG', 'CRA', 'AIACT', 'DPF', 'SCC', 'DATAACT', 'DSM', 'MiCA'], iot: ['GDPR', 'CRA', 'GPSR', 'PLD', 'DATAACT', 'AIACT'], ai: ['GDPR', 'AIACT', 'PLD', 'DSM', 'DATAACT'], kritis: ['GDPR', 'NIS2', 'EUCSA', 'CRA', 'AIACT', 'DORA'], media: ['GDPR', 'TDDDG', 'DSA', 'DSM', 'EAA', 'AIACT'], public: ['GDPR', 'NIS2', 'EUCSA', 'EAA', 'DGA', 'AIACT', 'EHDS'], } // Thematic groupings showing overlaps const THEMATIC_GROUPS = [ { id: 'datenschutz', name: 'Datenschutz & Privacy', color: 'bg-blue-500', regulations: ['GDPR', 'EPRIVACY', 'TDDDG', 'SCC', 'DPF'], description: 'Schutz personenbezogener Daten, Einwilligung, Betroffenenrechte' }, { id: 'cybersecurity', name: 'Cybersicherheit', color: 'bg-red-500', regulations: ['NIS2', 'EUCSA', 'CRA', 'BSI-TR-03161-1', 'BSI-TR-03161-2', 'BSI-TR-03161-3', 'DORA'], description: 'IT-Sicherheit, Risikomanagement, Incident Response' }, { id: 'ai', name: 'Kuenstliche Intelligenz', color: 'bg-purple-500', regulations: ['AIACT', 'PLD', 'GPSR'], description: 'KI-Regulierung, Hochrisiko-Systeme, Haftung' }, { id: 'digital-markets', name: 'Digitale Maerkte & Plattformen', color: 'bg-green-500', regulations: ['DSA', 'DGA', 'DATAACT', 'DSM'], description: 'Plattformregulierung, Datenzugang, Urheberrecht' }, { id: 'product-safety', name: 'Produktsicherheit & Haftung', color: 'bg-orange-500', regulations: ['CRA', 'PLD', 'GPSR', 'EAA'], description: 'Sicherheitsanforderungen, CE-Kennzeichnung, Barrierefreiheit' }, { id: 'finance', name: 'Finanzmarktregulierung', color: 'bg-emerald-500', regulations: ['DORA', 'PSD2', 'AMLR', 'MiCA'], description: 'Zahlungsdienste, Krypto-Assets, Geldwaeschebekaempfung, digitale Resilienz' }, { id: 'health', name: 'Gesundheitsdaten', color: 'bg-pink-500', regulations: ['EHDS', 'BSI-TR-03161-1', 'BSI-TR-03161-2', 'BSI-TR-03161-3'], description: 'Gesundheitsdatenraum, DiGA-Sicherheit, Patientenrechte' }, { id: 'verbraucherschutz', name: 'Verbraucherschutz & E-Commerce', color: 'bg-amber-500', regulations: ['DE_PANGV', 'DE_VSBG', 'DE_PRODHAFTG', 'DE_UWG', 'DE_BFSG', 'WARENKAUF_RL', 'KLAUSEL_RL', 'UNLAUTERE_PRAKTIKEN_RL', 'PREISANGABEN_RL', 'OMNIBUS_RL', 'E_COMMERCE_RL', 'VERBRAUCHERRECHTE_RL', 'DIGITALE_INHALTE_RL'], description: 'Widerrufsrecht, Preisangaben, Fernabsatz, AGB-Recht, Barrierefreiheit' }, ] // Key overlaps and intersections const KEY_INTERSECTIONS = [ { regulations: ['GDPR', 'AIACT'], topic: 'KI und personenbezogene Daten', description: 'Automatisierte Entscheidungen, Profiling, Erklaerbarkeit' }, { regulations: ['NIS2', 'CRA'], topic: 'Cybersicherheit von Produkten', description: 'Sicherheitsanforderungen ueber den gesamten Lebenszyklus' }, { regulations: ['AIACT', 'PLD'], topic: 'KI-Haftung', description: 'Wer haftet, wenn KI Schaeden verursacht?' }, { regulations: ['DSA', 'GDPR'], topic: 'Plattform-Transparenz', description: 'Inhaltsmoderation und Datenschutz' }, { regulations: ['DATAACT', 'GDPR'], topic: 'Datenzugang vs. Datenschutz', description: 'Balance zwischen Datenteilung und Privacy' }, { regulations: ['CRA', 'GPSR'], topic: 'Digitale Produktsicherheit', description: 'Hardware mit Software-Komponenten' }, ] // Future outlook - proposed and discussed regulations const FUTURE_OUTLOOK = [ { id: 'digital-omnibus', name: 'EU Digital Omnibus', status: 'proposed', statusLabel: 'Vorgeschlagen Nov 2025', expectedDate: '2026/2027', description: 'Umfassendes Vereinfachungspaket fuer AI Act, DSGVO und Cybersicherheit. Ziel: 5 Mrd. EUR Einsparung bei Verwaltungskosten.', keyChanges: [ 'AI Act: Verschiebung Hochrisiko-Pflichten um bis zu 16 Monate (bis Dez 2027)', 'AI Act: Vereinfachte Dokumentation fuer KMU und Small Midcaps', 'AI Act: EU-weite regulatorische Sandbox fuer KI-Tests', 'DSGVO: Cookie-Banner-Reform - Berechtigtes Interesse statt nur Einwilligung', 'DSGVO: Automatische Privacy-Signale via Browser statt Pop-ups', 'Cybersecurity: Single Entry Point fuer Meldepflichten' ], affectedRegulations: ['AIACT', 'GDPR', 'NIS2', 'CRA', 'EUCSA'], source: 'https://digital-strategy.ec.europa.eu/en/library/digital-omnibus-ai-regulation-proposal' }, { id: 'sustainability-omnibus', name: 'EU Nachhaltigkeits-Omnibus', status: 'agreed', statusLabel: 'Einigung Dez 2025', expectedDate: 'Q1 2026', description: 'Drastische Reduzierung der Nachhaltigkeits-Berichtspflichten. Anwendungsbereich wird stark eingeschraenkt.', keyChanges: [ 'CSRD: Nur noch Unternehmen >1.000 MA und >450 Mio EUR Umsatz berichtspflichtig', 'CSRD: Betroffene Unternehmen sinken von 50.000 auf ca. 5.000 in der EU', 'CSRD: Verschiebung Welle 2+3 um 2 Jahre (auf Geschaeftsjahr 2027)', 'CSDDD: Nur noch Unternehmen >5.000 MA und >1,5 Mrd EUR Umsatz', 'CSDDD: Sorgfaltspflichten nur noch fuer Tier-1-Lieferanten', 'CSDDD: Pruefung nur noch alle 5 Jahre statt jaehrlich' ], affectedRegulations: ['CSRD', 'CSDDD', 'EU-Taxonomie'], source: 'https://kpmg-law.de/erste-omnibus-verordnung-soll-die-pflichten-der-csddd-csrd-und-eu-taxonomie-lockern/' }, { id: 'eprivacy-withdrawal', name: 'ePrivacy-Verordnung', status: 'withdrawn', statusLabel: 'Zurueckgezogen Feb 2025', expectedDate: 'Unbekannt', description: 'Nach 9 Jahren Verhandlung hat die EU-Kommission den Vorschlag zurueckgezogen. Die ePrivacy-Richtlinie bleibt in Kraft, Cookie-Reform kommt via DSGVO/Digital Omnibus.', keyChanges: [ 'Urspruenglicher Vorschlag: Einheitliche EU-Cookie-Regeln', 'Urspruenglicher Vorschlag: Strikte Tracking-Einwilligung', 'Status: ePrivacy-Richtlinie + TDDDG bleiben gueltig', 'Zukunft: Cookie-Reform wird Teil der DSGVO-Aenderungen' ], affectedRegulations: ['EPRIVACY', 'TDDDG', 'GDPR'], source: 'https://netzpolitik.org/2025/cookie-banner-und-online-tracking-eu-kommission-beerdigt-plaene-fuer-eprivacy-verordnung/' }, { id: 'ai-liability', name: 'KI-Haftungsrichtlinie', status: 'pending', statusLabel: 'In Verhandlung', expectedDate: '2026', description: 'Ergaenzt den AI Act um zivilrechtliche Haftungsregeln. Erleichtert Geschaedigten die Beweisfuehrung bei KI-Schaeden.', keyChanges: [ 'Beweislasterleichterung bei KI-verursachten Schaeden', 'Offenlegungspflichten fuer KI-Anbieter im Schadensfall', 'Verknuepfung mit Produkthaftungsrichtlinie' ], affectedRegulations: ['AIACT', 'PLD'], source: 'https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52022PC0496' }, ] // Additional regulations that could be added to RAG (publicly available, commercial use permitted) // Regulations now integrated in main RAG (previously listed as candidates) const INTEGRATED_REGULATIONS = [ { code: 'DORA', name: 'Digital Operational Resilience Act', status: 'integrated', addedDate: 'Januar 2025', description: 'Jetzt im RAG verfuegbar - Finanzsektor IT-Resilienz' }, { code: 'MiCA', name: 'Markets in Crypto-Assets', status: 'integrated', addedDate: 'Januar 2025', description: 'Jetzt im RAG verfuegbar - Krypto-Regulierung' }, { code: 'PSD2', name: 'Payment Services Directive 2', status: 'integrated', addedDate: 'Januar 2025', description: 'Jetzt im RAG verfuegbar - Zahlungsdienste' }, { code: 'AMLR', name: 'AML-Verordnung', status: 'integrated', addedDate: 'Januar 2025', description: 'Jetzt im RAG verfuegbar - Geldwaeschebekaempfung' }, { code: 'EHDS', name: 'European Health Data Space', status: 'integrated', addedDate: 'Januar 2025', description: 'Jetzt im RAG verfuegbar - Gesundheitsdatenraum' }, ] // Potential future regulations (not yet integrated) const ADDITIONAL_REGULATIONS = [ { code: 'PSD3', name: 'Payment Services Directive 3', fullName: 'Richtlinie zur dritten Zahlungsdiensterichtlinie (Entwurf)', type: 'eu_directive', status: 'proposed', effectiveDate: 'Voraussichtlich 2026', description: 'Modernisierung der Zahlungsdienste-Regulierung. Staerkerer Verbraucherschutz, Open Banking 2.0, Betrugsbekaempfung. Ersetzt dann PSD2.', relevantFor: ['Banken', 'Zahlungsdienstleister', 'Fintechs', 'E-Commerce'], celex: '52023PC0366', priority: 'medium' }, { code: 'AMLD6', name: 'AML-Richtlinie 6', fullName: 'Richtlinie (EU) 2024/1640 - 6. Geldwaescherichtlinie', type: 'eu_directive', status: 'active', effectiveDate: '10. Juli 2027 (Umsetzung)', description: 'Ergaenzt die AML-Verordnung. Nationale Umsetzungsvorschriften, strafrechtliche Sanktionen, AMLA-Behoerde.', relevantFor: ['Banken', 'Krypto-Anbieter', 'Immobilienmakler', 'Gluecksspielanbieter'], celex: '32024L1640', priority: 'medium' }, { code: 'FIDA', name: 'Financial Data Access', fullName: 'Verordnung zum Zugang zu Finanzdaten (Entwurf)', type: 'eu_regulation', status: 'proposed', effectiveDate: 'Voraussichtlich 2027', description: 'Open Finance Framework - erweitert PSD2-Open-Banking auf Versicherungen, Investitionen, Kredite.', relevantFor: ['Banken', 'Versicherungen', 'Fintechs', 'Datenaggregatoren'], celex: '52023PC0360', priority: 'medium' }, ] // Legal basis for using EUR-Lex content const LEGAL_BASIS_INFO = { title: 'Rechtliche Grundlage fuer RAG-Nutzung', summary: 'EU-Rechtstexte auf EUR-Lex sind oeffentliche amtliche Dokumente und duerfen frei verwendet werden.', details: [ { aspect: 'EUR-Lex Dokumente', status: 'Erlaubt', explanation: 'Offizielle EU-Gesetzestexte, Richtlinien und Verordnungen sind gemeinfrei (Public Domain) und duerfen frei reproduziert und kommerziell genutzt werden.' }, { aspect: 'Text-und-Data-Mining (TDM)', status: 'Erlaubt', explanation: 'Art. 4 der DSM-Richtlinie (2019/790) erlaubt TDM fuer kommerzielle Zwecke, sofern kein Opt-out des Rechteinhabers vorliegt. Fuer amtliche Texte gilt kein Opt-out.' }, { aspect: 'AI Act Anforderungen', status: 'Beachten', explanation: 'Art. 53 AI Act verlangt von GPAI-Anbietern die Einhaltung des Urheberrechts. Fuer oeffentliche Rechtstexte unproblematisch.' }, { aspect: 'BSI-Richtlinien', status: 'Erlaubt', explanation: 'BSI-Publikationen sind oeffentlich zugaenglich und duerfen fuer Compliance-Zwecke verwendet werden.' }, ] } export default function RAGPage() { const [activeTab, setActiveTab] = useState('overview') const [collectionStatus, setCollectionStatus] = useState(null) const [loading, setLoading] = useState(true) const [searchQuery, setSearchQuery] = useState('') const [searchResults, setSearchResults] = useState([]) const [searching, setSearching] = useState(false) const [selectedRegulations, setSelectedRegulations] = useState([]) const [ingestionRunning, setIngestionRunning] = useState(false) const [ingestionLog, setIngestionLog] = useState([]) const [pipelineState, setPipelineState] = useState(null) const [pipelineLoading, setPipelineLoading] = useState(false) const [pipelineStarting, setPipelineStarting] = useState(false) const [expandedRegulation, setExpandedRegulation] = useState(null) const [autoRefresh, setAutoRefresh] = useState(true) const [elapsedTime, setElapsedTime] = useState('') // Chunk browser state is now in ChunkBrowserQA component // DSFA corpus state const [dsfaSources, setDsfaSources] = useState([]) const [dsfaStatus, setDsfaStatus] = useState(null) const [dsfaLoading, setDsfaLoading] = useState(false) const [regulationCategory, setRegulationCategory] = useState('regulations') const [expandedDsfaSource, setExpandedDsfaSource] = useState(null) // Data tab state const [customDocuments, setCustomDocuments] = useState([]) const [uploadFile, setUploadFile] = useState(null) const [uploadTitle, setUploadTitle] = useState('') const [uploadCode, setUploadCode] = useState('') const [uploading, setUploading] = useState(false) const [linkUrl, setLinkUrl] = useState('') const [linkTitle, setLinkTitle] = useState('') const [linkCode, setLinkCode] = useState('') const [addingLink, setAddingLink] = useState(false) const fetchStatus = useCallback(async () => { setLoading(true) try { const res = await fetch(`${API_PROXY}?action=status`) if (res.ok) { const data = await res.json() setCollectionStatus(data) } } catch (error) { console.error('Failed to fetch status:', error) } finally { setLoading(false) } }, []) const fetchPipeline = useCallback(async () => { setPipelineLoading(true) try { const res = await fetch(`${API_PROXY}?action=pipeline-checkpoints`) if (res.ok) { const data = await res.json() setPipelineState(data) } } catch (error) { console.error('Failed to fetch pipeline:', error) } finally { setPipelineLoading(false) } }, []) const fetchDsfaStatus = useCallback(async () => { setDsfaLoading(true) try { const [statusRes, sourcesRes] = await Promise.all([ fetch(`${DSFA_API_PROXY}?action=status`), fetch(`${DSFA_API_PROXY}?action=sources`), ]) if (statusRes.ok) { const data = await statusRes.json() setDsfaStatus(data) } if (sourcesRes.ok) { const data = await sourcesRes.json() setDsfaSources(data.sources || data || []) } } catch (error) { console.error('Failed to fetch DSFA status:', error) } finally { setDsfaLoading(false) } }, []) const fetchCustomDocuments = useCallback(async () => { try { const res = await fetch(`${API_PROXY}?action=custom-documents`) if (res.ok) { const data = await res.json() setCustomDocuments(data.documents || []) } } catch (error) { console.error('Failed to fetch custom documents:', error) } }, []) const handleUpload = async () => { if (!uploadFile || !uploadTitle || !uploadCode) return setUploading(true) try { const formData = new FormData() formData.append('file', uploadFile) formData.append('title', uploadTitle) formData.append('code', uploadCode) formData.append('document_type', 'custom') const res = await fetch(`${API_PROXY}?action=upload`, { method: 'POST', body: formData, }) if (res.ok) { setUploadFile(null) setUploadTitle('') setUploadCode('') fetchCustomDocuments() fetchStatus() } } catch (error) { console.error('Upload failed:', error) } finally { setUploading(false) } } const handleAddLink = async () => { if (!linkUrl || !linkTitle || !linkCode) return setAddingLink(true) try { const res = await fetch(`${API_PROXY}?action=add-link`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ url: linkUrl, title: linkTitle, code: linkCode, document_type: 'custom', }), }) if (res.ok) { setLinkUrl('') setLinkTitle('') setLinkCode('') fetchCustomDocuments() } } catch (error) { console.error('Add link failed:', error) } finally { setAddingLink(false) } } const handleDeleteDocument = async (docId: string) => { try { const res = await fetch(`${API_PROXY}?action=delete-document&docId=${docId}`, { method: 'DELETE', }) if (res.ok) { fetchCustomDocuments() fetchStatus() } } catch (error) { console.error('Delete failed:', error) } } const handleStartPipeline = async (skipIngestion: boolean = false) => { setPipelineStarting(true) try { const res = await fetch(`${API_PROXY}?action=start-pipeline`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ force_reindex: false, skip_ingestion: skipIngestion, }), }) if (res.ok) { // Wait a moment then refresh pipeline status setTimeout(() => { fetchPipeline() setPipelineStarting(false) }, 2000) } else { setPipelineStarting(false) } } catch (error) { console.error('Failed to start pipeline:', error) setPipelineStarting(false) } } useEffect(() => { fetchStatus() fetchDsfaStatus() }, [fetchStatus, fetchDsfaStatus]) useEffect(() => { if (activeTab === 'pipeline') { fetchPipeline() } }, [activeTab, fetchPipeline]) useEffect(() => { if (activeTab === 'data') { fetchCustomDocuments() } }, [activeTab, fetchCustomDocuments]) // Auto-refresh pipeline status when running useEffect(() => { if (activeTab !== 'pipeline' || !autoRefresh) return const isRunning = pipelineState?.status === 'running' if (isRunning) { const interval = setInterval(() => { fetchPipeline() fetchStatus() // Also refresh chunk counts }, 5000) // Every 5 seconds return () => clearInterval(interval) } }, [activeTab, autoRefresh, pipelineState?.status, fetchPipeline, fetchStatus]) // Update elapsed time useEffect(() => { if (!pipelineState?.started_at || pipelineState?.status !== 'running') { setElapsedTime('') return } const updateElapsed = () => { const start = new Date(pipelineState.started_at!).getTime() const now = Date.now() const diff = Math.floor((now - start) / 1000) const hours = Math.floor(diff / 3600) const minutes = Math.floor((diff % 3600) / 60) const seconds = diff % 60 if (hours > 0) { setElapsedTime(`${hours}h ${minutes}m ${seconds}s`) } else if (minutes > 0) { setElapsedTime(`${minutes}m ${seconds}s`) } else { setElapsedTime(`${seconds}s`) } } updateElapsed() const interval = setInterval(updateElapsed, 1000) return () => clearInterval(interval) }, [pipelineState?.started_at, pipelineState?.status]) // Chunk browser functions are now in ChunkBrowserQA component const handleSearch = async () => { if (!searchQuery.trim()) return setSearching(true) try { const params = new URLSearchParams({ action: 'search', query: searchQuery, top_k: '5', }) if (selectedRegulations.length > 0) { params.append('regulations', selectedRegulations.join(',')) } const res = await fetch(`${API_PROXY}?${params}`) if (res.ok) { const data = await res.json() setSearchResults(data.results || []) } } catch (error) { console.error('Search failed:', error) } finally { setSearching(false) } } const triggerIngestion = async () => { setIngestionRunning(true) setIngestionLog(['Starte Re-Ingestion aller 19 Regulierungen...']) try { const res = await fetch(`${API_PROXY}?action=ingest`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ force: true }), }) if (res.ok) { const data = await res.json() setIngestionLog((prev) => [...prev, 'Ingestion gestartet. Job-ID: ' + (data.job_id || 'N/A')]) // Poll for status const checkStatus = setInterval(async () => { try { const statusRes = await fetch(`${API_PROXY}?action=ingestion-status`) if (statusRes.ok) { const statusData = await statusRes.json() if (statusData.completed) { clearInterval(checkStatus) setIngestionRunning(false) setIngestionLog((prev) => [...prev, 'Ingestion abgeschlossen!']) fetchStatus() } else if (statusData.current_regulation) { setIngestionLog((prev) => [ ...prev, `Verarbeite: ${statusData.current_regulation} (${statusData.processed}/${statusData.total})`, ]) } } } catch { // Ignore polling errors } }, 5000) } else { setIngestionLog((prev) => [...prev, 'Fehler: ' + res.statusText]) setIngestionRunning(false) } } catch (error) { setIngestionLog((prev) => [...prev, 'Fehler: ' + String(error)]) setIngestionRunning(false) } } const getRegulationChunks = (code: string): number => { return collectionStatus?.regulations?.[code] || 0 } const getTotalChunks = (): number => { return collectionStatus?.totalPoints || 0 } const tabs = [ { id: 'overview' as TabId, name: 'Uebersicht', icon: '📊' }, { id: 'regulations' as TabId, name: 'Regulierungen', icon: '📜' }, { id: 'map' as TabId, name: 'Landkarte', icon: '🗺️' }, { id: 'search' as TabId, name: 'Suche', icon: '🔍' }, { id: 'chunks' as TabId, name: 'Chunk-Browser', icon: '🧩' }, { id: 'data' as TabId, name: 'Daten', icon: '📁' }, { id: 'ingestion' as TabId, name: 'Ingestion', icon: '⚙️' }, { id: 'pipeline' as TabId, name: 'Pipeline', icon: '🔄' }, ] return (
{/* Header */}

Daten & RAG

Legal Corpus Management fuer Compliance

KI & Automatisierung
{/* Page Purpose */} {/* AI Module Sidebar - Desktop: Fixed, Mobile: FAB + Drawer */} {/* RAG Collections Stats */}

Legal Corpus

{COLLECTION_TOTALS.total_legal.toLocaleString()}

Chunks · {Object.keys(REGULATIONS_IN_RAG).length}/{REGULATIONS.length} im RAG

DSFA Corpus

{dsfaLoading ? '-' : (dsfaStatus?.total_chunks || 0).toLocaleString()}

Chunks · {dsfaSources.length || '~70'} Quellen

NiBiS EH

7.996

Chunks · Bildungs-Erwartungshorizonte

Legal Templates

7.689

Chunks · Dokumentvorlagen

{/* Tabs */}
{tabs.map((tab) => ( ))}
{/* Tab Content */} {activeTab === 'overview' && (
{/* RAG Categories Overview */}

RAG-Kategorien

NiBiS EH

7.996

Chunks · Bildungs-Erwartungshorizonte

Legal Templates

7.689

Chunks · Dokumentvorlagen (VVT, TOM, DSFA)

{/* Quick Stats per Type */}
{Object.entries(TYPE_LABELS).map(([type, label]) => { const regs = REGULATIONS.filter((r) => r.type === type) const inRagCount = regs.filter((r) => isInRag(r.code)).length const totalChunks = regs.reduce((sum, r) => sum + getKnownChunks(r.code), 0) return (
{label} {inRagCount}/{regs.length} im RAG

{totalChunks.toLocaleString()} Chunks

) })}
{/* Top Regulations */}

Top Regulierungen (nach Chunks)

{[...REGULATIONS].sort((a, b) => getKnownChunks(b.code) - getKnownChunks(a.code)) .slice(0, 10) .map((reg) => { const chunks = getKnownChunks(reg.code) return (
{isInRag(reg.code) ? ( ) : ( )} {TYPE_LABELS[reg.type]} {reg.name} ({reg.code})
0 ? 'text-teal-600' : 'text-slate-300'}`}>{chunks > 0 ? chunks.toLocaleString() + ' Chunks' : '—'}
) })}
)} {activeTab === 'regulations' && (
{/* Category Filter */}
{/* Regulations Table (existing) */} {regulationCategory === 'regulations' && (

Alle {REGULATIONS.length} Regulierungen ({REGULATIONS.filter(r => isInRag(r.code)).length} im RAG,{' '} {REGULATIONS.filter(r => !isInRag(r.code)).length} ausstehend)

{REGULATIONS.map((reg) => { const chunks = getKnownChunks(reg.code) const inRag = isInRag(reg.code) let statusColor = inRag ? 'text-green-500' : 'text-red-500' let statusIcon = inRag ? '✓' : '❌' const isExpanded = expandedRegulation === reg.code return ( setExpandedRegulation(isExpanded ? null : reg.code)} className="hover:bg-slate-50 cursor-pointer transition-colors" > {isExpanded && ( )} ) })}
RAG Code Typ Name Chunks Erwartet Status
{isInRag(reg.code) ? ( ) : ( )} {reg.code} {TYPE_LABELS[reg.type]} {reg.name} 0 && chunks < 10 && reg.expected >= 10 ? 'text-amber-600' : ''}> {chunks.toLocaleString()} {chunks > 0 && chunks < 10 && reg.expected >= 10 && ( )} {reg.expected} {statusIcon}

{reg.fullName}

{reg.description}

Relevant fuer

{reg.relevantFor.map((item, idx) => ( {item} ))}

Kernthemen

{reg.keyTopics.map((topic, idx) => ( {topic} ))}
In Kraft seit: {reg.effectiveDate} {REGULATION_LICENSES[reg.code] && ( {LICENSE_LABELS[REGULATION_LICENSES[reg.code].license] || REGULATION_LICENSES[reg.code].license} {REGULATION_LICENSES[reg.code].licenseNote} )}
{REGULATION_SOURCES[reg.code] && ( e.stopPropagation()} className="text-blue-600 hover:text-blue-700 font-medium" > Originalquelle → )}
)} {/* DSFA Sources */} {regulationCategory === 'dsfa' && (

DSFA Quellen ({dsfaSources.length || '~70'})

WP248, DSK Kurzpapiere, Muss-Listen, nationale Datenschutzgesetze

{dsfaLoading ? (
Lade DSFA-Quellen...
) : dsfaSources.length === 0 ? (

Keine DSFA-Quellen vom Backend geladen.

Endpunkt: /api/dsfa-corpus?action=sources

) : (
{dsfaSources.map((source) => { const isExpanded = expandedDsfaSource === source.source_code const typeColors: Record = { regulation: 'bg-blue-100 text-blue-700', legislation: 'bg-indigo-100 text-indigo-700', guideline: 'bg-teal-100 text-teal-700', checklist: 'bg-yellow-100 text-yellow-700', standard: 'bg-green-100 text-green-700', methodology: 'bg-purple-100 text-purple-700', specification: 'bg-orange-100 text-orange-700', catalog: 'bg-pink-100 text-pink-700', guidance: 'bg-cyan-100 text-cyan-700', } return (
setExpandedDsfaSource(isExpanded ? null : source.source_code)} className="px-4 py-3 hover:bg-slate-50 cursor-pointer transition-colors flex items-center justify-between" >
{source.source_code} {source.document_type} {source.name}
{source.language} {source.chunk_count != null && ( {source.chunk_count} Chunks )}
{isExpanded && (

{source.full_name || source.name}

{source.organization && (

Organisation: {source.organization}

)}
{LICENSE_LABELS[source.license_code] || source.license_code} {source.attribution_text}
{source.source_url && ( )}
)}
) })}
)}
)} {/* NiBiS Dokumente (info only) */} {regulationCategory === 'nibis' && (
📚

NiBiS Erwartungshorizonte

Collection: bp_nibis_eh

Chunks

7.996

Vector Size

1024

Typ

BGE-M3

Bildungsinhalte aus dem Niedersaechsischen Bildungsserver (NiBiS). Enthaelt Erwartungshorizonte fuer verschiedene Faecher und Schulformen. Wird ueber die Klausur-Korrektur fuer EH-Matching genutzt. Diese Daten sind nicht direkt compliance-relevant.

)} {/* Templates (info only) */} {regulationCategory === 'templates' && (
📋

Legal Templates & Vorlagen

Collection: bp_legal_templates

Chunks

7.689

Vector Size

1024

Typ

BGE-M3

Vorlagen fuer VVT (Verzeichnis von Verarbeitungstaetigkeiten), TOM (Technisch-Organisatorische Massnahmen), DSFA-Berichte und weitere Compliance-Dokumente. Werden vom AI Compliance SDK fuer die Dokumentgenerierung genutzt.

)}
)} {activeTab === 'map' && (
{/* Industry Filter */}

Regulierungen nach Branche

Waehlen Sie Ihre Branche, um relevante Regulierungen zu sehen.

{INDUSTRIES.map((industry) => { const regs = INDUSTRY_REGULATION_MAP[industry.id] || [] return ( ) })}
{/* Selected Industry Details */} {expandedRegulation && INDUSTRIES.find(i => i.id === expandedRegulation) && (
{(() => { const industry = INDUSTRIES.find(i => i.id === expandedRegulation)! const regCodes = INDUSTRY_REGULATION_MAP[industry.id] || [] const regs = REGULATIONS.filter(r => regCodes.includes(r.code)) return ( <>
{industry.icon}

{industry.name}

{industry.description}

{regs.map((reg) => { const regInRag = isInRag(reg.code) return (
{reg.code} {regInRag ? ( RAG ) : ( )}
{reg.name}
{reg.description}
) })}
) })()}
)}
{/* Thematic Groups */}

Thematische Cluster

Regulierungen gruppiert nach Themenbereichen - zeigt Ueberschneidungen.

{THEMATIC_GROUPS.map((group) => (
{group.name} {group.regulations.length} Regulierungen

{group.description}

{group.regulations.map((code) => { const reg = REGULATIONS.find(r => r.code === code) const codeInRag = isInRag(code) return ( { setActiveTab('regulations') setExpandedRegulation(code) }} title={`${reg?.fullName || code}${codeInRag ? ' (im RAG)' : ' (nicht im RAG)'}`} > {codeInRag ? '✓ ' : '✗ '}{code} ) })}
))}
{/* Key Intersections */}

Wichtige Schnittstellen

Bereiche, in denen sich mehrere Regulierungen ueberschneiden und zusammenwirken.

{KEY_INTERSECTIONS.map((intersection, idx) => (
{intersection.regulations.map((code) => ( {isInRag(code) ? '✓ ' : '✗ '}{code} ))}
{intersection.topic}
{intersection.description}
))}
{/* Regulation Matrix */}

Branchen-Regulierungs-Matrix

Welche Regulierungen in welchen Branchen gelten

{INDUSTRIES.filter(i => i.id !== 'all').map((industry) => ( ))} {REGULATIONS.map((reg) => ( {INDUSTRIES.filter(i => i.id !== 'all').map((industry) => { const applies = INDUSTRY_REGULATION_MAP[industry.id]?.includes(reg.code) return ( ) })} ))}
Regulierung
{industry.icon} {industry.name.split('/')[0]}
{isInRag(reg.code) ? ( ) : ( )} {reg.code} {applies ? ( ) : ( )}
{/* Future Outlook Section */}
🔮

Zukunftsaussicht

Geplante Aenderungen und neue Regulierungen

{FUTURE_OUTLOOK.map((item) => (
{item.statusLabel}

{item.name}

Erwartet: {item.expectedDate}

{item.description}

Wichtige Aenderungen:

    {item.keyChanges.slice(0, 4).map((change, idx) => (
  • {change}
  • ))} {item.keyChanges.length > 4 && (
  • + {item.keyChanges.length - 4} weitere...
  • )}
{item.affectedRegulations.map((code) => ( {code} ))}
Quelle →
))}
{/* RAG Coverage Overview */}

RAG-Abdeckung ({Object.keys(REGULATIONS_IN_RAG).length} von {REGULATIONS.length} Regulierungen)

Stand: Maerz 2026 — Alle im RAG-System verfuegbaren Regulierungen (inkl. Verbraucherschutz Phase H)

{REGULATIONS.filter(r => isInRag(r.code)).map((reg) => ( ✓ {reg.code} ))}

Noch nicht im RAG:

{REGULATIONS.filter(r => !isInRag(r.code)).map((reg) => ( ✗ {reg.code} ))}
{/* Potential Future Regulations */}
🔮

Zukuenftige Regulierungen

Noch nicht verabschiedet oder zur Erweiterung vorgesehen

{ADDITIONAL_REGULATIONS.map((reg) => (
{reg.code} {reg.status === 'active' ? 'In Kraft' : 'Vorgeschlagen'}
{reg.priority === 'high' ? 'Hohe Prioritaet' : 'Mittel'}

{reg.name}

{reg.description}

Ab: {reg.effectiveDate} {reg.celex && ( EUR-Lex → )}
))}
{/* Legal Basis Info */}
⚖️

{LEGAL_BASIS_INFO.title}

{LEGAL_BASIS_INFO.summary}

{LEGAL_BASIS_INFO.details.map((detail, idx) => (
{detail.status} {detail.aspect}

{detail.explanation}

))}
)} {activeTab === 'search' && (
{/* Search Box */}

Semantische Suche