fix: RAG field mapping + flow-data.ts DB-Status + Security-Backlog/Quality Module
All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Successful in 34s
CI / test-python-backend-compliance (push) Successful in 35s
CI / test-python-document-crawler (push) Successful in 21s
CI / test-python-dsms-gateway (push) Successful in 19s

- RAG page.tsx: map r.text, r.regulation_name, r.regulation_code (statt metadata-Nested)
- flow-data.ts: Obligations dbTables=['compliance_obligations'], dbMode='read/write'
- flow-data.ts: Loeschfristen dbTables=['compliance_loeschfristen'], dbMode='read/write'
- flow-data.ts: Security-Backlog + Quality als betrieb-Module ergaenzt (seq 4900/5000, completion 100)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-03-03 19:39:13 +01:00
parent 25d5da78ef
commit d3740ac445
2 changed files with 51 additions and 7 deletions

View File

@@ -404,8 +404,8 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
inputs: ['requirements', 'aiActClassification', 'modules'],
outputs: ['obligationsOverview'],
prerequisiteSteps: ['audit-report'],
dbTables: [],
dbMode: 'none',
dbTables: ['compliance_obligations'],
dbMode: 'read/write',
ragCollections: ['bp_compliance_recht'],
ragPurpose: 'NIS2, DSGVO, AI Act Pflichtentexte',
isOptional: false,
@@ -471,8 +471,8 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
inputs: ['vvt', 'dataMapping'],
outputs: ['retentionPolicies'],
prerequisiteSteps: ['tom'],
dbTables: [],
dbMode: 'none',
dbTables: ['compliance_loeschfristen'],
dbMode: 'read/write',
ragCollections: ['bp_compliance_recht'],
ragPurpose: 'Aufbewahrungsfristen nach Gesetz',
isOptional: false,
@@ -815,6 +815,50 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
isOptional: false,
url: '/sdk/training',
},
{
id: 'security-backlog',
name: 'Security Backlog',
nameShort: 'Sec-Backlog',
package: 'betrieb',
seq: 4900,
checkpointId: 'CP-SEC',
checkpointType: 'RECOMMENDED',
checkpointReviewer: 'NONE',
description: 'Verwaltung offener Sicherheits-Findings: Schwachstellen, Fehlkonfigurationen und Haertungsmassnahmen.',
descriptionLong: 'Der Security Backlog erfasst alle identifizierten IT-Sicherheitsprobleme: CVE-Schwachstellen, Fehlkonfigurationen, Compliance-Luecken und Haertungsmassnahmen. Jeder Befund wird nach Schweregrad (critical/high/medium/low) klassifiziert, CVSS-Scores und betroffene Assets werden dokumentiert.',
legalBasis: 'Art. 32 DSGVO (Sicherheit der Verarbeitung), BSIG / IT-SiG 2.0',
inputs: ['risks', 'controls'],
outputs: ['securityBacklog'],
prerequisiteSteps: ['training'],
dbTables: ['compliance_security_backlog'],
dbMode: 'read/write',
ragCollections: [],
isOptional: true,
url: '/sdk/security-backlog',
completion: 100,
},
{
id: 'quality',
name: 'KI-Qualitaetsmanagement',
nameShort: 'Quality',
package: 'betrieb',
seq: 5000,
checkpointId: 'CP-QUAL',
checkpointType: 'RECOMMENDED',
checkpointReviewer: 'NONE',
description: 'Kontinuierliches Monitoring von KI-Qualitaetsmetriken: Genauigkeit, Fairness, Erklaerbarkeit und Tests.',
descriptionLong: 'Das KI-Qualitaetsmanagement ueberwacht alle KI-Systeme auf Qualitaetsmetriken. Fuer jede Metrik wird ein Schwellenwert definiert; Ueberschreitungen loesen Warnungen aus. Qualitaetstests werden dokumentiert. Liefert Evidence fuer AI-Act High-Risk Anforderungen (Art. 9, Art. 15).',
legalBasis: 'Art. 9 AI Act (Risikomanagementsystem), Art. 15 AI Act (Genauigkeit)',
inputs: ['aiActClassification'],
outputs: ['qualityMetrics'],
prerequisiteSteps: ['security-backlog'],
dbTables: ['compliance_quality_metrics', 'compliance_quality_tests'],
dbMode: 'read/write',
ragCollections: [],
isOptional: true,
url: '/sdk/quality',
completion: 100,
},
]
// =============================================================================

View File

@@ -157,10 +157,10 @@ export default function RAGPage() {
content = 'Zu dieser Frage wurden keine passenden Dokumente gefunden. Bitte formulieren Sie Ihre Frage anders oder waehlen Sie ein spezifischeres Thema.'
} else {
const snippets = results.map((r: any, i: number) => {
const title = r.metadata?.title || r.metadata?.reference || `Dokument ${i + 1}`
const ref = r.metadata?.reference || ''
const title = r.regulation_name || r.regulation_short || `Dokument ${i + 1}`
const ref = r.regulation_code || ''
sources.push({ title, reference: ref, relevance: r.score || 0 })
return `**${title}${ref ? ` (${ref})` : ''}**\n${r.content || ''}`
return `**${title}${ref ? ` (${ref})` : ''}**\n${r.text || ''}`
})
content = snippets.join('\n\n---\n\n')
}