feat(vendor-assessment): Pruefprotokoll + Frontend + Sidebar
Build + Deploy / build-admin-compliance (push) Successful in 2m16s
Build + Deploy / build-backend-compliance (push) Successful in 3m27s
Build + Deploy / build-ai-sdk (push) Successful in 58s
Build + Deploy / build-developer-portal (push) Successful in 1m13s
Build + Deploy / build-tts (push) Successful in 1m43s
Build + Deploy / build-document-crawler (push) Successful in 45s
Build + Deploy / build-dsms-gateway (push) Successful in 30s
Build + Deploy / build-dsms-node (push) Successful in 19s
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / loc-budget (push) Failing after 17s
CI / secret-scan (push) Has been skipped
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / nodejs-build (push) Successful in 2m35s
CI / dep-audit (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / test-go (push) Successful in 43s
CI / test-python-backend (push) Successful in 37s
CI / test-python-document-crawler (push) Successful in 26s
CI / test-python-dsms-gateway (push) Successful in 21s
CI / validate-canonical-controls (push) Successful in 14s
Build + Deploy / trigger-orca (push) Successful in 3m33s

Phase 4-5: Professional Pruefprotokoll report builder with styled HTML
output (Kopfdaten, Kategorie-Scores, L1/L2 Check-Hierarchie, Findings,
Freigabe-Block). Frontend at /sdk/vendor-assessment with 3-step flow:
DocumentUploader → AssessmentProgress → PruefprotokollView.

Sidebar: "Use-Case Audits" → "Vertragspruefung" renamed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-05-12 23:24:12 +02:00
parent 0326d5baab
commit 0b9150f16f
9 changed files with 1119 additions and 3 deletions
@@ -26,6 +26,9 @@ from compliance.services.dsi_document_checker import (
from compliance.services.vendor_assessment_cross_check import (
cross_check_documents,
)
from compliance.services.vendor_assessment_report import (
build_pruefprotokoll,
)
logger = logging.getLogger(__name__)
@@ -84,6 +87,7 @@ class AssessmentResult(BaseModel):
overall_score: int = 0
category_scores: dict[str, int] = {}
cross_check_findings: list[dict] = []
report_html: str = ""
checked_at: str = ""
@@ -320,6 +324,12 @@ async def _run_assessment(assessment_id: str, req: AssessmentRequest):
checked_at=datetime.now(timezone.utc).isoformat(),
)
# 8. Generate Pruefprotokoll HTML
try:
result.report_html = build_pruefprotokoll(result.model_dump())
except Exception as e:
logger.warning("Report generation failed: %s", e)
job["status"] = "completed"
job["progress"] = ""
job["result"] = result