refactor(admin): split lib/sdk/types.ts and vendor-compliance/types.ts into domain barrels
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -18,6 +18,7 @@ export type LicenseType =
|
|||||||
| 'reuse_notice'
|
| 'reuse_notice'
|
||||||
|
|
||||||
export type TemplateType =
|
export type TemplateType =
|
||||||
|
// Legal / Vertragsvorlagen
|
||||||
| 'privacy_policy'
|
| 'privacy_policy'
|
||||||
| 'terms_of_service'
|
| 'terms_of_service'
|
||||||
| 'agb'
|
| 'agb'
|
||||||
@@ -35,6 +36,55 @@ export type TemplateType =
|
|||||||
| 'copyright_policy'
|
| 'copyright_policy'
|
||||||
| 'clause'
|
| 'clause'
|
||||||
| 'dsfa'
|
| 'dsfa'
|
||||||
|
// Sicherheitskonzepte (Migration 051)
|
||||||
|
| 'it_security_concept'
|
||||||
|
| 'data_protection_concept'
|
||||||
|
| 'backup_recovery_concept'
|
||||||
|
| 'logging_concept'
|
||||||
|
| 'incident_response_plan'
|
||||||
|
| 'access_control_concept'
|
||||||
|
| 'risk_management_concept'
|
||||||
|
// CRA Cybersecurity (Migration 056)
|
||||||
|
| 'cybersecurity_policy'
|
||||||
|
// IT-Sicherheit Policies (Migration 071)
|
||||||
|
| 'information_security_policy'
|
||||||
|
| 'access_control_policy'
|
||||||
|
| 'password_policy'
|
||||||
|
| 'encryption_policy'
|
||||||
|
| 'logging_policy'
|
||||||
|
| 'backup_policy'
|
||||||
|
| 'incident_response_policy'
|
||||||
|
| 'change_management_policy'
|
||||||
|
| 'patch_management_policy'
|
||||||
|
| 'asset_management_policy'
|
||||||
|
| 'cloud_security_policy'
|
||||||
|
| 'devsecops_policy'
|
||||||
|
| 'secrets_management_policy'
|
||||||
|
| 'vulnerability_management_policy'
|
||||||
|
// Daten-Policies (Migration 072)
|
||||||
|
| 'data_protection_policy'
|
||||||
|
| 'data_classification_policy'
|
||||||
|
| 'data_retention_policy'
|
||||||
|
| 'data_transfer_policy'
|
||||||
|
| 'privacy_incident_policy'
|
||||||
|
// Personal-Policies (Migration 072)
|
||||||
|
| 'employee_security_policy'
|
||||||
|
| 'security_awareness_policy'
|
||||||
|
| 'remote_work_policy'
|
||||||
|
| 'offboarding_policy'
|
||||||
|
// Lieferanten-Policies (Migration 072)
|
||||||
|
| 'vendor_risk_management_policy'
|
||||||
|
| 'third_party_security_policy'
|
||||||
|
| 'supplier_security_policy'
|
||||||
|
// BCM/Notfall (Migration 072)
|
||||||
|
| 'business_continuity_policy'
|
||||||
|
| 'disaster_recovery_policy'
|
||||||
|
| 'crisis_management_policy'
|
||||||
|
// Modul-Dokumente (Migration 073)
|
||||||
|
| 'vvt_register'
|
||||||
|
| 'tom_documentation'
|
||||||
|
| 'loeschkonzept'
|
||||||
|
| 'pflichtenregister'
|
||||||
|
|
||||||
export type Jurisdiction = 'DE' | 'AT' | 'CH' | 'EU' | 'US' | 'INTL'
|
export type Jurisdiction = 'DE' | 'AT' | 'CH' | 'EU' | 'US' | 'INTL'
|
||||||
|
|
||||||
@@ -204,6 +254,7 @@ export const DEFAULT_PLACEHOLDERS: Record<string, string> = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const TEMPLATE_TYPE_LABELS: Record<TemplateType, string> = {
|
export const TEMPLATE_TYPE_LABELS: Record<TemplateType, string> = {
|
||||||
|
// Legal / Vertragsvorlagen
|
||||||
privacy_policy: 'Datenschutzerkl\u00e4rung',
|
privacy_policy: 'Datenschutzerkl\u00e4rung',
|
||||||
terms_of_service: 'Nutzungsbedingungen',
|
terms_of_service: 'Nutzungsbedingungen',
|
||||||
agb: 'Allgemeine Gesch\u00e4ftsbedingungen',
|
agb: 'Allgemeine Gesch\u00e4ftsbedingungen',
|
||||||
@@ -221,6 +272,54 @@ export const TEMPLATE_TYPE_LABELS: Record<TemplateType, string> = {
|
|||||||
copyright_policy: 'Urheberrechtsrichtlinie',
|
copyright_policy: 'Urheberrechtsrichtlinie',
|
||||||
clause: 'Vertragsklausel',
|
clause: 'Vertragsklausel',
|
||||||
dsfa: 'Datenschutz-Folgenabsch\u00e4tzung',
|
dsfa: 'Datenschutz-Folgenabsch\u00e4tzung',
|
||||||
|
// Sicherheitskonzepte
|
||||||
|
it_security_concept: 'IT-Sicherheitskonzept',
|
||||||
|
data_protection_concept: 'Datenschutzkonzept',
|
||||||
|
backup_recovery_concept: 'Backup- und Recovery-Konzept',
|
||||||
|
logging_concept: 'Logging-Konzept',
|
||||||
|
incident_response_plan: 'Incident-Response-Plan',
|
||||||
|
access_control_concept: 'Zugriffskonzept',
|
||||||
|
risk_management_concept: 'Risikomanagement-Konzept',
|
||||||
|
cybersecurity_policy: 'Cybersecurity-Richtlinie (CRA)',
|
||||||
|
// IT-Sicherheit Policies
|
||||||
|
information_security_policy: 'Informationssicherheitsrichtlinie',
|
||||||
|
access_control_policy: 'Zugriffskontrollrichtlinie',
|
||||||
|
password_policy: 'Passwortrichtlinie',
|
||||||
|
encryption_policy: 'Verschl\u00fcsselungsrichtlinie',
|
||||||
|
logging_policy: 'Protokollierungsrichtlinie',
|
||||||
|
backup_policy: 'Datensicherungsrichtlinie',
|
||||||
|
incident_response_policy: 'Incident-Response-Richtlinie',
|
||||||
|
change_management_policy: 'Change-Management-Richtlinie',
|
||||||
|
patch_management_policy: 'Patch-Management-Richtlinie',
|
||||||
|
asset_management_policy: 'Asset-Management-Richtlinie',
|
||||||
|
cloud_security_policy: 'Cloud-Security-Richtlinie',
|
||||||
|
devsecops_policy: 'DevSecOps-Richtlinie',
|
||||||
|
secrets_management_policy: 'Secrets-Management-Richtlinie',
|
||||||
|
vulnerability_management_policy: 'Schwachstellenmanagement-Richtlinie',
|
||||||
|
// Daten-Policies
|
||||||
|
data_protection_policy: 'Datenschutzrichtlinie',
|
||||||
|
data_classification_policy: 'Datenklassifizierungsrichtlinie',
|
||||||
|
data_retention_policy: 'Aufbewahrungsrichtlinie',
|
||||||
|
data_transfer_policy: 'Daten\u00fcbermittlungsrichtlinie',
|
||||||
|
privacy_incident_policy: 'Datenschutzvorfall-Richtlinie',
|
||||||
|
// Personal-Policies
|
||||||
|
employee_security_policy: 'Mitarbeiter-Sicherheitsrichtlinie',
|
||||||
|
security_awareness_policy: 'Security-Awareness-Richtlinie',
|
||||||
|
remote_work_policy: 'Remote-Work-Richtlinie',
|
||||||
|
offboarding_policy: 'Offboarding-Richtlinie',
|
||||||
|
// Lieferanten-Policies
|
||||||
|
vendor_risk_management_policy: 'Lieferanten-Risikomanagement',
|
||||||
|
third_party_security_policy: 'Drittanbieter-Sicherheitsrichtlinie',
|
||||||
|
supplier_security_policy: 'Lieferanten-Sicherheitsanforderungen',
|
||||||
|
// BCM/Notfall
|
||||||
|
business_continuity_policy: 'Business-Continuity-Richtlinie',
|
||||||
|
disaster_recovery_policy: 'Disaster-Recovery-Richtlinie',
|
||||||
|
crisis_management_policy: 'Krisenmanagement-Richtlinie',
|
||||||
|
// Modul-Dokumente
|
||||||
|
vvt_register: 'Verarbeitungsverzeichnis (Art. 30)',
|
||||||
|
tom_documentation: 'TOM-Dokumentation (Art. 32)',
|
||||||
|
loeschkonzept: 'L\u00f6schkonzept (Art. 5/17)',
|
||||||
|
pflichtenregister: 'Pflichtenregister',
|
||||||
}
|
}
|
||||||
|
|
||||||
export const LICENSE_TYPE_LABELS: Record<LicenseType, string> = {
|
export const LICENSE_TYPE_LABELS: Record<LicenseType, string> = {
|
||||||
@@ -241,228 +340,3 @@ export const JURISDICTION_LABELS: Record<Jurisdiction, string> = {
|
|||||||
INTL: 'International',
|
INTL: 'International',
|
||||||
}
|
}
|
||||||
|
|
||||||
// =============================================================================
|
|
||||||
// DSFA RAG TYPES (Source Attribution & Corpus Management)
|
|
||||||
// =============================================================================
|
|
||||||
|
|
||||||
export type DSFALicenseCode =
|
|
||||||
| 'DL-DE-BY-2.0'
|
|
||||||
| 'DL-DE-ZERO-2.0'
|
|
||||||
| 'CC-BY-4.0'
|
|
||||||
| 'EDPB-LICENSE'
|
|
||||||
| 'PUBLIC_DOMAIN'
|
|
||||||
| 'PROPRIETARY'
|
|
||||||
|
|
||||||
export type DSFADocumentType = 'guideline' | 'checklist' | 'regulation' | 'template'
|
|
||||||
|
|
||||||
export type DSFACategory =
|
|
||||||
| 'threshold_analysis'
|
|
||||||
| 'risk_assessment'
|
|
||||||
| 'mitigation'
|
|
||||||
| 'consultation'
|
|
||||||
| 'documentation'
|
|
||||||
| 'process'
|
|
||||||
| 'criteria'
|
|
||||||
|
|
||||||
export interface DSFASource {
|
|
||||||
id: string
|
|
||||||
sourceCode: string
|
|
||||||
name: string
|
|
||||||
fullName?: string
|
|
||||||
organization?: string
|
|
||||||
sourceUrl?: string
|
|
||||||
eurLexCelex?: string
|
|
||||||
licenseCode: DSFALicenseCode
|
|
||||||
licenseName: string
|
|
||||||
licenseUrl?: string
|
|
||||||
attributionRequired: boolean
|
|
||||||
attributionText: string
|
|
||||||
documentType?: DSFADocumentType
|
|
||||||
language: string
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface DSFADocument {
|
|
||||||
id: string
|
|
||||||
sourceId: string
|
|
||||||
title: string
|
|
||||||
description?: string
|
|
||||||
fileName?: string
|
|
||||||
fileType?: string
|
|
||||||
fileSizeBytes?: number
|
|
||||||
minioBucket: string
|
|
||||||
minioPath?: string
|
|
||||||
originalUrl?: string
|
|
||||||
ocrProcessed: boolean
|
|
||||||
textExtracted: boolean
|
|
||||||
chunksGenerated: number
|
|
||||||
lastIndexedAt?: string
|
|
||||||
metadata: Record<string, unknown>
|
|
||||||
createdAt: string
|
|
||||||
updatedAt: string
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface DSFAChunk {
|
|
||||||
chunkId: string
|
|
||||||
content: string
|
|
||||||
sectionTitle?: string
|
|
||||||
pageNumber?: number
|
|
||||||
category?: DSFACategory
|
|
||||||
documentId: string
|
|
||||||
documentTitle?: string
|
|
||||||
sourceId: string
|
|
||||||
sourceCode: string
|
|
||||||
sourceName: string
|
|
||||||
attributionText: string
|
|
||||||
licenseCode: DSFALicenseCode
|
|
||||||
licenseName: string
|
|
||||||
licenseUrl?: string
|
|
||||||
attributionRequired: boolean
|
|
||||||
sourceUrl?: string
|
|
||||||
documentType?: DSFADocumentType
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface DSFASearchResult {
|
|
||||||
chunkId: string
|
|
||||||
content: string
|
|
||||||
score: number
|
|
||||||
sourceCode: string
|
|
||||||
sourceName: string
|
|
||||||
attributionText: string
|
|
||||||
licenseCode: DSFALicenseCode
|
|
||||||
licenseName: string
|
|
||||||
licenseUrl?: string
|
|
||||||
attributionRequired: boolean
|
|
||||||
sourceUrl?: string
|
|
||||||
documentType?: DSFADocumentType
|
|
||||||
category?: DSFACategory
|
|
||||||
sectionTitle?: string
|
|
||||||
pageNumber?: number
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface DSFASearchResponse {
|
|
||||||
query: string
|
|
||||||
results: DSFASearchResult[]
|
|
||||||
totalResults: number
|
|
||||||
licensesUsed: string[]
|
|
||||||
attributionNotice: string
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface DSFASourceStats {
|
|
||||||
sourceId: string
|
|
||||||
sourceCode: string
|
|
||||||
name: string
|
|
||||||
organization?: string
|
|
||||||
licenseCode: DSFALicenseCode
|
|
||||||
documentType?: DSFADocumentType
|
|
||||||
documentCount: number
|
|
||||||
chunkCount: number
|
|
||||||
lastIndexedAt?: string
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface DSFACorpusStats {
|
|
||||||
sources: DSFASourceStats[]
|
|
||||||
totalSources: number
|
|
||||||
totalDocuments: number
|
|
||||||
totalChunks: number
|
|
||||||
qdrantCollection: string
|
|
||||||
qdrantPointsCount: number
|
|
||||||
qdrantStatus: string
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface DSFALicenseInfo {
|
|
||||||
code: DSFALicenseCode
|
|
||||||
name: string
|
|
||||||
url?: string
|
|
||||||
attributionRequired: boolean
|
|
||||||
modificationAllowed: boolean
|
|
||||||
commercialUse: boolean
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface DSFAIngestRequest {
|
|
||||||
documentUrl?: string
|
|
||||||
documentText?: string
|
|
||||||
title?: string
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface DSFAIngestResponse {
|
|
||||||
sourceCode: string
|
|
||||||
documentId?: string
|
|
||||||
chunksCreated: number
|
|
||||||
message: string
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface SourceAttributionProps {
|
|
||||||
sources: Array<{
|
|
||||||
sourceCode: string
|
|
||||||
sourceName: string
|
|
||||||
attributionText: string
|
|
||||||
licenseCode: DSFALicenseCode
|
|
||||||
sourceUrl?: string
|
|
||||||
score?: number
|
|
||||||
}>
|
|
||||||
compact?: boolean
|
|
||||||
showScores?: boolean
|
|
||||||
}
|
|
||||||
|
|
||||||
export const DSFA_LICENSE_LABELS: Record<DSFALicenseCode, string> = {
|
|
||||||
'DL-DE-BY-2.0': 'Datenlizenz DE \u2013 Namensnennung 2.0',
|
|
||||||
'DL-DE-ZERO-2.0': 'Datenlizenz DE \u2013 Zero 2.0',
|
|
||||||
'CC-BY-4.0': 'CC BY 4.0 International',
|
|
||||||
'EDPB-LICENSE': 'EDPB Document License',
|
|
||||||
'PUBLIC_DOMAIN': 'Public Domain',
|
|
||||||
'PROPRIETARY': 'Proprietary',
|
|
||||||
}
|
|
||||||
|
|
||||||
export const DSFA_DOCUMENT_TYPE_LABELS: Record<DSFADocumentType, string> = {
|
|
||||||
guideline: 'Leitlinie',
|
|
||||||
checklist: 'Pr\u00fcfliste',
|
|
||||||
regulation: 'Verordnung',
|
|
||||||
template: 'Vorlage',
|
|
||||||
}
|
|
||||||
|
|
||||||
export const DSFA_CATEGORY_LABELS: Record<DSFACategory, string> = {
|
|
||||||
threshold_analysis: 'Schwellwertanalyse',
|
|
||||||
risk_assessment: 'Risikobewertung',
|
|
||||||
mitigation: 'Risikominderung',
|
|
||||||
consultation: 'Beh\u00f6rdenkonsultation',
|
|
||||||
documentation: 'Dokumentation',
|
|
||||||
process: 'Prozessschritte',
|
|
||||||
criteria: 'Kriterien',
|
|
||||||
}
|
|
||||||
|
|
||||||
// =============================================================================
|
|
||||||
// COMPLIANCE WIKI
|
|
||||||
// =============================================================================
|
|
||||||
|
|
||||||
export interface WikiCategory {
|
|
||||||
id: string
|
|
||||||
name: string
|
|
||||||
description: string
|
|
||||||
icon: string
|
|
||||||
sortOrder: number
|
|
||||||
articleCount: number
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface WikiArticle {
|
|
||||||
id: string
|
|
||||||
categoryId: string
|
|
||||||
categoryName: string
|
|
||||||
title: string
|
|
||||||
summary: string
|
|
||||||
content: string
|
|
||||||
legalRefs: string[]
|
|
||||||
tags: string[]
|
|
||||||
relevance: 'critical' | 'important' | 'info'
|
|
||||||
sourceUrls: string[]
|
|
||||||
version: number
|
|
||||||
updatedAt: string
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface WikiSearchResult {
|
|
||||||
id: string
|
|
||||||
title: string
|
|
||||||
summary: string
|
|
||||||
categoryName: string
|
|
||||||
relevance: string
|
|
||||||
highlight: string
|
|
||||||
}
|
|
||||||
|
|||||||
189
admin-compliance/lib/sdk/types/dsfa-rag.ts
Normal file
189
admin-compliance/lib/sdk/types/dsfa-rag.ts
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
/**
|
||||||
|
* DSFA RAG types — source attribution and corpus management for the
|
||||||
|
* Datenschutz-Folgenabschätzung RAG pipeline.
|
||||||
|
*/
|
||||||
|
|
||||||
|
export type DSFALicenseCode =
|
||||||
|
| 'DL-DE-BY-2.0'
|
||||||
|
| 'DL-DE-ZERO-2.0'
|
||||||
|
| 'CC-BY-4.0'
|
||||||
|
| 'EDPB-LICENSE'
|
||||||
|
| 'PUBLIC_DOMAIN'
|
||||||
|
| 'PROPRIETARY'
|
||||||
|
|
||||||
|
export type DSFADocumentType = 'guideline' | 'checklist' | 'regulation' | 'template'
|
||||||
|
|
||||||
|
export type DSFACategory =
|
||||||
|
| 'threshold_analysis'
|
||||||
|
| 'risk_assessment'
|
||||||
|
| 'mitigation'
|
||||||
|
| 'consultation'
|
||||||
|
| 'documentation'
|
||||||
|
| 'process'
|
||||||
|
| 'criteria'
|
||||||
|
|
||||||
|
export interface DSFASource {
|
||||||
|
id: string
|
||||||
|
sourceCode: string
|
||||||
|
name: string
|
||||||
|
fullName?: string
|
||||||
|
organization?: string
|
||||||
|
sourceUrl?: string
|
||||||
|
eurLexCelex?: string
|
||||||
|
licenseCode: DSFALicenseCode
|
||||||
|
licenseName: string
|
||||||
|
licenseUrl?: string
|
||||||
|
attributionRequired: boolean
|
||||||
|
attributionText: string
|
||||||
|
documentType?: DSFADocumentType
|
||||||
|
language: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DSFADocument {
|
||||||
|
id: string
|
||||||
|
sourceId: string
|
||||||
|
title: string
|
||||||
|
description?: string
|
||||||
|
fileName?: string
|
||||||
|
fileType?: string
|
||||||
|
fileSizeBytes?: number
|
||||||
|
minioBucket: string
|
||||||
|
minioPath?: string
|
||||||
|
originalUrl?: string
|
||||||
|
ocrProcessed: boolean
|
||||||
|
textExtracted: boolean
|
||||||
|
chunksGenerated: number
|
||||||
|
lastIndexedAt?: string
|
||||||
|
metadata: Record<string, unknown>
|
||||||
|
createdAt: string
|
||||||
|
updatedAt: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DSFAChunk {
|
||||||
|
chunkId: string
|
||||||
|
content: string
|
||||||
|
sectionTitle?: string
|
||||||
|
pageNumber?: number
|
||||||
|
category?: DSFACategory
|
||||||
|
documentId: string
|
||||||
|
documentTitle?: string
|
||||||
|
sourceId: string
|
||||||
|
sourceCode: string
|
||||||
|
sourceName: string
|
||||||
|
attributionText: string
|
||||||
|
licenseCode: DSFALicenseCode
|
||||||
|
licenseName: string
|
||||||
|
licenseUrl?: string
|
||||||
|
attributionRequired: boolean
|
||||||
|
sourceUrl?: string
|
||||||
|
documentType?: DSFADocumentType
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DSFASearchResult {
|
||||||
|
chunkId: string
|
||||||
|
content: string
|
||||||
|
score: number
|
||||||
|
sourceCode: string
|
||||||
|
sourceName: string
|
||||||
|
attributionText: string
|
||||||
|
licenseCode: DSFALicenseCode
|
||||||
|
licenseName: string
|
||||||
|
licenseUrl?: string
|
||||||
|
attributionRequired: boolean
|
||||||
|
sourceUrl?: string
|
||||||
|
documentType?: DSFADocumentType
|
||||||
|
category?: DSFACategory
|
||||||
|
sectionTitle?: string
|
||||||
|
pageNumber?: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DSFASearchResponse {
|
||||||
|
query: string
|
||||||
|
results: DSFASearchResult[]
|
||||||
|
totalResults: number
|
||||||
|
licensesUsed: string[]
|
||||||
|
attributionNotice: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DSFASourceStats {
|
||||||
|
sourceId: string
|
||||||
|
sourceCode: string
|
||||||
|
name: string
|
||||||
|
organization?: string
|
||||||
|
licenseCode: DSFALicenseCode
|
||||||
|
documentType?: DSFADocumentType
|
||||||
|
documentCount: number
|
||||||
|
chunkCount: number
|
||||||
|
lastIndexedAt?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DSFACorpusStats {
|
||||||
|
sources: DSFASourceStats[]
|
||||||
|
totalSources: number
|
||||||
|
totalDocuments: number
|
||||||
|
totalChunks: number
|
||||||
|
qdrantCollection: string
|
||||||
|
qdrantPointsCount: number
|
||||||
|
qdrantStatus: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DSFALicenseInfo {
|
||||||
|
code: DSFALicenseCode
|
||||||
|
name: string
|
||||||
|
url?: string
|
||||||
|
attributionRequired: boolean
|
||||||
|
modificationAllowed: boolean
|
||||||
|
commercialUse: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DSFAIngestRequest {
|
||||||
|
documentUrl?: string
|
||||||
|
documentText?: string
|
||||||
|
title?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DSFAIngestResponse {
|
||||||
|
sourceCode: string
|
||||||
|
documentId?: string
|
||||||
|
chunksCreated: number
|
||||||
|
message: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SourceAttributionProps {
|
||||||
|
sources: Array<{
|
||||||
|
sourceCode: string
|
||||||
|
sourceName: string
|
||||||
|
attributionText: string
|
||||||
|
licenseCode: DSFALicenseCode
|
||||||
|
sourceUrl?: string
|
||||||
|
score?: number
|
||||||
|
}>
|
||||||
|
compact?: boolean
|
||||||
|
showScores?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export const DSFA_LICENSE_LABELS: Record<DSFALicenseCode, string> = {
|
||||||
|
'DL-DE-BY-2.0': 'Datenlizenz DE \u2013 Namensnennung 2.0',
|
||||||
|
'DL-DE-ZERO-2.0': 'Datenlizenz DE \u2013 Zero 2.0',
|
||||||
|
'CC-BY-4.0': 'CC BY 4.0 International',
|
||||||
|
'EDPB-LICENSE': 'EDPB Document License',
|
||||||
|
'PUBLIC_DOMAIN': 'Public Domain',
|
||||||
|
'PROPRIETARY': 'Proprietary',
|
||||||
|
}
|
||||||
|
|
||||||
|
export const DSFA_DOCUMENT_TYPE_LABELS: Record<DSFADocumentType, string> = {
|
||||||
|
guideline: 'Leitlinie',
|
||||||
|
checklist: 'Pr\u00fcfliste',
|
||||||
|
regulation: 'Verordnung',
|
||||||
|
template: 'Vorlage',
|
||||||
|
}
|
||||||
|
|
||||||
|
export const DSFA_CATEGORY_LABELS: Record<DSFACategory, string> = {
|
||||||
|
threshold_analysis: 'Schwellwertanalyse',
|
||||||
|
risk_assessment: 'Risikobewertung',
|
||||||
|
mitigation: 'Risikominderung',
|
||||||
|
consultation: 'Beh\u00f6rdenkonsultation',
|
||||||
|
documentation: 'Dokumentation',
|
||||||
|
process: 'Prozessschritte',
|
||||||
|
criteria: 'Kriterien',
|
||||||
|
}
|
||||||
@@ -3,12 +3,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import type { SDKPhase, SDKPackageId, CustomerType, RiskLikelihood, RiskImpact, RiskSeverity } from './enums'
|
import type { SDKPhase, SDKPackageId, CustomerType, RiskLikelihood, RiskImpact, RiskSeverity } from './enums'
|
||||||
import type { SDKStep, SDKPackage, SDK_PACKAGES } from './sdk-flow'
|
import type { SDKStep, SDKPackage } from './sdk-flow'
|
||||||
import type { SDK_STEPS } from './sdk-steps'
|
|
||||||
import type { SDKState } from './sdk-state'
|
import type { SDKState } from './sdk-state'
|
||||||
import type { Risk } from './compliance'
|
import type { Risk } from './compliance'
|
||||||
|
|
||||||
// Re-import values (not just types) for runtime use
|
|
||||||
import { SDK_PACKAGES as _SDK_PACKAGES } from './sdk-flow'
|
import { SDK_PACKAGES as _SDK_PACKAGES } from './sdk-flow'
|
||||||
import { SDK_STEPS as _SDK_STEPS } from './sdk-steps'
|
import { SDK_STEPS as _SDK_STEPS } from './sdk-steps'
|
||||||
|
|
||||||
|
|||||||
@@ -16,3 +16,5 @@ export * from './sdk-state'
|
|||||||
export * from './iace'
|
export * from './iace'
|
||||||
export * from './helpers'
|
export * from './helpers'
|
||||||
export * from './document-generator'
|
export * from './document-generator'
|
||||||
|
export * from './dsfa-rag'
|
||||||
|
export * from './wiki'
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ export const SDK_STEPS: SDKStep[] = [
|
|||||||
const level = state.complianceScope?.decision?.determinedLevel
|
const level = state.complianceScope?.decision?.determinedLevel
|
||||||
if (level && ['L2', 'L3', 'L4'].includes(level)) return true
|
if (level && ['L2', 'L3', 'L4'].includes(level)) return true
|
||||||
const triggers = state.complianceScope?.decision?.triggeredHardTriggers || []
|
const triggers = state.complianceScope?.decision?.triggeredHardTriggers || []
|
||||||
return triggers.some(t => t.rule.dsfaRequired)
|
return triggers.some(t => t.requiresDSFA)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
36
admin-compliance/lib/sdk/types/wiki.ts
Normal file
36
admin-compliance/lib/sdk/types/wiki.ts
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
/**
|
||||||
|
* Compliance Wiki types.
|
||||||
|
*/
|
||||||
|
|
||||||
|
export interface WikiCategory {
|
||||||
|
id: string
|
||||||
|
name: string
|
||||||
|
description: string
|
||||||
|
icon: string
|
||||||
|
sortOrder: number
|
||||||
|
articleCount: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface WikiArticle {
|
||||||
|
id: string
|
||||||
|
categoryId: string
|
||||||
|
categoryName: string
|
||||||
|
title: string
|
||||||
|
summary: string
|
||||||
|
content: string
|
||||||
|
legalRefs: string[]
|
||||||
|
tags: string[]
|
||||||
|
relevance: 'critical' | 'important' | 'info'
|
||||||
|
sourceUrls: string[]
|
||||||
|
version: number
|
||||||
|
updatedAt: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface WikiSearchResult {
|
||||||
|
id: string
|
||||||
|
title: string
|
||||||
|
summary: string
|
||||||
|
categoryName: string
|
||||||
|
relevance: string
|
||||||
|
highlight: string
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user