Some checks failed
ci/woodpecker/push/integration Pipeline failed
ci/woodpecker/push/main Pipeline failed
CI/CD Pipeline / Go Tests (push) Has been cancelled
CI/CD Pipeline / Python Tests (push) Has been cancelled
CI/CD Pipeline / Website Tests (push) Has been cancelled
CI/CD Pipeline / Linting (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Docker Build & Push (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / CI Summary (push) Has been cancelled
Security Scanning / Secret Scanning (push) Has been cancelled
Security Scanning / Dependency Vulnerability Scan (push) Has been cancelled
Security Scanning / Go Security Scan (push) Has been cancelled
Security Scanning / Python Security Scan (push) Has been cancelled
Security Scanning / Node.js Security Scan (push) Has been cancelled
Security Scanning / Docker Image Security (push) Has been cancelled
Security Scanning / Security Summary (push) Has been cancelled
Tests / Go Tests (push) Has been cancelled
Tests / Python Tests (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Tests / Go Lint (push) Has been cancelled
Tests / Python Lint (push) Has been cancelled
Tests / Security Scan (push) Has been cancelled
Tests / All Checks Passed (push) Has been cancelled
- Academy, Whistleblower, Incidents frontend pages with API proxies and types - Vendor compliance API proxy route - Go backend handlers and models for all new SDK modules - Investor pitch-deck app with interactive slides - Blog section with DSGVO, AI Act, NIS2, glossary articles - MkDocs documentation site - CI/CD pipelines (Woodpecker, GitHub Actions), security scanning config - Planning and implementation documentation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4605 lines
184 KiB
HTML
4605 lines
184 KiB
HTML
|
|
<!doctype html>
|
|
<html lang="de" class="no-js">
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
|
|
|
|
|
|
<link rel="canonical" href="https://macmini:8008/services/ai-compliance-sdk/ARCHITECTURE/">
|
|
|
|
|
|
<link rel="prev" href="../">
|
|
|
|
|
|
<link rel="next" href="../DEVELOPER/">
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="icon" href="../../../assets/images/favicon.png">
|
|
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.1">
|
|
|
|
|
|
|
|
<title>Architektur - Breakpilot Dokumentation</title>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="../../../assets/stylesheets/main.484c7ddc.min.css">
|
|
|
|
|
|
<link rel="stylesheet" href="../../../assets/stylesheets/palette.ab4e12ef.min.css">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
|
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
|
|
|
|
|
|
|
<script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="teal" data-md-color-accent="indigo">
|
|
|
|
|
|
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
<label class="md-overlay" for="__drawer"></label>
|
|
<div data-md-component="skip">
|
|
|
|
|
|
<a href="#ucca-use-case-compliance-feasibility-advisor" class="md-skip">
|
|
Zum Inhalt
|
|
</a>
|
|
|
|
</div>
|
|
<div data-md-component="announce">
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<header class="md-header" data-md-component="header">
|
|
<nav class="md-header__inner md-grid" aria-label="Kopfzeile">
|
|
<a href="../../.." title="Breakpilot Dokumentation" class="md-header__button md-logo" aria-label="Breakpilot Dokumentation" data-md-component="logo">
|
|
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
|
|
</a>
|
|
<label class="md-header__button md-icon" for="__drawer">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
|
</label>
|
|
<div class="md-header__title" data-md-component="header-title">
|
|
<div class="md-header__ellipsis">
|
|
<div class="md-header__topic">
|
|
<span class="md-ellipsis">
|
|
Breakpilot Dokumentation
|
|
</span>
|
|
</div>
|
|
<div class="md-header__topic" data-md-component="header-topic">
|
|
<span class="md-ellipsis">
|
|
|
|
Architektur
|
|
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<form class="md-header__option" data-md-component="palette">
|
|
|
|
|
|
|
|
|
|
<input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="teal" data-md-color-accent="indigo" aria-label="Dark Mode aktivieren" type="radio" name="__palette" id="__palette_0">
|
|
|
|
<label class="md-header__button md-icon" title="Dark Mode aktivieren" for="__palette_1" hidden>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
|
|
</label>
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="teal" data-md-color-accent="indigo" aria-label="Light Mode aktivieren" type="radio" name="__palette" id="__palette_1">
|
|
|
|
<label class="md-header__button md-icon" title="Light Mode aktivieren" for="__palette_0" hidden>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
|
|
</label>
|
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-header__button md-icon" for="__search">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
</label>
|
|
<div class="md-search" data-md-component="search" role="dialog">
|
|
<label class="md-search__overlay" for="__search"></label>
|
|
<div class="md-search__inner" role="search">
|
|
<form class="md-search__form" name="search">
|
|
<input type="text" class="md-search__input" name="query" aria-label="Suche" placeholder="Suche" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
<label class="md-search__icon md-icon" for="__search">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
</label>
|
|
<nav class="md-search__options" aria-label="Suche">
|
|
|
|
<button type="reset" class="md-search__icon md-icon" title="Zurücksetzen" aria-label="Zurücksetzen" tabindex="-1">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
</button>
|
|
</nav>
|
|
|
|
<div class="md-search__suggest" data-md-component="search-suggest"></div>
|
|
|
|
</form>
|
|
<div class="md-search__output">
|
|
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|
<div class="md-search-result" data-md-component="search-result">
|
|
<div class="md-search-result__meta">
|
|
Suche wird initialisiert
|
|
</div>
|
|
<ol class="md-search-result__list" role="presentation"></ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
</nav>
|
|
|
|
</header>
|
|
|
|
<div class="md-container" data-md-component="container">
|
|
|
|
|
|
|
|
|
|
|
|
<nav class="md-tabs" aria-label="Hauptnavigation" data-md-component="tabs">
|
|
<div class="md-grid">
|
|
<ul class="md-tabs__list">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../../.." class="md-tabs__link">
|
|
|
|
|
|
|
|
|
|
|
|
Start
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../../../getting-started/environment-setup/" class="md-tabs__link">
|
|
|
|
|
|
|
|
Erste Schritte
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../../../architecture/system-architecture/" class="md-tabs__link">
|
|
|
|
|
|
|
|
Architektur
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item md-tabs__item--active">
|
|
<a href="../../ki-daten-pipeline/" class="md-tabs__link">
|
|
|
|
|
|
|
|
Services
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../../../api/backend-api/" class="md-tabs__link">
|
|
|
|
|
|
|
|
API
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../../../development/testing/" class="md-tabs__link">
|
|
|
|
|
|
|
|
Entwicklung
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
|
|
|
|
|
|
<main class="md-main" data-md-component="main">
|
|
<div class="md-main__inner md-grid">
|
|
|
|
|
|
|
|
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
<div class="md-sidebar__scrollwrap">
|
|
<div class="md-sidebar__inner">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
|
|
<label class="md-nav__title" for="__drawer">
|
|
<a href="../../.." title="Breakpilot Dokumentation" class="md-nav__button md-logo" aria-label="Breakpilot Dokumentation" data-md-component="logo">
|
|
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
|
|
|
</a>
|
|
Breakpilot Dokumentation
|
|
</label>
|
|
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../.." class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Start
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Erste Schritte
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Erste Schritte
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../../getting-started/environment-setup/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Umgebung einrichten
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../../getting-started/mac-mini-setup/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Mac Mini Setup
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Architektur
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_3">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Architektur
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../../architecture/system-architecture/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Systemuebersicht
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../../architecture/auth-system/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Auth-System
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../../architecture/mail-rbac-architecture/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Mail-RBAC
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../../architecture/multi-agent/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Multi-Agent
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../../architecture/secrets-management/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Secrets Management
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../../architecture/devsecops/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
DevSecOps
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../../architecture/sdk-protection/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
SDK Protection
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../../architecture/environments/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Environments
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../../architecture/zeugnis-system/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Zeugnis-System
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Services
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true">
|
|
<label class="md-nav__title" for="__nav_4">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Services
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_1" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_1" id="__nav_4_1_label" tabindex="">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
KI-Daten-Pipeline
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_1_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_1">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
KI-Daten-Pipeline
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../ki-daten-pipeline/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Uebersicht
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../ki-daten-pipeline/architecture/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Architektur
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Klausur-Service
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Klausur-Service
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../klausur-service/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Uebersicht
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../klausur-service/byoeh-system-erklaerung/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
BYOEH Systemerklaerung
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../klausur-service/BYOEH-Architecture/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
BYOEH Architektur
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../klausur-service/BYOEH-Developer-Guide/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
BYOEH Developer Guide
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../klausur-service/NiBiS-Ingestion-Pipeline/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
NiBiS Pipeline
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../klausur-service/OCR-Labeling-Spec/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
OCR Labeling
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../klausur-service/OCR-Compare/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
OCR Compare
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../klausur-service/RAG-Admin-Spec/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
RAG Admin
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../klausur-service/Worksheet-Editor-Architecture/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Worksheet Editor
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../voice-service/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Voice-Service
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../agent-core/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Agent-Core
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_5" checked>
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4_5" id="__nav_4_5_label" tabindex="">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
AI-Compliance-SDK
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_5_label" aria-expanded="true">
|
|
<label class="md-nav__title" for="__nav_4_5">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
AI-Compliance-SDK
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Uebersicht
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active">
|
|
|
|
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Architektur
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<a href="./" class="md-nav__link md-nav__link--active">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Architektur
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--secondary" aria-label="Inhaltsverzeichnis">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__title" for="__toc">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Inhaltsverzeichnis
|
|
</label>
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#systemarchitektur" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Systemarchitektur
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Systemarchitektur">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#1-ubersicht" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
1. Übersicht
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#2-kernprinzip" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
2. Kernprinzip
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#3-komponenten" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
3. Komponenten
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="3. Komponenten">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#31-policy-engine-internaluccarulesgo" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
3.1 Policy Engine (internal/ucca/rules.go)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#32-escalation-workflow-internaluccaescalation_go" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
3.2 Escalation Workflow (internal/ucca/escalation_*.go)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#33-legal-rag-internalllmlegal_raggo" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
3.3 Legal RAG (internal/llm/legal_rag.go)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#4-datenfluss" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
4. Datenfluss
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="4. Datenfluss">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#41-assessment-erstellung" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
4.1 Assessment-Erstellung
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#42-erklarung-mit-legal-rag" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
4.2 Erklärung mit Legal RAG
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#5-entscheidungsdiagramm" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
5. Entscheidungsdiagramm
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="5. Entscheidungsdiagramm">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#51-feasibility-entscheidung" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
5.1 Feasibility-Entscheidung
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#52-escalation-level-entscheidung" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
5.2 Escalation-Level-Entscheidung
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#6-datenbank-schema" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
6. Datenbank-Schema
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="6. Datenbank-Schema">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#61-ucca_assessments" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
6.1 ucca_assessments
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#62-ucca_escalations" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
6.2 ucca_escalations
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#63-ucca_dsb_pool" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
6.3 ucca_dsb_pool
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#7-api-endpunkte" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
7. API-Endpunkte
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="7. API-Endpunkte">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#71-assessment" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
7.1 Assessment
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#72-kataloge" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
7.2 Kataloge
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#73-eskalation" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
7.3 Eskalation
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#74-dsb-pool" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
7.4 DSB Pool
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#8-sicherheit" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
8. Sicherheit
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="8. Sicherheit">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#81-authentifizierung" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
8.1 Authentifizierung
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#82-autorisierung" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
8.2 Autorisierung
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#83-datenschutz" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
8.3 Datenschutz
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#9-deployment" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
9. Deployment
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="9. Deployment">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#91-container" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
9.1 Container
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#92-abhangigkeiten" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
9.2 Abhängigkeiten
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#10-monitoring" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
10. Monitoring
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="10. Monitoring">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#101-health-check" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
10.1 Health Check
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#102-metriken" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
10.2 Metriken
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#11-wizard-legal-assistant" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
11. Wizard & Legal Assistant
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="11. Wizard & Legal Assistant">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#111-wizard-architektur" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
11.1 Wizard-Architektur
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#112-legal-assistant-wizard-chat" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
11.2 Legal Assistant (Wizard Chat)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#12-license-policy-engine-standards-compliance" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
12. License Policy Engine (Standards Compliance)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="12. License Policy Engine (Standards Compliance)">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#121-ubersicht" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
12.1 Übersicht
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#122-betriebs-modi-operation-modes" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
12.2 Betriebs-Modi (Operation Modes)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#123-publisher-spezifische-regeln" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
12.3 Publisher-spezifische Regeln
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#124-stop-lines-hard-deny" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
12.4 Stop-Lines (Hard Deny)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#13-scc-transfer-impact-assessment" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
13. SCC & Transfer Impact Assessment
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="13. SCC & Transfer Impact Assessment">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#131-drittlandtransfer-bewertung" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
13.1 Drittlandtransfer-Bewertung
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#132-scc-versionen" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
13.2 SCC-Versionen
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#14-controls-catalog" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
14. Controls Catalog
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="14. Controls Catalog">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#141-ubersicht" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
14.1 Übersicht
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#142-beispiel-controls" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
14.2 Beispiel-Controls
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#15-policy-dateien" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
15. Policy-Dateien
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="15. Policy-Dateien">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#151-dateistruktur" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
15.1 Dateistruktur
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#152-versions-management" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
15.2 Versions-Management
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#16-generic-obligations-framework" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
16. Generic Obligations Framework
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="16. Generic Obligations Framework">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#161-ubersicht" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
16.1 Übersicht
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#162-regulation-modules" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
16.2 Regulation Modules
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#17-obligations-api-endpunkte" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
17. Obligations API-Endpunkte
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="17. Obligations API-Endpunkte">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#171-assessment" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
17.1 Assessment
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#172-export" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
17.2 Export
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#173-regulations" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
17.3 Regulations
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#18-dateien-des-obligations-framework" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
18. Dateien des Obligations Framework
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="18. Dateien des Obligations Framework">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#181-backend-go" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
18.1 Backend (Go)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#182-policy-dateien-yaml" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
18.2 Policy-Dateien (YAML)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../DEVELOPER/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Developer Guide
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../AUDITOR_DOCUMENTATION/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Auditor Dokumentation
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../SBOM/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
SBOM
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
API
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_5">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
API
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../../api/backend-api/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Backend API
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Entwicklung
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_6">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
|
|
|
|
Entwicklung
|
|
|
|
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../../development/testing/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Testing
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../../development/documentation/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
Dokumentation
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../../../development/ci-cd-pipeline/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
|
|
|
|
CI/CD Pipeline
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
|
<div class="md-sidebar__scrollwrap">
|
|
<div class="md-sidebar__inner">
|
|
|
|
|
|
<nav class="md-nav md-nav--secondary" aria-label="Inhaltsverzeichnis">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__title" for="__toc">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Inhaltsverzeichnis
|
|
</label>
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#systemarchitektur" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
Systemarchitektur
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Systemarchitektur">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#1-ubersicht" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
1. Übersicht
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#2-kernprinzip" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
2. Kernprinzip
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#3-komponenten" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
3. Komponenten
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="3. Komponenten">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#31-policy-engine-internaluccarulesgo" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
3.1 Policy Engine (internal/ucca/rules.go)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#32-escalation-workflow-internaluccaescalation_go" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
3.2 Escalation Workflow (internal/ucca/escalation_*.go)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#33-legal-rag-internalllmlegal_raggo" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
3.3 Legal RAG (internal/llm/legal_rag.go)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#4-datenfluss" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
4. Datenfluss
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="4. Datenfluss">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#41-assessment-erstellung" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
4.1 Assessment-Erstellung
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#42-erklarung-mit-legal-rag" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
4.2 Erklärung mit Legal RAG
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#5-entscheidungsdiagramm" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
5. Entscheidungsdiagramm
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="5. Entscheidungsdiagramm">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#51-feasibility-entscheidung" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
5.1 Feasibility-Entscheidung
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#52-escalation-level-entscheidung" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
5.2 Escalation-Level-Entscheidung
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#6-datenbank-schema" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
6. Datenbank-Schema
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="6. Datenbank-Schema">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#61-ucca_assessments" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
6.1 ucca_assessments
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#62-ucca_escalations" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
6.2 ucca_escalations
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#63-ucca_dsb_pool" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
6.3 ucca_dsb_pool
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#7-api-endpunkte" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
7. API-Endpunkte
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="7. API-Endpunkte">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#71-assessment" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
7.1 Assessment
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#72-kataloge" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
7.2 Kataloge
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#73-eskalation" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
7.3 Eskalation
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#74-dsb-pool" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
7.4 DSB Pool
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#8-sicherheit" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
8. Sicherheit
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="8. Sicherheit">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#81-authentifizierung" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
8.1 Authentifizierung
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#82-autorisierung" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
8.2 Autorisierung
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#83-datenschutz" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
8.3 Datenschutz
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#9-deployment" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
9. Deployment
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="9. Deployment">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#91-container" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
9.1 Container
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#92-abhangigkeiten" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
9.2 Abhängigkeiten
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#10-monitoring" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
10. Monitoring
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="10. Monitoring">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#101-health-check" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
10.1 Health Check
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#102-metriken" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
10.2 Metriken
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#11-wizard-legal-assistant" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
11. Wizard & Legal Assistant
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="11. Wizard & Legal Assistant">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#111-wizard-architektur" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
11.1 Wizard-Architektur
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#112-legal-assistant-wizard-chat" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
11.2 Legal Assistant (Wizard Chat)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#12-license-policy-engine-standards-compliance" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
12. License Policy Engine (Standards Compliance)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="12. License Policy Engine (Standards Compliance)">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#121-ubersicht" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
12.1 Übersicht
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#122-betriebs-modi-operation-modes" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
12.2 Betriebs-Modi (Operation Modes)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#123-publisher-spezifische-regeln" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
12.3 Publisher-spezifische Regeln
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#124-stop-lines-hard-deny" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
12.4 Stop-Lines (Hard Deny)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#13-scc-transfer-impact-assessment" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
13. SCC & Transfer Impact Assessment
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="13. SCC & Transfer Impact Assessment">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#131-drittlandtransfer-bewertung" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
13.1 Drittlandtransfer-Bewertung
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#132-scc-versionen" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
13.2 SCC-Versionen
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#14-controls-catalog" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
14. Controls Catalog
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="14. Controls Catalog">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#141-ubersicht" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
14.1 Übersicht
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#142-beispiel-controls" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
14.2 Beispiel-Controls
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#15-policy-dateien" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
15. Policy-Dateien
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="15. Policy-Dateien">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#151-dateistruktur" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
15.1 Dateistruktur
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#152-versions-management" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
15.2 Versions-Management
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#16-generic-obligations-framework" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
16. Generic Obligations Framework
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="16. Generic Obligations Framework">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#161-ubersicht" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
16.1 Übersicht
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#162-regulation-modules" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
16.2 Regulation Modules
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#17-obligations-api-endpunkte" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
17. Obligations API-Endpunkte
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="17. Obligations API-Endpunkte">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#171-assessment" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
17.1 Assessment
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#172-export" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
17.2 Export
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#173-regulations" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
17.3 Regulations
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#18-dateien-des-obligations-framework" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
18. Dateien des Obligations Framework
|
|
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="18. Dateien des Obligations Framework">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#181-backend-go" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
18.1 Backend (Go)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#182-policy-dateien-yaml" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
|
|
18.2 Policy-Dateien (YAML)
|
|
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="md-content" data-md-component="content">
|
|
|
|
<article class="md-content__inner md-typeset">
|
|
|
|
|
|
|
|
|
|
|
|
<h1 id="ucca-use-case-compliance-feasibility-advisor">UCCA - Use-Case Compliance & Feasibility Advisor<a class="headerlink" href="#ucca-use-case-compliance-feasibility-advisor" title="Permanent link">¶</a></h1>
|
|
<h2 id="systemarchitektur">Systemarchitektur<a class="headerlink" href="#systemarchitektur" title="Permanent link">¶</a></h2>
|
|
<h3 id="1-ubersicht">1. Übersicht<a class="headerlink" href="#1-ubersicht" title="Permanent link">¶</a></h3>
|
|
<p>Das UCCA-System ist ein <strong>deterministisches Compliance-Bewertungssystem</strong> für KI-Anwendungsfälle. Es kombiniert regelbasierte Evaluation mit optionaler LLM-Erklärung und semantischer Rechtstextsuche.</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>┌─────────────────────────────────────────────────────────────────────────────┐
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a>│ UCCA System │
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>├─────────────────────────────────────────────────────────────────────────────┤
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>│ │
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a>│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a>│ │ Frontend │───>│ SDK API │───>│ PostgreSQL │ │
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a>│ │ (Next.js) │ │ (Go) │ │ Database │ │
|
|
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a>│ └──────────────┘ └──────┬───────┘ └──────────────┘ │
|
|
<a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a>│ │ │
|
|
<a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a>│ ┌────────────────────┼────────────────────┐ │
|
|
<a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a>│ │ │ │ │
|
|
<a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a>│ ▼ ▼ ▼ │
|
|
<a id="__codelineno-0-13" name="__codelineno-0-13" href="#__codelineno-0-13"></a>│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
<a id="__codelineno-0-14" name="__codelineno-0-14" href="#__codelineno-0-14"></a>│ │ Policy │ │ Escalation │ │ Legal RAG │ │
|
|
<a id="__codelineno-0-15" name="__codelineno-0-15" href="#__codelineno-0-15"></a>│ │ Engine │ │ Workflow │ │ (Qdrant) │ │
|
|
<a id="__codelineno-0-16" name="__codelineno-0-16" href="#__codelineno-0-16"></a>│ │ (45 Regeln) │ │ (E0-E3) │ │ 2,274 Chunks │ │
|
|
<a id="__codelineno-0-17" name="__codelineno-0-17" href="#__codelineno-0-17"></a>│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
<a id="__codelineno-0-18" name="__codelineno-0-18" href="#__codelineno-0-18"></a>│ │ │ │ │
|
|
<a id="__codelineno-0-19" name="__codelineno-0-19" href="#__codelineno-0-19"></a>│ └────────────────────┴────────────────────┘ │
|
|
<a id="__codelineno-0-20" name="__codelineno-0-20" href="#__codelineno-0-20"></a>│ │ │
|
|
<a id="__codelineno-0-21" name="__codelineno-0-21" href="#__codelineno-0-21"></a>│ ▼ │
|
|
<a id="__codelineno-0-22" name="__codelineno-0-22" href="#__codelineno-0-22"></a>│ ┌──────────────┐ │
|
|
<a id="__codelineno-0-23" name="__codelineno-0-23" href="#__codelineno-0-23"></a>│ │ LLM Provider │ │
|
|
<a id="__codelineno-0-24" name="__codelineno-0-24" href="#__codelineno-0-24"></a>│ │ (Ollama/API) │ │
|
|
<a id="__codelineno-0-25" name="__codelineno-0-25" href="#__codelineno-0-25"></a>│ └──────────────┘ │
|
|
<a id="__codelineno-0-26" name="__codelineno-0-26" href="#__codelineno-0-26"></a>│ │
|
|
<a id="__codelineno-0-27" name="__codelineno-0-27" href="#__codelineno-0-27"></a>└─────────────────────────────────────────────────────────────────────────────┘
|
|
</code></pre></div>
|
|
<h3 id="2-kernprinzip">2. Kernprinzip<a class="headerlink" href="#2-kernprinzip" title="Permanent link">¶</a></h3>
|
|
<blockquote>
|
|
<p><strong>"LLM ist NICHT die Quelle der Wahrheit. Wahrheit = Regeln + Evidenz. LLM = Übersetzer + Subsumptionshelfer"</strong></p>
|
|
</blockquote>
|
|
<p>Das System folgt einem strikten <strong>Human-in-the-Loop</strong> Ansatz:</p>
|
|
<ol>
|
|
<li><strong>Deterministische Regeln</strong> treffen alle Compliance-Entscheidungen</li>
|
|
<li><strong>LLM</strong> erklärt nur Ergebnisse, überschreibt nie BLOCK-Entscheidungen</li>
|
|
<li><strong>Menschen</strong> (DSB, Legal) treffen finale Entscheidungen bei kritischen Fällen</li>
|
|
</ol>
|
|
<hr />
|
|
<h2 id="3-komponenten">3. Komponenten<a class="headerlink" href="#3-komponenten" title="Permanent link">¶</a></h2>
|
|
<h3 id="31-policy-engine-internaluccarulesgo">3.1 Policy Engine (<code>internal/ucca/rules.go</code>)<a class="headerlink" href="#31-policy-engine-internaluccarulesgo" title="Permanent link">¶</a></h3>
|
|
<p>Die Policy Engine evaluiert Use-Cases gegen ~45 deterministische Regeln.</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>┌─────────────────────────────────────────────────────────────────┐
|
|
<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a>│ Policy Engine │
|
|
<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a>├─────────────────────────────────────────────────────────────────┤
|
|
<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a>│ │
|
|
<a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a>│ UseCaseIntake ──────────────────────────────────────────────> │
|
|
<a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a>│ │ │
|
|
<a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a>│ ▼ │
|
|
<a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a>│ ┌─────────────────────────────────────────────────────────────┐ │
|
|
<a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a>│ │ Regelkategorien (A-J) │ │
|
|
<a id="__codelineno-1-10" name="__codelineno-1-10" href="#__codelineno-1-10"></a>│ ├─────────────────────────────────────────────────────────────┤ │
|
|
<a id="__codelineno-1-11" name="__codelineno-1-11" href="#__codelineno-1-11"></a>│ │ A. Datenklassifikation │ R-001 bis R-006 │ 6 Regeln │ │
|
|
<a id="__codelineno-1-12" name="__codelineno-1-12" href="#__codelineno-1-12"></a>│ │ B. Zweck & Kontext │ R-010 bis R-013 │ 4 Regeln │ │
|
|
<a id="__codelineno-1-13" name="__codelineno-1-13" href="#__codelineno-1-13"></a>│ │ C. Automatisierung │ R-020 bis R-025 │ 6 Regeln │ │
|
|
<a id="__codelineno-1-14" name="__codelineno-1-14" href="#__codelineno-1-14"></a>│ │ D. Training vs Nutzung │ R-030 bis R-035 │ 6 Regeln │ │
|
|
<a id="__codelineno-1-15" name="__codelineno-1-15" href="#__codelineno-1-15"></a>│ │ E. Speicherung │ R-040 bis R-042 │ 3 Regeln │ │
|
|
<a id="__codelineno-1-16" name="__codelineno-1-16" href="#__codelineno-1-16"></a>│ │ F. Hosting │ R-050 bis R-052 │ 3 Regeln │ │
|
|
<a id="__codelineno-1-17" name="__codelineno-1-17" href="#__codelineno-1-17"></a>│ │ G. Transparenz │ R-060 bis R-062 │ 3 Regeln │ │
|
|
<a id="__codelineno-1-18" name="__codelineno-1-18" href="#__codelineno-1-18"></a>│ │ H. Domain-spezifisch │ R-070 bis R-074 │ 5 Regeln │ │
|
|
<a id="__codelineno-1-19" name="__codelineno-1-19" href="#__codelineno-1-19"></a>│ │ I. Aggregation │ R-090 bis R-092 │ 3 Regeln │ │
|
|
<a id="__codelineno-1-20" name="__codelineno-1-20" href="#__codelineno-1-20"></a>│ │ J. Erklärung │ R-100 │ 1 Regel │ │
|
|
<a id="__codelineno-1-21" name="__codelineno-1-21" href="#__codelineno-1-21"></a>│ └─────────────────────────────────────────────────────────────┘ │
|
|
<a id="__codelineno-1-22" name="__codelineno-1-22" href="#__codelineno-1-22"></a>│ │ │
|
|
<a id="__codelineno-1-23" name="__codelineno-1-23" href="#__codelineno-1-23"></a>│ ▼ │
|
|
<a id="__codelineno-1-24" name="__codelineno-1-24" href="#__codelineno-1-24"></a>│ AssessmentResult │
|
|
<a id="__codelineno-1-25" name="__codelineno-1-25" href="#__codelineno-1-25"></a>│ ├── feasibility: YES | CONDITIONAL | NO │
|
|
<a id="__codelineno-1-26" name="__codelineno-1-26" href="#__codelineno-1-26"></a>│ ├── risk_score: 0-100 │
|
|
<a id="__codelineno-1-27" name="__codelineno-1-27" href="#__codelineno-1-27"></a>│ ├── risk_level: MINIMAL | LOW | MEDIUM | HIGH | CRITICAL │
|
|
<a id="__codelineno-1-28" name="__codelineno-1-28" href="#__codelineno-1-28"></a>│ ├── triggered_rules: []TriggeredRule │
|
|
<a id="__codelineno-1-29" name="__codelineno-1-29" href="#__codelineno-1-29"></a>│ ├── required_controls: []RequiredControl │
|
|
<a id="__codelineno-1-30" name="__codelineno-1-30" href="#__codelineno-1-30"></a>│ ├── recommended_architecture: []PatternRecommendation │
|
|
<a id="__codelineno-1-31" name="__codelineno-1-31" href="#__codelineno-1-31"></a>│ └── forbidden_patterns: []ForbiddenPattern │
|
|
<a id="__codelineno-1-32" name="__codelineno-1-32" href="#__codelineno-1-32"></a>│ │
|
|
<a id="__codelineno-1-33" name="__codelineno-1-33" href="#__codelineno-1-33"></a>└─────────────────────────────────────────────────────────────────┘
|
|
</code></pre></div>
|
|
<p><strong>Regel-Severities:</strong>
|
|
- <code>INFO</code>: Informativ, kein Risiko-Impact
|
|
- <code>WARN</code>: Warnung, erhöht Risk Score
|
|
- <code>BLOCK</code>: Kritisch, führt zu <code>feasibility=NO</code></p>
|
|
<h3 id="32-escalation-workflow-internaluccaescalation_go">3.2 Escalation Workflow (<code>internal/ucca/escalation_*.go</code>)<a class="headerlink" href="#32-escalation-workflow-internaluccaescalation_go" title="Permanent link">¶</a></h3>
|
|
<p>Das Eskalationssystem routet kritische Assessments zur menschlichen Prüfung.</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>┌─────────────────────────────────────────────────────────────────┐
|
|
<a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>│ Escalation Workflow │
|
|
<a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a>├─────────────────────────────────────────────────────────────────┤
|
|
<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a>│ │
|
|
<a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a>│ AssessmentResult ─────────────────────────────────────────────> │
|
|
<a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a>│ │ │
|
|
<a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a>│ ▼ │
|
|
<a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a>│ ┌─────────────────────────────────────────────────────────────┐ │
|
|
<a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a>│ │ Escalation Level Determination │ │
|
|
<a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a>│ ├─────────────────────────────────────────────────────────────┤ │
|
|
<a id="__codelineno-2-11" name="__codelineno-2-11" href="#__codelineno-2-11"></a>│ │ │ │
|
|
<a id="__codelineno-2-12" name="__codelineno-2-12" href="#__codelineno-2-12"></a>│ │ E0: Nur INFO-Regeln, Risk < 20 │ │
|
|
<a id="__codelineno-2-13" name="__codelineno-2-13" href="#__codelineno-2-13"></a>│ │ → Auto-Approve, keine menschliche Prüfung │ │
|
|
<a id="__codelineno-2-14" name="__codelineno-2-14" href="#__codelineno-2-14"></a>│ │ │ │
|
|
<a id="__codelineno-2-15" name="__codelineno-2-15" href="#__codelineno-2-15"></a>│ │ E1: WARN-Regeln, Risk 20-39 │ │
|
|
<a id="__codelineno-2-16" name="__codelineno-2-16" href="#__codelineno-2-16"></a>│ │ → Team-Lead Review (SLA: 24h) │ │
|
|
<a id="__codelineno-2-17" name="__codelineno-2-17" href="#__codelineno-2-17"></a>│ │ │ │
|
|
<a id="__codelineno-2-18" name="__codelineno-2-18" href="#__codelineno-2-18"></a>│ │ E2: Art.9 Daten ODER Risk 40-59 ODER DSFA empfohlen │ │
|
|
<a id="__codelineno-2-19" name="__codelineno-2-19" href="#__codelineno-2-19"></a>│ │ → DSB Consultation (SLA: 8h) │ │
|
|
<a id="__codelineno-2-20" name="__codelineno-2-20" href="#__codelineno-2-20"></a>│ │ │ │
|
|
<a id="__codelineno-2-21" name="__codelineno-2-21" href="#__codelineno-2-21"></a>│ │ E3: BLOCK-Regel ODER Risk ≥60 ODER Art.22 Risiko │ │
|
|
<a id="__codelineno-2-22" name="__codelineno-2-22" href="#__codelineno-2-22"></a>│ │ → DSB + Legal Review (SLA: 4h) │ │
|
|
<a id="__codelineno-2-23" name="__codelineno-2-23" href="#__codelineno-2-23"></a>│ │ │ │
|
|
<a id="__codelineno-2-24" name="__codelineno-2-24" href="#__codelineno-2-24"></a>│ └─────────────────────────────────────────────────────────────┘ │
|
|
<a id="__codelineno-2-25" name="__codelineno-2-25" href="#__codelineno-2-25"></a>│ │ │
|
|
<a id="__codelineno-2-26" name="__codelineno-2-26" href="#__codelineno-2-26"></a>│ ▼ │
|
|
<a id="__codelineno-2-27" name="__codelineno-2-27" href="#__codelineno-2-27"></a>│ ┌─────────────────────────────────────────────────────────────┐ │
|
|
<a id="__codelineno-2-28" name="__codelineno-2-28" href="#__codelineno-2-28"></a>│ │ DSB Pool Assignment │ │
|
|
<a id="__codelineno-2-29" name="__codelineno-2-29" href="#__codelineno-2-29"></a>│ ├─────────────────────────────────────────────────────────────┤ │
|
|
<a id="__codelineno-2-30" name="__codelineno-2-30" href="#__codelineno-2-30"></a>│ │ Role │ Level │ Max Concurrent │ Auto-Assign │ │
|
|
<a id="__codelineno-2-31" name="__codelineno-2-31" href="#__codelineno-2-31"></a>│ │ ──────────────┼───────┼────────────────┼────────────────── │ │
|
|
<a id="__codelineno-2-32" name="__codelineno-2-32" href="#__codelineno-2-32"></a>│ │ team_lead │ E1 │ 10 │ Round-Robin │ │
|
|
<a id="__codelineno-2-33" name="__codelineno-2-33" href="#__codelineno-2-33"></a>│ │ dsb │ E2,E3 │ 5 │ Workload-Based │ │
|
|
<a id="__codelineno-2-34" name="__codelineno-2-34" href="#__codelineno-2-34"></a>│ │ legal │ E3 │ 3 │ Workload-Based │ │
|
|
<a id="__codelineno-2-35" name="__codelineno-2-35" href="#__codelineno-2-35"></a>│ └─────────────────────────────────────────────────────────────┘ │
|
|
<a id="__codelineno-2-36" name="__codelineno-2-36" href="#__codelineno-2-36"></a>│ │ │
|
|
<a id="__codelineno-2-37" name="__codelineno-2-37" href="#__codelineno-2-37"></a>│ ▼ │
|
|
<a id="__codelineno-2-38" name="__codelineno-2-38" href="#__codelineno-2-38"></a>│ Escalation Status Flow: │
|
|
<a id="__codelineno-2-39" name="__codelineno-2-39" href="#__codelineno-2-39"></a>│ │
|
|
<a id="__codelineno-2-40" name="__codelineno-2-40" href="#__codelineno-2-40"></a>│ pending → assigned → in_review → approved/rejected/returned │
|
|
<a id="__codelineno-2-41" name="__codelineno-2-41" href="#__codelineno-2-41"></a>│ │
|
|
<a id="__codelineno-2-42" name="__codelineno-2-42" href="#__codelineno-2-42"></a>└─────────────────────────────────────────────────────────────────┘
|
|
</code></pre></div>
|
|
<h3 id="33-legal-rag-internalllmlegal_raggo">3.3 Legal RAG (<code>internal/llm/legal_rag.go</code>)<a class="headerlink" href="#33-legal-rag-internalllmlegal_raggo" title="Permanent link">¶</a></h3>
|
|
<p>Semantische Suche in 19 EU-Regulierungen für kontextbasierte Erklärungen.</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>┌─────────────────────────────────────────────────────────────────┐
|
|
<a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a>│ Legal RAG System │
|
|
<a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a>├─────────────────────────────────────────────────────────────────┤
|
|
<a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a>│ │
|
|
<a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a>│ Explain Request ──────────────────────────────────────────────> │
|
|
<a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a>│ │ │
|
|
<a id="__codelineno-3-7" name="__codelineno-3-7" href="#__codelineno-3-7"></a>│ ▼ │
|
|
<a id="__codelineno-3-8" name="__codelineno-3-8" href="#__codelineno-3-8"></a>│ ┌─────────────────────────────────────────────────────────────┐ │
|
|
<a id="__codelineno-3-9" name="__codelineno-3-9" href="#__codelineno-3-9"></a>│ │ Qdrant Vector DB │ │
|
|
<a id="__codelineno-3-10" name="__codelineno-3-10" href="#__codelineno-3-10"></a>│ │ Collection: bp_legal_corpus │ │
|
|
<a id="__codelineno-3-11" name="__codelineno-3-11" href="#__codelineno-3-11"></a>│ │ 2,274 Chunks, 1024-dim BGE-M3 │ │
|
|
<a id="__codelineno-3-12" name="__codelineno-3-12" href="#__codelineno-3-12"></a>│ ├─────────────────────────────────────────────────────────────┤ │
|
|
<a id="__codelineno-3-13" name="__codelineno-3-13" href="#__codelineno-3-13"></a>│ │ │ │
|
|
<a id="__codelineno-3-14" name="__codelineno-3-14" href="#__codelineno-3-14"></a>│ │ EU-Verordnungen: │ │
|
|
<a id="__codelineno-3-15" name="__codelineno-3-15" href="#__codelineno-3-15"></a>│ │ ├── DSGVO (128) ├── AI Act (96) ├── NIS2 (128) │ │
|
|
<a id="__codelineno-3-16" name="__codelineno-3-16" href="#__codelineno-3-16"></a>│ │ ├── CRA (256) ├── Data Act (256) ├── DSA (256) │ │
|
|
<a id="__codelineno-3-17" name="__codelineno-3-17" href="#__codelineno-3-17"></a>│ │ ├── DGA (32) ├── EUCSA (32) ├── DPF (714) │ │
|
|
<a id="__codelineno-3-18" name="__codelineno-3-18" href="#__codelineno-3-18"></a>│ │ └── ... │ │
|
|
<a id="__codelineno-3-19" name="__codelineno-3-19" href="#__codelineno-3-19"></a>│ │ │ │
|
|
<a id="__codelineno-3-20" name="__codelineno-3-20" href="#__codelineno-3-20"></a>│ │ Deutsche Gesetze: │ │
|
|
<a id="__codelineno-3-21" name="__codelineno-3-21" href="#__codelineno-3-21"></a>│ │ ├── TDDDG (1) ├── SCC (32) ├── ... │ │
|
|
<a id="__codelineno-3-22" name="__codelineno-3-22" href="#__codelineno-3-22"></a>│ │ │ │
|
|
<a id="__codelineno-3-23" name="__codelineno-3-23" href="#__codelineno-3-23"></a>│ │ BSI-Standards: │ │
|
|
<a id="__codelineno-3-24" name="__codelineno-3-24" href="#__codelineno-3-24"></a>│ │ ├── TR-03161-1 (6) ├── TR-03161-2 (6) ├── TR-03161-3 │ │
|
|
<a id="__codelineno-3-25" name="__codelineno-3-25" href="#__codelineno-3-25"></a>│ │ │ │
|
|
<a id="__codelineno-3-26" name="__codelineno-3-26" href="#__codelineno-3-26"></a>│ └─────────────────────────────────────────────────────────────┘ │
|
|
<a id="__codelineno-3-27" name="__codelineno-3-27" href="#__codelineno-3-27"></a>│ │ │
|
|
<a id="__codelineno-3-28" name="__codelineno-3-28" href="#__codelineno-3-28"></a>│ │ Hybrid Search (Dense + Sparse) │
|
|
<a id="__codelineno-3-29" name="__codelineno-3-29" href="#__codelineno-3-29"></a>│ │ Re-Ranking (Cross-Encoder) │
|
|
<a id="__codelineno-3-30" name="__codelineno-3-30" href="#__codelineno-3-30"></a>│ ▼ │
|
|
<a id="__codelineno-3-31" name="__codelineno-3-31" href="#__codelineno-3-31"></a>│ Top-K Relevant Passages ─────────────────────────────────────> │
|
|
<a id="__codelineno-3-32" name="__codelineno-3-32" href="#__codelineno-3-32"></a>│ │ │
|
|
<a id="__codelineno-3-33" name="__codelineno-3-33" href="#__codelineno-3-33"></a>│ ▼ │
|
|
<a id="__codelineno-3-34" name="__codelineno-3-34" href="#__codelineno-3-34"></a>│ ┌─────────────────────────────────────────────────────────────┐ │
|
|
<a id="__codelineno-3-35" name="__codelineno-3-35" href="#__codelineno-3-35"></a>│ │ LLM Explanation │ │
|
|
<a id="__codelineno-3-36" name="__codelineno-3-36" href="#__codelineno-3-36"></a>│ │ Provider: Ollama (local) / Anthropic (fallback) │ │
|
|
<a id="__codelineno-3-37" name="__codelineno-3-37" href="#__codelineno-3-37"></a>│ │ Prompt: Assessment + Legal Context → Erklärung │ │
|
|
<a id="__codelineno-3-38" name="__codelineno-3-38" href="#__codelineno-3-38"></a>│ └─────────────────────────────────────────────────────────────┘ │
|
|
<a id="__codelineno-3-39" name="__codelineno-3-39" href="#__codelineno-3-39"></a>│ │
|
|
<a id="__codelineno-3-40" name="__codelineno-3-40" href="#__codelineno-3-40"></a>└─────────────────────────────────────────────────────────────────┘
|
|
</code></pre></div>
|
|
<hr />
|
|
<h2 id="4-datenfluss">4. Datenfluss<a class="headerlink" href="#4-datenfluss" title="Permanent link">¶</a></h2>
|
|
<h3 id="41-assessment-erstellung">4.1 Assessment-Erstellung<a class="headerlink" href="#41-assessment-erstellung" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>User Input (Frontend)
|
|
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a> │
|
|
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a> ▼
|
|
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a>POST /sdk/v1/ucca/assess
|
|
<a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a> │
|
|
<a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a> ├──────────────────────────────────────────┐
|
|
<a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a> │ │
|
|
<a id="__codelineno-4-8" name="__codelineno-4-8" href="#__codelineno-4-8"></a> ▼ ▼
|
|
<a id="__codelineno-4-9" name="__codelineno-4-9" href="#__codelineno-4-9"></a>┌──────────────┐ ┌──────────────┐
|
|
<a id="__codelineno-4-10" name="__codelineno-4-10" href="#__codelineno-4-10"></a>│ Policy │ │ Escalation │
|
|
<a id="__codelineno-4-11" name="__codelineno-4-11" href="#__codelineno-4-11"></a>│ Engine │ │ Trigger │
|
|
<a id="__codelineno-4-12" name="__codelineno-4-12" href="#__codelineno-4-12"></a>│ Evaluation │ │ Check │
|
|
<a id="__codelineno-4-13" name="__codelineno-4-13" href="#__codelineno-4-13"></a>└──────┬───────┘ └──────┬───────┘
|
|
<a id="__codelineno-4-14" name="__codelineno-4-14" href="#__codelineno-4-14"></a> │ │
|
|
<a id="__codelineno-4-15" name="__codelineno-4-15" href="#__codelineno-4-15"></a> │ AssessmentResult │ EscalationLevel
|
|
<a id="__codelineno-4-16" name="__codelineno-4-16" href="#__codelineno-4-16"></a> │ │
|
|
<a id="__codelineno-4-17" name="__codelineno-4-17" href="#__codelineno-4-17"></a> ▼ ▼
|
|
<a id="__codelineno-4-18" name="__codelineno-4-18" href="#__codelineno-4-18"></a>┌──────────────────────────────────────────────────────┐
|
|
<a id="__codelineno-4-19" name="__codelineno-4-19" href="#__codelineno-4-19"></a>│ PostgreSQL │
|
|
<a id="__codelineno-4-20" name="__codelineno-4-20" href="#__codelineno-4-20"></a>│ ├── ucca_assessments (Assessment + Result) │
|
|
<a id="__codelineno-4-21" name="__codelineno-4-21" href="#__codelineno-4-21"></a>│ └── ucca_escalations (wenn Level > E0) │
|
|
<a id="__codelineno-4-22" name="__codelineno-4-22" href="#__codelineno-4-22"></a>└──────────────────────────────────────────────────────┘
|
|
<a id="__codelineno-4-23" name="__codelineno-4-23" href="#__codelineno-4-23"></a> │
|
|
<a id="__codelineno-4-24" name="__codelineno-4-24" href="#__codelineno-4-24"></a> │ If Level > E0
|
|
<a id="__codelineno-4-25" name="__codelineno-4-25" href="#__codelineno-4-25"></a> ▼
|
|
<a id="__codelineno-4-26" name="__codelineno-4-26" href="#__codelineno-4-26"></a>┌──────────────┐
|
|
<a id="__codelineno-4-27" name="__codelineno-4-27" href="#__codelineno-4-27"></a>│ DSB Pool │
|
|
<a id="__codelineno-4-28" name="__codelineno-4-28" href="#__codelineno-4-28"></a>│ Auto-Assign │
|
|
<a id="__codelineno-4-29" name="__codelineno-4-29" href="#__codelineno-4-29"></a>└──────────────┘
|
|
<a id="__codelineno-4-30" name="__codelineno-4-30" href="#__codelineno-4-30"></a> │
|
|
<a id="__codelineno-4-31" name="__codelineno-4-31" href="#__codelineno-4-31"></a> ▼
|
|
<a id="__codelineno-4-32" name="__codelineno-4-32" href="#__codelineno-4-32"></a>Notification (E-Mail/Webhook)
|
|
</code></pre></div>
|
|
<h3 id="42-erklarung-mit-legal-rag">4.2 Erklärung mit Legal RAG<a class="headerlink" href="#42-erklarung-mit-legal-rag" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>POST /sdk/v1/ucca/assessments/:id/explain
|
|
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a> │
|
|
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a> ▼
|
|
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a>┌──────────────┐
|
|
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a>│ Load │
|
|
<a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a>│ Assessment │
|
|
<a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a>└──────┬───────┘
|
|
<a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a> │
|
|
<a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a> ▼
|
|
<a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a>┌──────────────┐ Query Vector ┌──────────────┐
|
|
<a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-11"></a>│ Extract │ ──────────────────>│ Qdrant │
|
|
<a id="__codelineno-5-12" name="__codelineno-5-12" href="#__codelineno-5-12"></a>│ Keywords │ │ bp_legal_ │
|
|
<a id="__codelineno-5-13" name="__codelineno-5-13" href="#__codelineno-5-13"></a>│ from Rules │<───────────────────│ corpus │
|
|
<a id="__codelineno-5-14" name="__codelineno-5-14" href="#__codelineno-5-14"></a>└──────┬───────┘ Top-K Docs └──────────────┘
|
|
<a id="__codelineno-5-15" name="__codelineno-5-15" href="#__codelineno-5-15"></a> │
|
|
<a id="__codelineno-5-16" name="__codelineno-5-16" href="#__codelineno-5-16"></a> │ Assessment + Legal Context
|
|
<a id="__codelineno-5-17" name="__codelineno-5-17" href="#__codelineno-5-17"></a> ▼
|
|
<a id="__codelineno-5-18" name="__codelineno-5-18" href="#__codelineno-5-18"></a>┌──────────────┐
|
|
<a id="__codelineno-5-19" name="__codelineno-5-19" href="#__codelineno-5-19"></a>│ LLM │
|
|
<a id="__codelineno-5-20" name="__codelineno-5-20" href="#__codelineno-5-20"></a>│ Provider │
|
|
<a id="__codelineno-5-21" name="__codelineno-5-21" href="#__codelineno-5-21"></a>│ Registry │
|
|
<a id="__codelineno-5-22" name="__codelineno-5-22" href="#__codelineno-5-22"></a>└──────┬───────┘
|
|
<a id="__codelineno-5-23" name="__codelineno-5-23" href="#__codelineno-5-23"></a> │
|
|
<a id="__codelineno-5-24" name="__codelineno-5-24" href="#__codelineno-5-24"></a> ▼
|
|
<a id="__codelineno-5-25" name="__codelineno-5-25" href="#__codelineno-5-25"></a>Explanation (DE) + Legal References
|
|
</code></pre></div>
|
|
<hr />
|
|
<h2 id="5-entscheidungsdiagramm">5. Entscheidungsdiagramm<a class="headerlink" href="#5-entscheidungsdiagramm" title="Permanent link">¶</a></h2>
|
|
<h3 id="51-feasibility-entscheidung">5.1 Feasibility-Entscheidung<a class="headerlink" href="#51-feasibility-entscheidung" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a> UseCaseIntake
|
|
<a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a> │
|
|
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a> ▼
|
|
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a> ┌─────────────────────┐
|
|
<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a> │ Hat BLOCK-Regeln? │
|
|
<a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a> └──────────┬──────────┘
|
|
<a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a> │ │
|
|
<a id="__codelineno-6-8" name="__codelineno-6-8" href="#__codelineno-6-8"></a> Ja Nein
|
|
<a id="__codelineno-6-9" name="__codelineno-6-9" href="#__codelineno-6-9"></a> │ │
|
|
<a id="__codelineno-6-10" name="__codelineno-6-10" href="#__codelineno-6-10"></a> ▼ ▼
|
|
<a id="__codelineno-6-11" name="__codelineno-6-11" href="#__codelineno-6-11"></a> ┌───────────┐ ┌─────────────────────┐
|
|
<a id="__codelineno-6-12" name="__codelineno-6-12" href="#__codelineno-6-12"></a> │ NO │ │ Hat WARN-Regeln? │
|
|
<a id="__codelineno-6-13" name="__codelineno-6-13" href="#__codelineno-6-13"></a> │ (blocked) │ └──────────┬──────────┘
|
|
<a id="__codelineno-6-14" name="__codelineno-6-14" href="#__codelineno-6-14"></a> └───────────┘ │ │
|
|
<a id="__codelineno-6-15" name="__codelineno-6-15" href="#__codelineno-6-15"></a> Ja Nein
|
|
<a id="__codelineno-6-16" name="__codelineno-6-16" href="#__codelineno-6-16"></a> │ │
|
|
<a id="__codelineno-6-17" name="__codelineno-6-17" href="#__codelineno-6-17"></a> ▼ ▼
|
|
<a id="__codelineno-6-18" name="__codelineno-6-18" href="#__codelineno-6-18"></a> ┌───────────┐ ┌───────────┐
|
|
<a id="__codelineno-6-19" name="__codelineno-6-19" href="#__codelineno-6-19"></a> │CONDITIONAL│ │ YES │
|
|
<a id="__codelineno-6-20" name="__codelineno-6-20" href="#__codelineno-6-20"></a> │(mit │ │(grünes │
|
|
<a id="__codelineno-6-21" name="__codelineno-6-21" href="#__codelineno-6-21"></a> │Auflagen) │ │Licht) │
|
|
<a id="__codelineno-6-22" name="__codelineno-6-22" href="#__codelineno-6-22"></a> └───────────┘ └───────────┘
|
|
</code></pre></div>
|
|
<h3 id="52-escalation-level-entscheidung">5.2 Escalation-Level-Entscheidung<a class="headerlink" href="#52-escalation-level-entscheidung" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a> AssessmentResult
|
|
<a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a> │
|
|
<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a> ▼
|
|
<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a> ┌─────────────────────┐
|
|
<a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a> │ BLOCK-Regel oder │
|
|
<a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a> │ Art.22 Risiko? │
|
|
<a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a> └──────────┬──────────┘
|
|
<a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a> │ │
|
|
<a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a> Ja Nein
|
|
<a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a> │ │
|
|
<a id="__codelineno-7-11" name="__codelineno-7-11" href="#__codelineno-7-11"></a> ▼ │
|
|
<a id="__codelineno-7-12" name="__codelineno-7-12" href="#__codelineno-7-12"></a> ┌───────────┐ │
|
|
<a id="__codelineno-7-13" name="__codelineno-7-13" href="#__codelineno-7-13"></a> │ E3 │ │
|
|
<a id="__codelineno-7-14" name="__codelineno-7-14" href="#__codelineno-7-14"></a> │ DSB+Legal │ │
|
|
<a id="__codelineno-7-15" name="__codelineno-7-15" href="#__codelineno-7-15"></a> └───────────┘ ▼
|
|
<a id="__codelineno-7-16" name="__codelineno-7-16" href="#__codelineno-7-16"></a> ┌─────────────────────┐
|
|
<a id="__codelineno-7-17" name="__codelineno-7-17" href="#__codelineno-7-17"></a> │ Risk ≥40 oder │
|
|
<a id="__codelineno-7-18" name="__codelineno-7-18" href="#__codelineno-7-18"></a> │ Art.9 Daten oder │
|
|
<a id="__codelineno-7-19" name="__codelineno-7-19" href="#__codelineno-7-19"></a> │ DSFA empfohlen? │
|
|
<a id="__codelineno-7-20" name="__codelineno-7-20" href="#__codelineno-7-20"></a> └──────────┬──────────┘
|
|
<a id="__codelineno-7-21" name="__codelineno-7-21" href="#__codelineno-7-21"></a> │ │
|
|
<a id="__codelineno-7-22" name="__codelineno-7-22" href="#__codelineno-7-22"></a> Ja Nein
|
|
<a id="__codelineno-7-23" name="__codelineno-7-23" href="#__codelineno-7-23"></a> │ │
|
|
<a id="__codelineno-7-24" name="__codelineno-7-24" href="#__codelineno-7-24"></a> ▼ │
|
|
<a id="__codelineno-7-25" name="__codelineno-7-25" href="#__codelineno-7-25"></a> ┌───────────┐ │
|
|
<a id="__codelineno-7-26" name="__codelineno-7-26" href="#__codelineno-7-26"></a> │ E2 │ │
|
|
<a id="__codelineno-7-27" name="__codelineno-7-27" href="#__codelineno-7-27"></a> │ DSB │ │
|
|
<a id="__codelineno-7-28" name="__codelineno-7-28" href="#__codelineno-7-28"></a> └───────────┘ ▼
|
|
<a id="__codelineno-7-29" name="__codelineno-7-29" href="#__codelineno-7-29"></a> ┌─────────────────────┐
|
|
<a id="__codelineno-7-30" name="__codelineno-7-30" href="#__codelineno-7-30"></a> │ Risk ≥20 oder │
|
|
<a id="__codelineno-7-31" name="__codelineno-7-31" href="#__codelineno-7-31"></a> │ WARN-Regeln? │
|
|
<a id="__codelineno-7-32" name="__codelineno-7-32" href="#__codelineno-7-32"></a> └──────────┬──────────┘
|
|
<a id="__codelineno-7-33" name="__codelineno-7-33" href="#__codelineno-7-33"></a> │ │
|
|
<a id="__codelineno-7-34" name="__codelineno-7-34" href="#__codelineno-7-34"></a> Ja Nein
|
|
<a id="__codelineno-7-35" name="__codelineno-7-35" href="#__codelineno-7-35"></a> │ │
|
|
<a id="__codelineno-7-36" name="__codelineno-7-36" href="#__codelineno-7-36"></a> ▼ ▼
|
|
<a id="__codelineno-7-37" name="__codelineno-7-37" href="#__codelineno-7-37"></a> ┌───────────┐ ┌───────────┐
|
|
<a id="__codelineno-7-38" name="__codelineno-7-38" href="#__codelineno-7-38"></a> │ E1 │ │ E0 │
|
|
<a id="__codelineno-7-39" name="__codelineno-7-39" href="#__codelineno-7-39"></a> │ Team-Lead │ │ Auto-OK │
|
|
<a id="__codelineno-7-40" name="__codelineno-7-40" href="#__codelineno-7-40"></a> └───────────┘ └───────────┘
|
|
</code></pre></div>
|
|
<hr />
|
|
<h2 id="6-datenbank-schema">6. Datenbank-Schema<a class="headerlink" href="#6-datenbank-schema" title="Permanent link">¶</a></h2>
|
|
<h3 id="61-ucca_assessments">6.1 ucca_assessments<a class="headerlink" href="#61-ucca_assessments" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">ucca_assessments</span><span class="w"> </span><span class="p">(</span>
|
|
<a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="n">UUID</span><span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="p">,</span>
|
|
<a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a><span class="w"> </span><span class="n">tenant_id</span><span class="w"> </span><span class="n">UUID</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a><span class="w"> </span><span class="n">namespace_id</span><span class="w"> </span><span class="n">UUID</span><span class="p">,</span>
|
|
<a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a><span class="w"> </span><span class="n">title</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">500</span><span class="p">),</span>
|
|
<a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a><span class="w"> </span><span class="n">policy_version</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a><span class="w"> </span><span class="n">status</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="s1">'completed'</span><span class="p">,</span>
|
|
<a id="__codelineno-8-8" name="__codelineno-8-8" href="#__codelineno-8-8"></a>
|
|
<a id="__codelineno-8-9" name="__codelineno-8-9" href="#__codelineno-8-9"></a><span class="w"> </span><span class="c1">-- Input</span>
|
|
<a id="__codelineno-8-10" name="__codelineno-8-10" href="#__codelineno-8-10"></a><span class="w"> </span><span class="n">intake</span><span class="w"> </span><span class="n">JSONB</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<a id="__codelineno-8-11" name="__codelineno-8-11" href="#__codelineno-8-11"></a><span class="w"> </span><span class="n">use_case_text_stored</span><span class="w"> </span><span class="nb">BOOLEAN</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="k">FALSE</span><span class="p">,</span>
|
|
<a id="__codelineno-8-12" name="__codelineno-8-12" href="#__codelineno-8-12"></a><span class="w"> </span><span class="n">use_case_text_hash</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">64</span><span class="p">),</span>
|
|
<a id="__codelineno-8-13" name="__codelineno-8-13" href="#__codelineno-8-13"></a><span class="w"> </span><span class="k">domain</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">50</span><span class="p">),</span>
|
|
<a id="__codelineno-8-14" name="__codelineno-8-14" href="#__codelineno-8-14"></a>
|
|
<a id="__codelineno-8-15" name="__codelineno-8-15" href="#__codelineno-8-15"></a><span class="w"> </span><span class="c1">-- Result</span>
|
|
<a id="__codelineno-8-16" name="__codelineno-8-16" href="#__codelineno-8-16"></a><span class="w"> </span><span class="n">feasibility</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<a id="__codelineno-8-17" name="__codelineno-8-17" href="#__codelineno-8-17"></a><span class="w"> </span><span class="n">risk_level</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<a id="__codelineno-8-18" name="__codelineno-8-18" href="#__codelineno-8-18"></a><span class="w"> </span><span class="n">risk_score</span><span class="w"> </span><span class="nb">INT</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span>
|
|
<a id="__codelineno-8-19" name="__codelineno-8-19" href="#__codelineno-8-19"></a><span class="w"> </span><span class="n">triggered_rules</span><span class="w"> </span><span class="n">JSONB</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="s1">'[]'</span><span class="p">,</span>
|
|
<a id="__codelineno-8-20" name="__codelineno-8-20" href="#__codelineno-8-20"></a><span class="w"> </span><span class="n">required_controls</span><span class="w"> </span><span class="n">JSONB</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="s1">'[]'</span><span class="p">,</span>
|
|
<a id="__codelineno-8-21" name="__codelineno-8-21" href="#__codelineno-8-21"></a><span class="w"> </span><span class="n">recommended_architecture</span><span class="w"> </span><span class="n">JSONB</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="s1">'[]'</span><span class="p">,</span>
|
|
<a id="__codelineno-8-22" name="__codelineno-8-22" href="#__codelineno-8-22"></a><span class="w"> </span><span class="n">forbidden_patterns</span><span class="w"> </span><span class="n">JSONB</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="s1">'[]'</span><span class="p">,</span>
|
|
<a id="__codelineno-8-23" name="__codelineno-8-23" href="#__codelineno-8-23"></a><span class="w"> </span><span class="n">example_matches</span><span class="w"> </span><span class="n">JSONB</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="s1">'[]'</span><span class="p">,</span>
|
|
<a id="__codelineno-8-24" name="__codelineno-8-24" href="#__codelineno-8-24"></a>
|
|
<a id="__codelineno-8-25" name="__codelineno-8-25" href="#__codelineno-8-25"></a><span class="w"> </span><span class="c1">-- Flags</span>
|
|
<a id="__codelineno-8-26" name="__codelineno-8-26" href="#__codelineno-8-26"></a><span class="w"> </span><span class="n">dsfa_recommended</span><span class="w"> </span><span class="nb">BOOLEAN</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="k">FALSE</span><span class="p">,</span>
|
|
<a id="__codelineno-8-27" name="__codelineno-8-27" href="#__codelineno-8-27"></a><span class="w"> </span><span class="n">art22_risk</span><span class="w"> </span><span class="nb">BOOLEAN</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="k">FALSE</span><span class="p">,</span>
|
|
<a id="__codelineno-8-28" name="__codelineno-8-28" href="#__codelineno-8-28"></a><span class="w"> </span><span class="n">training_allowed</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">50</span><span class="p">),</span>
|
|
<a id="__codelineno-8-29" name="__codelineno-8-29" href="#__codelineno-8-29"></a>
|
|
<a id="__codelineno-8-30" name="__codelineno-8-30" href="#__codelineno-8-30"></a><span class="w"> </span><span class="c1">-- Explanation</span>
|
|
<a id="__codelineno-8-31" name="__codelineno-8-31" href="#__codelineno-8-31"></a><span class="w"> </span><span class="n">explanation_text</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span>
|
|
<a id="__codelineno-8-32" name="__codelineno-8-32" href="#__codelineno-8-32"></a><span class="w"> </span><span class="n">explanation_generated_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
|
|
<a id="__codelineno-8-33" name="__codelineno-8-33" href="#__codelineno-8-33"></a><span class="w"> </span><span class="n">explanation_model</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span>
|
|
<a id="__codelineno-8-34" name="__codelineno-8-34" href="#__codelineno-8-34"></a>
|
|
<a id="__codelineno-8-35" name="__codelineno-8-35" href="#__codelineno-8-35"></a><span class="w"> </span><span class="c1">-- Audit</span>
|
|
<a id="__codelineno-8-36" name="__codelineno-8-36" href="#__codelineno-8-36"></a><span class="w"> </span><span class="n">created_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">NOW</span><span class="p">(),</span>
|
|
<a id="__codelineno-8-37" name="__codelineno-8-37" href="#__codelineno-8-37"></a><span class="w"> </span><span class="n">updated_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">NOW</span><span class="p">(),</span>
|
|
<a id="__codelineno-8-38" name="__codelineno-8-38" href="#__codelineno-8-38"></a><span class="w"> </span><span class="n">created_by</span><span class="w"> </span><span class="n">UUID</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span>
|
|
<a id="__codelineno-8-39" name="__codelineno-8-39" href="#__codelineno-8-39"></a><span class="p">);</span>
|
|
</code></pre></div>
|
|
<h3 id="62-ucca_escalations">6.2 ucca_escalations<a class="headerlink" href="#62-ucca_escalations" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">ucca_escalations</span><span class="w"> </span><span class="p">(</span>
|
|
<a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="n">UUID</span><span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="p">,</span>
|
|
<a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a><span class="w"> </span><span class="n">tenant_id</span><span class="w"> </span><span class="n">UUID</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a><span class="w"> </span><span class="n">assessment_id</span><span class="w"> </span><span class="n">UUID</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">REFERENCES</span><span class="w"> </span><span class="n">ucca_assessments</span><span class="p">(</span><span class="n">id</span><span class="p">),</span>
|
|
<a id="__codelineno-9-5" name="__codelineno-9-5" href="#__codelineno-9-5"></a>
|
|
<a id="__codelineno-9-6" name="__codelineno-9-6" href="#__codelineno-9-6"></a><span class="w"> </span><span class="c1">-- Level & Status</span>
|
|
<a id="__codelineno-9-7" name="__codelineno-9-7" href="#__codelineno-9-7"></a><span class="w"> </span><span class="n">escalation_level</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<a id="__codelineno-9-8" name="__codelineno-9-8" href="#__codelineno-9-8"></a><span class="w"> </span><span class="n">escalation_reason</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span>
|
|
<a id="__codelineno-9-9" name="__codelineno-9-9" href="#__codelineno-9-9"></a><span class="w"> </span><span class="n">status</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="s1">'pending'</span><span class="p">,</span>
|
|
<a id="__codelineno-9-10" name="__codelineno-9-10" href="#__codelineno-9-10"></a>
|
|
<a id="__codelineno-9-11" name="__codelineno-9-11" href="#__codelineno-9-11"></a><span class="w"> </span><span class="c1">-- Assignment</span>
|
|
<a id="__codelineno-9-12" name="__codelineno-9-12" href="#__codelineno-9-12"></a><span class="w"> </span><span class="n">assigned_to</span><span class="w"> </span><span class="n">UUID</span><span class="p">,</span>
|
|
<a id="__codelineno-9-13" name="__codelineno-9-13" href="#__codelineno-9-13"></a><span class="w"> </span><span class="n">assigned_role</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">50</span><span class="p">),</span>
|
|
<a id="__codelineno-9-14" name="__codelineno-9-14" href="#__codelineno-9-14"></a><span class="w"> </span><span class="n">assigned_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
|
|
<a id="__codelineno-9-15" name="__codelineno-9-15" href="#__codelineno-9-15"></a>
|
|
<a id="__codelineno-9-16" name="__codelineno-9-16" href="#__codelineno-9-16"></a><span class="w"> </span><span class="c1">-- Review</span>
|
|
<a id="__codelineno-9-17" name="__codelineno-9-17" href="#__codelineno-9-17"></a><span class="w"> </span><span class="n">reviewer_id</span><span class="w"> </span><span class="n">UUID</span><span class="p">,</span>
|
|
<a id="__codelineno-9-18" name="__codelineno-9-18" href="#__codelineno-9-18"></a><span class="w"> </span><span class="n">reviewer_notes</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span>
|
|
<a id="__codelineno-9-19" name="__codelineno-9-19" href="#__codelineno-9-19"></a><span class="w"> </span><span class="n">reviewed_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
|
|
<a id="__codelineno-9-20" name="__codelineno-9-20" href="#__codelineno-9-20"></a>
|
|
<a id="__codelineno-9-21" name="__codelineno-9-21" href="#__codelineno-9-21"></a><span class="w"> </span><span class="c1">-- Decision</span>
|
|
<a id="__codelineno-9-22" name="__codelineno-9-22" href="#__codelineno-9-22"></a><span class="w"> </span><span class="n">decision</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">50</span><span class="p">),</span>
|
|
<a id="__codelineno-9-23" name="__codelineno-9-23" href="#__codelineno-9-23"></a><span class="w"> </span><span class="n">decision_notes</span><span class="w"> </span><span class="nb">TEXT</span><span class="p">,</span>
|
|
<a id="__codelineno-9-24" name="__codelineno-9-24" href="#__codelineno-9-24"></a><span class="w"> </span><span class="n">decision_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
|
|
<a id="__codelineno-9-25" name="__codelineno-9-25" href="#__codelineno-9-25"></a><span class="w"> </span><span class="n">conditions</span><span class="w"> </span><span class="n">JSONB</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="s1">'[]'</span><span class="p">,</span>
|
|
<a id="__codelineno-9-26" name="__codelineno-9-26" href="#__codelineno-9-26"></a>
|
|
<a id="__codelineno-9-27" name="__codelineno-9-27" href="#__codelineno-9-27"></a><span class="w"> </span><span class="c1">-- SLA</span>
|
|
<a id="__codelineno-9-28" name="__codelineno-9-28" href="#__codelineno-9-28"></a><span class="w"> </span><span class="n">due_date</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
|
|
<a id="__codelineno-9-29" name="__codelineno-9-29" href="#__codelineno-9-29"></a><span class="w"> </span><span class="n">notification_sent</span><span class="w"> </span><span class="nb">BOOLEAN</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="k">FALSE</span><span class="p">,</span>
|
|
<a id="__codelineno-9-30" name="__codelineno-9-30" href="#__codelineno-9-30"></a><span class="w"> </span><span class="n">notification_sent_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
|
|
<a id="__codelineno-9-31" name="__codelineno-9-31" href="#__codelineno-9-31"></a>
|
|
<a id="__codelineno-9-32" name="__codelineno-9-32" href="#__codelineno-9-32"></a><span class="w"> </span><span class="c1">-- Audit</span>
|
|
<a id="__codelineno-9-33" name="__codelineno-9-33" href="#__codelineno-9-33"></a><span class="w"> </span><span class="n">created_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">NOW</span><span class="p">(),</span>
|
|
<a id="__codelineno-9-34" name="__codelineno-9-34" href="#__codelineno-9-34"></a><span class="w"> </span><span class="n">updated_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">NOW</span><span class="p">()</span>
|
|
<a id="__codelineno-9-35" name="__codelineno-9-35" href="#__codelineno-9-35"></a><span class="p">);</span>
|
|
</code></pre></div>
|
|
<h3 id="63-ucca_dsb_pool">6.3 ucca_dsb_pool<a class="headerlink" href="#63-ucca_dsb_pool" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">ucca_dsb_pool</span><span class="w"> </span><span class="p">(</span>
|
|
<a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="n">UUID</span><span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="p">,</span>
|
|
<a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="w"> </span><span class="n">tenant_id</span><span class="w"> </span><span class="n">UUID</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="w"> </span><span class="n">user_id</span><span class="w"> </span><span class="n">UUID</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a><span class="w"> </span><span class="n">user_name</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">255</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a><span class="w"> </span><span class="n">user_email</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">255</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></a><span class="w"> </span><span class="k">role</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">50</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<a id="__codelineno-10-8" name="__codelineno-10-8" href="#__codelineno-10-8"></a><span class="w"> </span><span class="n">is_active</span><span class="w"> </span><span class="nb">BOOLEAN</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="k">TRUE</span><span class="p">,</span>
|
|
<a id="__codelineno-10-9" name="__codelineno-10-9" href="#__codelineno-10-9"></a><span class="w"> </span><span class="n">max_concurrent_reviews</span><span class="w"> </span><span class="nb">INT</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span>
|
|
<a id="__codelineno-10-10" name="__codelineno-10-10" href="#__codelineno-10-10"></a><span class="w"> </span><span class="n">current_reviews</span><span class="w"> </span><span class="nb">INT</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span>
|
|
<a id="__codelineno-10-11" name="__codelineno-10-11" href="#__codelineno-10-11"></a><span class="w"> </span><span class="n">created_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">NOW</span><span class="p">(),</span>
|
|
<a id="__codelineno-10-12" name="__codelineno-10-12" href="#__codelineno-10-12"></a><span class="w"> </span><span class="n">updated_at</span><span class="w"> </span><span class="n">TIMESTAMPTZ</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">NOW</span><span class="p">()</span>
|
|
<a id="__codelineno-10-13" name="__codelineno-10-13" href="#__codelineno-10-13"></a><span class="p">);</span>
|
|
</code></pre></div>
|
|
<hr />
|
|
<h2 id="7-api-endpunkte">7. API-Endpunkte<a class="headerlink" href="#7-api-endpunkte" title="Permanent link">¶</a></h2>
|
|
<h3 id="71-assessment">7.1 Assessment<a class="headerlink" href="#71-assessment" title="Permanent link">¶</a></h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Method</th>
|
|
<th>Endpoint</th>
|
|
<th>Beschreibung</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>POST</td>
|
|
<td><code>/sdk/v1/ucca/assess</code></td>
|
|
<td>Assessment erstellen</td>
|
|
</tr>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/assessments</code></td>
|
|
<td>Assessments auflisten</td>
|
|
</tr>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/assessments/:id</code></td>
|
|
<td>Assessment abrufen</td>
|
|
</tr>
|
|
<tr>
|
|
<td>DELETE</td>
|
|
<td><code>/sdk/v1/ucca/assessments/:id</code></td>
|
|
<td>Assessment löschen</td>
|
|
</tr>
|
|
<tr>
|
|
<td>POST</td>
|
|
<td><code>/sdk/v1/ucca/assessments/:id/explain</code></td>
|
|
<td>LLM-Erklärung generieren</td>
|
|
</tr>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/export/:id</code></td>
|
|
<td>Assessment exportieren</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3 id="72-kataloge">7.2 Kataloge<a class="headerlink" href="#72-kataloge" title="Permanent link">¶</a></h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Method</th>
|
|
<th>Endpoint</th>
|
|
<th>Beschreibung</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/patterns</code></td>
|
|
<td>Architektur-Patterns</td>
|
|
</tr>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/examples</code></td>
|
|
<td>Didaktische Beispiele</td>
|
|
</tr>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/rules</code></td>
|
|
<td>Alle Regeln</td>
|
|
</tr>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/controls</code></td>
|
|
<td>Required Controls</td>
|
|
</tr>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/problem-solutions</code></td>
|
|
<td>Problem-Lösungen</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3 id="73-eskalation">7.3 Eskalation<a class="headerlink" href="#73-eskalation" title="Permanent link">¶</a></h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Method</th>
|
|
<th>Endpoint</th>
|
|
<th>Beschreibung</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/escalations</code></td>
|
|
<td>Eskalationen auflisten</td>
|
|
</tr>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/escalations/:id</code></td>
|
|
<td>Eskalation abrufen</td>
|
|
</tr>
|
|
<tr>
|
|
<td>POST</td>
|
|
<td><code>/sdk/v1/ucca/escalations</code></td>
|
|
<td>Manuelle Eskalation</td>
|
|
</tr>
|
|
<tr>
|
|
<td>POST</td>
|
|
<td><code>/sdk/v1/ucca/escalations/:id/assign</code></td>
|
|
<td>Zuweisen</td>
|
|
</tr>
|
|
<tr>
|
|
<td>POST</td>
|
|
<td><code>/sdk/v1/ucca/escalations/:id/review</code></td>
|
|
<td>Review starten</td>
|
|
</tr>
|
|
<tr>
|
|
<td>POST</td>
|
|
<td><code>/sdk/v1/ucca/escalations/:id/decide</code></td>
|
|
<td>Entscheidung treffen</td>
|
|
</tr>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/escalations/stats</code></td>
|
|
<td>Statistiken</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3 id="74-dsb-pool">7.4 DSB Pool<a class="headerlink" href="#74-dsb-pool" title="Permanent link">¶</a></h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Method</th>
|
|
<th>Endpoint</th>
|
|
<th>Beschreibung</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/dsb-pool</code></td>
|
|
<td>Pool-Mitglieder auflisten</td>
|
|
</tr>
|
|
<tr>
|
|
<td>POST</td>
|
|
<td><code>/sdk/v1/ucca/dsb-pool</code></td>
|
|
<td>Mitglied hinzufügen</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<hr />
|
|
<h2 id="8-sicherheit">8. Sicherheit<a class="headerlink" href="#8-sicherheit" title="Permanent link">¶</a></h2>
|
|
<h3 id="81-authentifizierung">8.1 Authentifizierung<a class="headerlink" href="#81-authentifizierung" title="Permanent link">¶</a></h3>
|
|
<ul>
|
|
<li>JWT-basierte Authentifizierung</li>
|
|
<li>Header: <code>X-User-ID</code>, <code>X-Tenant-ID</code></li>
|
|
<li>Multi-Tenant-Isolation</li>
|
|
</ul>
|
|
<h3 id="82-autorisierung">8.2 Autorisierung<a class="headerlink" href="#82-autorisierung" title="Permanent link">¶</a></h3>
|
|
<ul>
|
|
<li>RBAC (Role-Based Access Control)</li>
|
|
<li>Permissions: <code>ucca:assess</code>, <code>ucca:review</code>, <code>ucca:admin</code></li>
|
|
<li>Namespace-Level Isolation</li>
|
|
</ul>
|
|
<h3 id="83-datenschutz">8.3 Datenschutz<a class="headerlink" href="#83-datenschutz" title="Permanent link">¶</a></h3>
|
|
<ul>
|
|
<li>Use-Case-Text optional (Opt-in)</li>
|
|
<li>SHA-256 Hash statt Klartext</li>
|
|
<li>Audit-Trail für alle Operationen</li>
|
|
<li>Legal RAG: <code>training_allowed: false</code></li>
|
|
</ul>
|
|
<hr />
|
|
<h2 id="9-deployment">9. Deployment<a class="headerlink" href="#9-deployment" title="Permanent link">¶</a></h2>
|
|
<h3 id="91-container">9.1 Container<a class="headerlink" href="#91-container" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="nt">ai-compliance-sdk</span><span class="p">:</span>
|
|
<a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="w"> </span><span class="nt">build</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">./ai-compliance-sdk</span>
|
|
<a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a><span class="w"> </span><span class="nt">ports</span><span class="p">:</span>
|
|
<a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"8090:8090"</span>
|
|
<a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a><span class="w"> </span><span class="nt">environment</span><span class="p">:</span>
|
|
<a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">DATABASE_URL=postgres://...</span>
|
|
<a id="__codelineno-11-7" name="__codelineno-11-7" href="#__codelineno-11-7"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">OLLAMA_URL=http://ollama:11434</span>
|
|
<a id="__codelineno-11-8" name="__codelineno-11-8" href="#__codelineno-11-8"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">QDRANT_URL=http://qdrant:6333</span>
|
|
<a id="__codelineno-11-9" name="__codelineno-11-9" href="#__codelineno-11-9"></a><span class="w"> </span><span class="nt">depends_on</span><span class="p">:</span>
|
|
<a id="__codelineno-11-10" name="__codelineno-11-10" href="#__codelineno-11-10"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">postgres</span>
|
|
<a id="__codelineno-11-11" name="__codelineno-11-11" href="#__codelineno-11-11"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">qdrant</span>
|
|
</code></pre></div>
|
|
<h3 id="92-abhangigkeiten">9.2 Abhängigkeiten<a class="headerlink" href="#92-abhangigkeiten" title="Permanent link">¶</a></h3>
|
|
<ul>
|
|
<li>PostgreSQL 15+</li>
|
|
<li>Qdrant 1.12+</li>
|
|
<li>Embedding Service (BGE-M3)</li>
|
|
<li>Ollama (optional, für LLM)</li>
|
|
</ul>
|
|
<hr />
|
|
<h2 id="10-monitoring">10. Monitoring<a class="headerlink" href="#10-monitoring" title="Permanent link">¶</a></h2>
|
|
<h3 id="101-health-check">10.1 Health Check<a class="headerlink" href="#101-health-check" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>GET /sdk/v1/health
|
|
<a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a>→ {"status": "ok"}
|
|
</code></pre></div>
|
|
<h3 id="102-metriken">10.2 Metriken<a class="headerlink" href="#102-metriken" title="Permanent link">¶</a></h3>
|
|
<ul>
|
|
<li>Assessment-Durchsatz</li>
|
|
<li>Escalation-SLA-Compliance</li>
|
|
<li>LLM-Latenz</li>
|
|
<li>RAG-Trefferqualität</li>
|
|
</ul>
|
|
<hr />
|
|
<h2 id="11-wizard-legal-assistant">11. Wizard & Legal Assistant<a class="headerlink" href="#11-wizard-legal-assistant" title="Permanent link">¶</a></h2>
|
|
<h3 id="111-wizard-architektur">11.1 Wizard-Architektur<a class="headerlink" href="#111-wizard-architektur" title="Permanent link">¶</a></h3>
|
|
<p>Der UCCA-Wizard führt Benutzer durch 9 Schritte zur Erfassung aller relevanten Compliance-Fakten.</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>┌─────────────────────────────────────────────────────────────────┐
|
|
<a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a>│ UCCA Wizard v1.1 │
|
|
<a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a>├─────────────────────────────────────────────────────────────────┤
|
|
<a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a>│ │
|
|
<a id="__codelineno-13-5" name="__codelineno-13-5" href="#__codelineno-13-5"></a>│ Step 1: Grundlegende Informationen │
|
|
<a id="__codelineno-13-6" name="__codelineno-13-6" href="#__codelineno-13-6"></a>│ Step 2: Datenarten (Personal Data, Art. 9, etc.) │
|
|
<a id="__codelineno-13-7" name="__codelineno-13-7" href="#__codelineno-13-7"></a>│ Step 3: Verarbeitungszweck (Profiling, Scoring) │
|
|
<a id="__codelineno-13-8" name="__codelineno-13-8" href="#__codelineno-13-8"></a>│ Step 4: Hosting & Provider │
|
|
<a id="__codelineno-13-9" name="__codelineno-13-9" href="#__codelineno-13-9"></a>│ Step 5: Internationaler Datentransfer (SCC, TIA) │
|
|
<a id="__codelineno-13-10" name="__codelineno-13-10" href="#__codelineno-13-10"></a>│ Step 6: KI-Modell und Training │
|
|
<a id="__codelineno-13-11" name="__codelineno-13-11" href="#__codelineno-13-11"></a>│ Step 7: Verträge & Compliance (AVV, DSFA) │
|
|
<a id="__codelineno-13-12" name="__codelineno-13-12" href="#__codelineno-13-12"></a>│ Step 8: Automatisierung & Human Oversight │
|
|
<a id="__codelineno-13-13" name="__codelineno-13-13" href="#__codelineno-13-13"></a>│ Step 9: Standards & Normen (für Maschinenbauer) ← NEU │
|
|
<a id="__codelineno-13-14" name="__codelineno-13-14" href="#__codelineno-13-14"></a>│ │
|
|
<a id="__codelineno-13-15" name="__codelineno-13-15" href="#__codelineno-13-15"></a>│ Features: │
|
|
<a id="__codelineno-13-16" name="__codelineno-13-16" href="#__codelineno-13-16"></a>│ ├── Adaptive Subflows (visible_if Conditions) │
|
|
<a id="__codelineno-13-17" name="__codelineno-13-17" href="#__codelineno-13-17"></a>│ ├── Simple/Expert Mode Toggle │
|
|
<a id="__codelineno-13-18" name="__codelineno-13-18" href="#__codelineno-13-18"></a>│ ├── Legal Assistant Chat pro Step │
|
|
<a id="__codelineno-13-19" name="__codelineno-13-19" href="#__codelineno-13-19"></a>│ └── simple_explanation für Nicht-Juristen │
|
|
<a id="__codelineno-13-20" name="__codelineno-13-20" href="#__codelineno-13-20"></a>│ │
|
|
<a id="__codelineno-13-21" name="__codelineno-13-21" href="#__codelineno-13-21"></a>└─────────────────────────────────────────────────────────────────┘
|
|
</code></pre></div>
|
|
<h3 id="112-legal-assistant-wizard-chat">11.2 Legal Assistant (Wizard Chat)<a class="headerlink" href="#112-legal-assistant-wizard-chat" title="Permanent link">¶</a></h3>
|
|
<p>Integrierter Rechtsassistent für Echtzeit-Hilfe bei Wizard-Fragen.</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>┌─────────────────────────────────────────────────────────────────┐
|
|
<a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a>│ Legal Assistant Flow │
|
|
<a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a>├─────────────────────────────────────────────────────────────────┤
|
|
<a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a>│ │
|
|
<a id="__codelineno-14-5" name="__codelineno-14-5" href="#__codelineno-14-5"></a>│ User Question ─────────────────────────────────────────────────>│
|
|
<a id="__codelineno-14-6" name="__codelineno-14-6" href="#__codelineno-14-6"></a>│ │ │
|
|
<a id="__codelineno-14-7" name="__codelineno-14-7" href="#__codelineno-14-7"></a>│ ▼ │
|
|
<a id="__codelineno-14-8" name="__codelineno-14-8" href="#__codelineno-14-8"></a>│ ┌──────────────────┐ │
|
|
<a id="__codelineno-14-9" name="__codelineno-14-9" href="#__codelineno-14-9"></a>│ │ Build RAG Query │ │
|
|
<a id="__codelineno-14-10" name="__codelineno-14-10" href="#__codelineno-14-10"></a>│ │ + Step Context │ │
|
|
<a id="__codelineno-14-11" name="__codelineno-14-11" href="#__codelineno-14-11"></a>│ └────────┬─────────┘ │
|
|
<a id="__codelineno-14-12" name="__codelineno-14-12" href="#__codelineno-14-12"></a>│ │ │
|
|
<a id="__codelineno-14-13" name="__codelineno-14-13" href="#__codelineno-14-13"></a>│ ▼ │
|
|
<a id="__codelineno-14-14" name="__codelineno-14-14" href="#__codelineno-14-14"></a>│ ┌──────────────────┐ Search ┌──────────────────┐ │
|
|
<a id="__codelineno-14-15" name="__codelineno-14-15" href="#__codelineno-14-15"></a>│ │ Legal RAG │ ────────────>│ Qdrant │ │
|
|
<a id="__codelineno-14-16" name="__codelineno-14-16" href="#__codelineno-14-16"></a>│ │ Client │ │ bp_legal_corpus │ │
|
|
<a id="__codelineno-14-17" name="__codelineno-14-17" href="#__codelineno-14-17"></a>│ │ │<────────────│ + SCC Corpus │ │
|
|
<a id="__codelineno-14-18" name="__codelineno-14-18" href="#__codelineno-14-18"></a>│ └────────┬─────────┘ Top-5 └──────────────────┘ │
|
|
<a id="__codelineno-14-19" name="__codelineno-14-19" href="#__codelineno-14-19"></a>│ │ │
|
|
<a id="__codelineno-14-20" name="__codelineno-14-20" href="#__codelineno-14-20"></a>│ │ Question + Legal Context │
|
|
<a id="__codelineno-14-21" name="__codelineno-14-21" href="#__codelineno-14-21"></a>│ ▼ │
|
|
<a id="__codelineno-14-22" name="__codelineno-14-22" href="#__codelineno-14-22"></a>│ ┌──────────────────┐ │
|
|
<a id="__codelineno-14-23" name="__codelineno-14-23" href="#__codelineno-14-23"></a>│ │ Internal 32B LLM │ │
|
|
<a id="__codelineno-14-24" name="__codelineno-14-24" href="#__codelineno-14-24"></a>│ │ (Ollama) │ │
|
|
<a id="__codelineno-14-25" name="__codelineno-14-25" href="#__codelineno-14-25"></a>│ │ temp=0.3 │ │
|
|
<a id="__codelineno-14-26" name="__codelineno-14-26" href="#__codelineno-14-26"></a>│ └────────┬─────────┘ │
|
|
<a id="__codelineno-14-27" name="__codelineno-14-27" href="#__codelineno-14-27"></a>│ │ │
|
|
<a id="__codelineno-14-28" name="__codelineno-14-28" href="#__codelineno-14-28"></a>│ ▼ │
|
|
<a id="__codelineno-14-29" name="__codelineno-14-29" href="#__codelineno-14-29"></a>│ Answer + Sources + Related Fields │
|
|
<a id="__codelineno-14-30" name="__codelineno-14-30" href="#__codelineno-14-30"></a>│ │
|
|
<a id="__codelineno-14-31" name="__codelineno-14-31" href="#__codelineno-14-31"></a>└─────────────────────────────────────────────────────────────────┘
|
|
</code></pre></div>
|
|
<p><strong>API-Endpunkte:</strong></p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Method</th>
|
|
<th>Endpoint</th>
|
|
<th>Beschreibung</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/wizard/schema</code></td>
|
|
<td>Wizard-Schema abrufen</td>
|
|
</tr>
|
|
<tr>
|
|
<td>POST</td>
|
|
<td><code>/sdk/v1/ucca/wizard/ask</code></td>
|
|
<td>Frage an Legal Assistant</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<hr />
|
|
<h2 id="12-license-policy-engine-standards-compliance">12. License Policy Engine (Standards Compliance)<a class="headerlink" href="#12-license-policy-engine-standards-compliance" title="Permanent link">¶</a></h2>
|
|
<h3 id="121-ubersicht">12.1 Übersicht<a class="headerlink" href="#121-ubersicht" title="Permanent link">¶</a></h3>
|
|
<p>Die License Policy Engine verwaltet die Lizenz-/Urheberrechts-Compliance für Standards und Normen (DIN, ISO, VDI, etc.).</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>┌─────────────────────────────────────────────────────────────────┐
|
|
<a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a>│ License Policy Engine │
|
|
<a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a>├─────────────────────────────────────────────────────────────────┤
|
|
<a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a>│ │
|
|
<a id="__codelineno-15-5" name="__codelineno-15-5" href="#__codelineno-15-5"></a>│ LicensedContentFacts ─────────────────────────────────────────>│
|
|
<a id="__codelineno-15-6" name="__codelineno-15-6" href="#__codelineno-15-6"></a>│ │ │
|
|
<a id="__codelineno-15-7" name="__codelineno-15-7" href="#__codelineno-15-7"></a>│ │ ├── present: bool │
|
|
<a id="__codelineno-15-8" name="__codelineno-15-8" href="#__codelineno-15-8"></a>│ │ ├── publisher: DIN_MEDIA | VDI | ISO | ... │
|
|
<a id="__codelineno-15-9" name="__codelineno-15-9" href="#__codelineno-15-9"></a>│ │ ├── license_type: SINGLE | NETWORK | ENTERPRISE | AI │
|
|
<a id="__codelineno-15-10" name="__codelineno-15-10" href="#__codelineno-15-10"></a>│ │ ├── ai_use_permitted: YES | NO | UNKNOWN │
|
|
<a id="__codelineno-15-11" name="__codelineno-15-11" href="#__codelineno-15-11"></a>│ │ ├── operation_mode: LINK | NOTES | FULLTEXT | TRAINING │
|
|
<a id="__codelineno-15-12" name="__codelineno-15-12" href="#__codelineno-15-12"></a>│ │ └── proof_uploaded: bool │
|
|
<a id="__codelineno-15-13" name="__codelineno-15-13" href="#__codelineno-15-13"></a>│ │ │
|
|
<a id="__codelineno-15-14" name="__codelineno-15-14" href="#__codelineno-15-14"></a>│ ▼ │
|
|
<a id="__codelineno-15-15" name="__codelineno-15-15" href="#__codelineno-15-15"></a>│ ┌─────────────────────────────────────────────────────────────┐│
|
|
<a id="__codelineno-15-16" name="__codelineno-15-16" href="#__codelineno-15-16"></a>│ │ Operation Mode Evaluation ││
|
|
<a id="__codelineno-15-17" name="__codelineno-15-17" href="#__codelineno-15-17"></a>│ ├─────────────────────────────────────────────────────────────┤│
|
|
<a id="__codelineno-15-18" name="__codelineno-15-18" href="#__codelineno-15-18"></a>│ │ ││
|
|
<a id="__codelineno-15-19" name="__codelineno-15-19" href="#__codelineno-15-19"></a>│ │ LINK_ONLY ──────────── Always Allowed ───────────> OK ││
|
|
<a id="__codelineno-15-20" name="__codelineno-15-20" href="#__codelineno-15-20"></a>│ │ NOTES_ONLY ─────────── Usually Allowed ──────────> OK ││
|
|
<a id="__codelineno-15-21" name="__codelineno-15-21" href="#__codelineno-15-21"></a>│ │ FULLTEXT_RAG ────┬──── ai_use=YES + proof ───────> OK ││
|
|
<a id="__codelineno-15-22" name="__codelineno-15-22" href="#__codelineno-15-22"></a>│ │ └──── else ─────────────────────> BLOCK ││
|
|
<a id="__codelineno-15-23" name="__codelineno-15-23" href="#__codelineno-15-23"></a>│ │ TRAINING ────────┬──── AI_LICENSE + proof ───────> OK ││
|
|
<a id="__codelineno-15-24" name="__codelineno-15-24" href="#__codelineno-15-24"></a>│ │ └──── else ─────────────────────> BLOCK ││
|
|
<a id="__codelineno-15-25" name="__codelineno-15-25" href="#__codelineno-15-25"></a>│ │ ││
|
|
<a id="__codelineno-15-26" name="__codelineno-15-26" href="#__codelineno-15-26"></a>│ └─────────────────────────────────────────────────────────────┘│
|
|
<a id="__codelineno-15-27" name="__codelineno-15-27" href="#__codelineno-15-27"></a>│ │ │
|
|
<a id="__codelineno-15-28" name="__codelineno-15-28" href="#__codelineno-15-28"></a>│ ▼ │
|
|
<a id="__codelineno-15-29" name="__codelineno-15-29" href="#__codelineno-15-29"></a>│ LicensePolicyResult │
|
|
<a id="__codelineno-15-30" name="__codelineno-15-30" href="#__codelineno-15-30"></a>│ ├── allowed: bool │
|
|
<a id="__codelineno-15-31" name="__codelineno-15-31" href="#__codelineno-15-31"></a>│ ├── effective_mode: string (may be downgraded) │
|
|
<a id="__codelineno-15-32" name="__codelineno-15-32" href="#__codelineno-15-32"></a>│ ├── gaps: []LicenseGap │
|
|
<a id="__codelineno-15-33" name="__codelineno-15-33" href="#__codelineno-15-33"></a>│ ├── required_controls: []LicenseControl │
|
|
<a id="__codelineno-15-34" name="__codelineno-15-34" href="#__codelineno-15-34"></a>│ ├── stop_line: *StopLine (if hard blocked) │
|
|
<a id="__codelineno-15-35" name="__codelineno-15-35" href="#__codelineno-15-35"></a>│ └── output_restrictions: *OutputRestrictions │
|
|
<a id="__codelineno-15-36" name="__codelineno-15-36" href="#__codelineno-15-36"></a>│ │
|
|
<a id="__codelineno-15-37" name="__codelineno-15-37" href="#__codelineno-15-37"></a>└─────────────────────────────────────────────────────────────────┘
|
|
</code></pre></div>
|
|
<h3 id="122-betriebs-modi-operation-modes">12.2 Betriebs-Modi (Operation Modes)<a class="headerlink" href="#122-betriebs-modi-operation-modes" title="Permanent link">¶</a></h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Modus</th>
|
|
<th>Beschreibung</th>
|
|
<th>Lizenz-Anforderung</th>
|
|
<th>Ingest</th>
|
|
<th>Output</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><strong>LINK_ONLY</strong></td>
|
|
<td>Nur Verweise & Checklisten</td>
|
|
<td>Keine</td>
|
|
<td>Metadata only</td>
|
|
<td>Keine Zitate</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>NOTES_ONLY</strong></td>
|
|
<td>Kundeneigene Zusammenfassungen</td>
|
|
<td>Standard</td>
|
|
<td>Notes only</td>
|
|
<td>Paraphrasen</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>EXCERPT_ONLY</strong></td>
|
|
<td>Kurze Zitate (Zitatrecht)</td>
|
|
<td>Standard + Zitatrecht</td>
|
|
<td>Notes</td>
|
|
<td>Max 150 Zeichen</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>FULLTEXT_RAG</strong></td>
|
|
<td>Volltext indexiert</td>
|
|
<td>AI-Lizenz + Proof</td>
|
|
<td>Fulltext</td>
|
|
<td>Max 500 Zeichen</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>TRAINING</strong></td>
|
|
<td>Modell-Training</td>
|
|
<td>AI-Training-Lizenz</td>
|
|
<td>Fulltext</td>
|
|
<td>N/A</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3 id="123-publisher-spezifische-regeln">12.3 Publisher-spezifische Regeln<a class="headerlink" href="#123-publisher-spezifische-regeln" title="Permanent link">¶</a></h3>
|
|
<p><strong>DIN Media (ehem. Beuth):</strong>
|
|
- AI-Nutzung aktuell verboten (ohne explizite Genehmigung)
|
|
- AI-Lizenzmodell geplant ab Q4/2025
|
|
- Crawler/Scraper verboten (AGB)
|
|
- TDM-Vorbehalt nach §44b UrhG</p>
|
|
<h3 id="124-stop-lines-hard-deny">12.4 Stop-Lines (Hard Deny)<a class="headerlink" href="#124-stop-lines-hard-deny" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>STOP_DIN_FULLTEXT_AI_NOT_ALLOWED
|
|
<a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a> WENN: publisher=DIN_MEDIA AND operation_mode in [FULLTEXT_RAG, TRAINING]
|
|
<a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a> AND ai_use_permitted in [NO, UNKNOWN]
|
|
<a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a> DANN: BLOCKIERT
|
|
<a id="__codelineno-16-5" name="__codelineno-16-5" href="#__codelineno-16-5"></a> FALLBACK: LINK_ONLY
|
|
<a id="__codelineno-16-6" name="__codelineno-16-6" href="#__codelineno-16-6"></a>
|
|
<a id="__codelineno-16-7" name="__codelineno-16-7" href="#__codelineno-16-7"></a>STOP_TRAINING_WITHOUT_PROOF
|
|
<a id="__codelineno-16-8" name="__codelineno-16-8" href="#__codelineno-16-8"></a> WENN: operation_mode=TRAINING AND proof_uploaded=false
|
|
<a id="__codelineno-16-9" name="__codelineno-16-9" href="#__codelineno-16-9"></a> DANN: BLOCKIERT
|
|
</code></pre></div>
|
|
<hr />
|
|
<h2 id="13-scc-transfer-impact-assessment">13. SCC & Transfer Impact Assessment<a class="headerlink" href="#13-scc-transfer-impact-assessment" title="Permanent link">¶</a></h2>
|
|
<h3 id="131-drittlandtransfer-bewertung">13.1 Drittlandtransfer-Bewertung<a class="headerlink" href="#131-drittlandtransfer-bewertung" title="Permanent link">¶</a></h3>
|
|
<p>Das System unterstützt die vollständige Bewertung internationaler Datentransfers.</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>┌─────────────────────────────────────────────────────────────────┐
|
|
<a id="__codelineno-17-2" name="__codelineno-17-2" href="#__codelineno-17-2"></a>│ SCC/Transfer Assessment Flow │
|
|
<a id="__codelineno-17-3" name="__codelineno-17-3" href="#__codelineno-17-3"></a>├─────────────────────────────────────────────────────────────────┤
|
|
<a id="__codelineno-17-4" name="__codelineno-17-4" href="#__codelineno-17-4"></a>│ │
|
|
<a id="__codelineno-17-5" name="__codelineno-17-5" href="#__codelineno-17-5"></a>│ hosting.region ─────────────────────────────────────────────── │
|
|
<a id="__codelineno-17-6" name="__codelineno-17-6" href="#__codelineno-17-6"></a>│ │ │
|
|
<a id="__codelineno-17-7" name="__codelineno-17-7" href="#__codelineno-17-7"></a>│ ├── EU/EWR ────────────────────────────────> OK (no SCC) │
|
|
<a id="__codelineno-17-8" name="__codelineno-17-8" href="#__codelineno-17-8"></a>│ │ │
|
|
<a id="__codelineno-17-9" name="__codelineno-17-9" href="#__codelineno-17-9"></a>│ ├── Adequacy Country (UK, CH, JP) ─────────> OK (no SCC) │
|
|
<a id="__codelineno-17-10" name="__codelineno-17-10" href="#__codelineno-17-10"></a>│ │ │
|
|
<a id="__codelineno-17-11" name="__codelineno-17-11" href="#__codelineno-17-11"></a>│ └── Third Country (US, etc.) ──────────────────────────── │
|
|
<a id="__codelineno-17-12" name="__codelineno-17-12" href="#__codelineno-17-12"></a>│ │ │
|
|
<a id="__codelineno-17-13" name="__codelineno-17-13" href="#__codelineno-17-13"></a>│ ▼ │
|
|
<a id="__codelineno-17-14" name="__codelineno-17-14" href="#__codelineno-17-14"></a>│ ┌─────────────────────────────────────────────────────────┐│
|
|
<a id="__codelineno-17-15" name="__codelineno-17-15" href="#__codelineno-17-15"></a>│ │ USA: DPF-Zertifizierung prüfen ││
|
|
<a id="__codelineno-17-16" name="__codelineno-17-16" href="#__codelineno-17-16"></a>│ │ ├── Zertifiziert ───> OK (SCC empfohlen als Backup) ││
|
|
<a id="__codelineno-17-17" name="__codelineno-17-17" href="#__codelineno-17-17"></a>│ │ └── Nicht zertifiziert ───> SCC + TIA erforderlich ││
|
|
<a id="__codelineno-17-18" name="__codelineno-17-18" href="#__codelineno-17-18"></a>│ └─────────────────────────────────────────────────────────┘│
|
|
<a id="__codelineno-17-19" name="__codelineno-17-19" href="#__codelineno-17-19"></a>│ │ │
|
|
<a id="__codelineno-17-20" name="__codelineno-17-20" href="#__codelineno-17-20"></a>│ ▼ │
|
|
<a id="__codelineno-17-21" name="__codelineno-17-21" href="#__codelineno-17-21"></a>│ ┌─────────────────────────────────────────────────────────┐│
|
|
<a id="__codelineno-17-22" name="__codelineno-17-22" href="#__codelineno-17-22"></a>│ │ Transfer Impact Assessment (TIA) ││
|
|
<a id="__codelineno-17-23" name="__codelineno-17-23" href="#__codelineno-17-23"></a>│ │ ├── Adequate ─────────────> Transfer OK ││
|
|
<a id="__codelineno-17-24" name="__codelineno-17-24" href="#__codelineno-17-24"></a>│ │ ├── Adequate + Measures ──> + Technical Supplementary ││
|
|
<a id="__codelineno-17-25" name="__codelineno-17-25" href="#__codelineno-17-25"></a>│ │ ├── Inadequate ───────────> Fix required ││
|
|
<a id="__codelineno-17-26" name="__codelineno-17-26" href="#__codelineno-17-26"></a>│ │ └── Not Feasible ─────────> Transfer NOT allowed ││
|
|
<a id="__codelineno-17-27" name="__codelineno-17-27" href="#__codelineno-17-27"></a>│ └─────────────────────────────────────────────────────────┘│
|
|
<a id="__codelineno-17-28" name="__codelineno-17-28" href="#__codelineno-17-28"></a>│ │
|
|
<a id="__codelineno-17-29" name="__codelineno-17-29" href="#__codelineno-17-29"></a>└─────────────────────────────────────────────────────────────────┘
|
|
</code></pre></div>
|
|
<h3 id="132-scc-versionen">13.2 SCC-Versionen<a class="headerlink" href="#132-scc-versionen" title="Permanent link">¶</a></h3>
|
|
<ul>
|
|
<li>Neue SCC (EU 2021/914) - <strong>erforderlich</strong> seit 27.12.2022</li>
|
|
<li>Alte SCC (vor 2021) - <strong>nicht mehr gültig</strong></li>
|
|
</ul>
|
|
<hr />
|
|
<h2 id="14-controls-catalog">14. Controls Catalog<a class="headerlink" href="#14-controls-catalog" title="Permanent link">¶</a></h2>
|
|
<h3 id="141-ubersicht">14.1 Übersicht<a class="headerlink" href="#141-ubersicht" title="Permanent link">¶</a></h3>
|
|
<p>Der Controls Catalog enthält ~30 Maßnahmenbausteine mit detaillierten Handlungsanweisungen.</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>┌─────────────────────────────────────────────────────────────────┐
|
|
<a id="__codelineno-18-2" name="__codelineno-18-2" href="#__codelineno-18-2"></a>│ Controls Catalog v1.0 │
|
|
<a id="__codelineno-18-3" name="__codelineno-18-3" href="#__codelineno-18-3"></a>├─────────────────────────────────────────────────────────────────┤
|
|
<a id="__codelineno-18-4" name="__codelineno-18-4" href="#__codelineno-18-4"></a>│ │
|
|
<a id="__codelineno-18-5" name="__codelineno-18-5" href="#__codelineno-18-5"></a>│ Kategorien: │
|
|
<a id="__codelineno-18-6" name="__codelineno-18-6" href="#__codelineno-18-6"></a>│ ├── DSGVO (Rechtsgrundlagen, Betroffenenrechte, Dokumentation) │
|
|
<a id="__codelineno-18-7" name="__codelineno-18-7" href="#__codelineno-18-7"></a>│ ├── AI_Act (Transparenz, HITL, Risikoeinstufung) │
|
|
<a id="__codelineno-18-8" name="__codelineno-18-8" href="#__codelineno-18-8"></a>│ ├── Technical (Verschlüsselung, Anonymisierung, PII-Gateway) │
|
|
<a id="__codelineno-18-9" name="__codelineno-18-9" href="#__codelineno-18-9"></a>│ └── Contractual (AVV, SCC, TIA) │
|
|
<a id="__codelineno-18-10" name="__codelineno-18-10" href="#__codelineno-18-10"></a>│ │
|
|
<a id="__codelineno-18-11" name="__codelineno-18-11" href="#__codelineno-18-11"></a>│ Struktur pro Control: │
|
|
<a id="__codelineno-18-12" name="__codelineno-18-12" href="#__codelineno-18-12"></a>│ ├── id: CTRL-xxx │
|
|
<a id="__codelineno-18-13" name="__codelineno-18-13" href="#__codelineno-18-13"></a>│ ├── title: Kurztitel │
|
|
<a id="__codelineno-18-14" name="__codelineno-18-14" href="#__codelineno-18-14"></a>│ ├── when_applicable: Wann erforderlich? │
|
|
<a id="__codelineno-18-15" name="__codelineno-18-15" href="#__codelineno-18-15"></a>│ ├── what_to_do: Konkrete Handlungsschritte │
|
|
<a id="__codelineno-18-16" name="__codelineno-18-16" href="#__codelineno-18-16"></a>│ ├── evidence_needed: Erforderliche Nachweise │
|
|
<a id="__codelineno-18-17" name="__codelineno-18-17" href="#__codelineno-18-17"></a>│ ├── effort: low | medium | high │
|
|
<a id="__codelineno-18-18" name="__codelineno-18-18" href="#__codelineno-18-18"></a>│ └── gdpr_ref: Rechtsgrundlage │
|
|
<a id="__codelineno-18-19" name="__codelineno-18-19" href="#__codelineno-18-19"></a>│ │
|
|
<a id="__codelineno-18-20" name="__codelineno-18-20" href="#__codelineno-18-20"></a>└─────────────────────────────────────────────────────────────────┘
|
|
</code></pre></div>
|
|
<h3 id="142-beispiel-controls">14.2 Beispiel-Controls<a class="headerlink" href="#142-beispiel-controls" title="Permanent link">¶</a></h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Titel</th>
|
|
<th>Kategorie</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>CTRL-CONSENT-EXPLICIT</td>
|
|
<td>Ausdrückliche Einwilligung</td>
|
|
<td>DSGVO</td>
|
|
</tr>
|
|
<tr>
|
|
<td>CTRL-AI-TRANSPARENCY</td>
|
|
<td>KI-Transparenz-Hinweis</td>
|
|
<td>AI_Act</td>
|
|
</tr>
|
|
<tr>
|
|
<td>CTRL-DSFA</td>
|
|
<td>Datenschutz-Folgenabschätzung</td>
|
|
<td>DSGVO</td>
|
|
</tr>
|
|
<tr>
|
|
<td>CTRL-SCC</td>
|
|
<td>Standardvertragsklauseln</td>
|
|
<td>Contractual</td>
|
|
</tr>
|
|
<tr>
|
|
<td>CTRL-TIA</td>
|
|
<td>Transfer Impact Assessment</td>
|
|
<td>Contractual</td>
|
|
</tr>
|
|
<tr>
|
|
<td>CTRL-LICENSE-PROOF</td>
|
|
<td>Lizenz-/Rechte-Nachweis</td>
|
|
<td>License</td>
|
|
</tr>
|
|
<tr>
|
|
<td>CTRL-LINK-ONLY-MODE</td>
|
|
<td>Evidence Navigator</td>
|
|
<td>License</td>
|
|
</tr>
|
|
<tr>
|
|
<td>CTRL-PII-GATEWAY</td>
|
|
<td>PII-Redaction Gateway</td>
|
|
<td>Technical</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<hr />
|
|
<h2 id="15-policy-dateien">15. Policy-Dateien<a class="headerlink" href="#15-policy-dateien" title="Permanent link">¶</a></h2>
|
|
<h3 id="151-dateistruktur">15.1 Dateistruktur<a class="headerlink" href="#151-dateistruktur" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a>policies/
|
|
<a id="__codelineno-19-2" name="__codelineno-19-2" href="#__codelineno-19-2"></a>├── ucca_policy_v1.yaml # Haupt-Policy (Regeln, Controls)
|
|
<a id="__codelineno-19-3" name="__codelineno-19-3" href="#__codelineno-19-3"></a>├── controls_catalog.yaml # Detaillierter Maßnahmenkatalog
|
|
<a id="__codelineno-19-4" name="__codelineno-19-4" href="#__codelineno-19-4"></a>├── gap_mapping.yaml # Facts → Gaps → Controls
|
|
<a id="__codelineno-19-5" name="__codelineno-19-5" href="#__codelineno-19-5"></a>├── wizard_schema_v1.yaml # Wizard-Fragen (9 Steps)
|
|
<a id="__codelineno-19-6" name="__codelineno-19-6" href="#__codelineno-19-6"></a>├── scc_legal_corpus.yaml # SCC/Transfer Rechtstexte
|
|
<a id="__codelineno-19-7" name="__codelineno-19-7" href="#__codelineno-19-7"></a>└── licensed_content_policy.yaml # Normen-Lizenz-Compliance (NEU)
|
|
</code></pre></div>
|
|
<h3 id="152-versions-management">15.2 Versions-Management<a class="headerlink" href="#152-versions-management" title="Permanent link">¶</a></h3>
|
|
<ul>
|
|
<li>Jedes Assessment speichert die <code>policy_version</code></li>
|
|
<li>Regeländerungen erzeugen neue Version</li>
|
|
<li>Audit-Trail zeigt welche Policy-Version verwendet wurde</li>
|
|
</ul>
|
|
<hr />
|
|
<h2 id="16-generic-obligations-framework">16. Generic Obligations Framework<a class="headerlink" href="#16-generic-obligations-framework" title="Permanent link">¶</a></h2>
|
|
<h3 id="161-ubersicht">16.1 Übersicht<a class="headerlink" href="#161-ubersicht" title="Permanent link">¶</a></h3>
|
|
<p>Das Generic Obligations Framework ermöglicht die automatische Ableitung regulatorischer Pflichten aus mehreren Verordnungen basierend auf Unternehmensfakten.</p>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>┌─────────────────────────────────────────────────────────────────┐
|
|
<a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a>│ Generic Obligations Framework │
|
|
<a id="__codelineno-20-3" name="__codelineno-20-3" href="#__codelineno-20-3"></a>├─────────────────────────────────────────────────────────────────┤
|
|
<a id="__codelineno-20-4" name="__codelineno-20-4" href="#__codelineno-20-4"></a>│ │
|
|
<a id="__codelineno-20-5" name="__codelineno-20-5" href="#__codelineno-20-5"></a>│ UnifiedFacts ───────────────────────────────────────────────── │
|
|
<a id="__codelineno-20-6" name="__codelineno-20-6" href="#__codelineno-20-6"></a>│ │ │
|
|
<a id="__codelineno-20-7" name="__codelineno-20-7" href="#__codelineno-20-7"></a>│ │ ├── organization: EmployeeCount, Revenue, Country │
|
|
<a id="__codelineno-20-8" name="__codelineno-20-8" href="#__codelineno-20-8"></a>│ │ ├── sector: PrimarySector, IsKRITIS, SpecialServices │
|
|
<a id="__codelineno-20-9" name="__codelineno-20-9" href="#__codelineno-20-9"></a>│ │ ├── data_protection: ProcessesPersonalData │
|
|
<a id="__codelineno-20-10" name="__codelineno-20-10" href="#__codelineno-20-10"></a>│ │ └── ai_usage: UsesAI, HighRiskCategories, IsGPAI │
|
|
<a id="__codelineno-20-11" name="__codelineno-20-11" href="#__codelineno-20-11"></a>│ │ │
|
|
<a id="__codelineno-20-12" name="__codelineno-20-12" href="#__codelineno-20-12"></a>│ ▼ │
|
|
<a id="__codelineno-20-13" name="__codelineno-20-13" href="#__codelineno-20-13"></a>│ ┌─────────────────────────────────────────────────────────────┐│
|
|
<a id="__codelineno-20-14" name="__codelineno-20-14" href="#__codelineno-20-14"></a>│ │ Obligations Registry ││
|
|
<a id="__codelineno-20-15" name="__codelineno-20-15" href="#__codelineno-20-15"></a>│ │ (Module Registration & Evaluation) ││
|
|
<a id="__codelineno-20-16" name="__codelineno-20-16" href="#__codelineno-20-16"></a>│ └──────────────────────────┬──────────────────────────────────┘│
|
|
<a id="__codelineno-20-17" name="__codelineno-20-17" href="#__codelineno-20-17"></a>│ │ │
|
|
<a id="__codelineno-20-18" name="__codelineno-20-18" href="#__codelineno-20-18"></a>│ ┌───────────────────┼───────────────────┐ │
|
|
<a id="__codelineno-20-19" name="__codelineno-20-19" href="#__codelineno-20-19"></a>│ │ │ │ │
|
|
<a id="__codelineno-20-20" name="__codelineno-20-20" href="#__codelineno-20-20"></a>│ ▼ ▼ ▼ │
|
|
<a id="__codelineno-20-21" name="__codelineno-20-21" href="#__codelineno-20-21"></a>│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
|
|
<a id="__codelineno-20-22" name="__codelineno-20-22" href="#__codelineno-20-22"></a>│ │ NIS2 │ │ DSGVO │ │ AI Act │ │
|
|
<a id="__codelineno-20-23" name="__codelineno-20-23" href="#__codelineno-20-23"></a>│ │ Module │ │ Module │ │ Module │ │
|
|
<a id="__codelineno-20-24" name="__codelineno-20-24" href="#__codelineno-20-24"></a>│ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ │
|
|
<a id="__codelineno-20-25" name="__codelineno-20-25" href="#__codelineno-20-25"></a>│ │ │ │ │
|
|
<a id="__codelineno-20-26" name="__codelineno-20-26" href="#__codelineno-20-26"></a>│ └───────────────────┴───────────────────┘ │
|
|
<a id="__codelineno-20-27" name="__codelineno-20-27" href="#__codelineno-20-27"></a>│ │ │
|
|
<a id="__codelineno-20-28" name="__codelineno-20-28" href="#__codelineno-20-28"></a>│ ▼ │
|
|
<a id="__codelineno-20-29" name="__codelineno-20-29" href="#__codelineno-20-29"></a>│ ┌─────────────────────────────────────────────────────────────┐│
|
|
<a id="__codelineno-20-30" name="__codelineno-20-30" href="#__codelineno-20-30"></a>│ │ ManagementObligationsOverview ││
|
|
<a id="__codelineno-20-31" name="__codelineno-20-31" href="#__codelineno-20-31"></a>│ │ ├── ApplicableRegulations[] ││
|
|
<a id="__codelineno-20-32" name="__codelineno-20-32" href="#__codelineno-20-32"></a>│ │ ├── Obligations[] (sortiert nach Priorität) ││
|
|
<a id="__codelineno-20-33" name="__codelineno-20-33" href="#__codelineno-20-33"></a>│ │ ├── RequiredControls[] ││
|
|
<a id="__codelineno-20-34" name="__codelineno-20-34" href="#__codelineno-20-34"></a>│ │ ├── IncidentDeadlines[] ││
|
|
<a id="__codelineno-20-35" name="__codelineno-20-35" href="#__codelineno-20-35"></a>│ │ ├── SanctionsSummary ││
|
|
<a id="__codelineno-20-36" name="__codelineno-20-36" href="#__codelineno-20-36"></a>│ │ └── ExecutiveSummary ││
|
|
<a id="__codelineno-20-37" name="__codelineno-20-37" href="#__codelineno-20-37"></a>│ └─────────────────────────────────────────────────────────────┘│
|
|
<a id="__codelineno-20-38" name="__codelineno-20-38" href="#__codelineno-20-38"></a>│ │
|
|
<a id="__codelineno-20-39" name="__codelineno-20-39" href="#__codelineno-20-39"></a>└─────────────────────────────────────────────────────────────────┘
|
|
</code></pre></div>
|
|
<h3 id="162-regulation-modules">16.2 Regulation Modules<a class="headerlink" href="#162-regulation-modules" title="Permanent link">¶</a></h3>
|
|
<p>Jede Regulierung wird als eigenständiges Modul implementiert:</p>
|
|
<p><strong>Implementierte Module:</strong></p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Modul</th>
|
|
<th>ID</th>
|
|
<th>Datei</th>
|
|
<th>Pflichten</th>
|
|
<th>Kontrollen</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>NIS2</td>
|
|
<td><code>nis2</code></td>
|
|
<td><code>nis2_module.go</code></td>
|
|
<td>~15</td>
|
|
<td>~8</td>
|
|
</tr>
|
|
<tr>
|
|
<td>DSGVO</td>
|
|
<td><code>dsgvo</code></td>
|
|
<td><code>dsgvo_module.go</code></td>
|
|
<td>~12</td>
|
|
<td>~6</td>
|
|
</tr>
|
|
<tr>
|
|
<td>AI Act</td>
|
|
<td><code>ai_act</code></td>
|
|
<td><code>ai_act_module.go</code></td>
|
|
<td>~15</td>
|
|
<td>~6</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<hr />
|
|
<h2 id="17-obligations-api-endpunkte">17. Obligations API-Endpunkte<a class="headerlink" href="#17-obligations-api-endpunkte" title="Permanent link">¶</a></h2>
|
|
<h3 id="171-assessment">17.1 Assessment<a class="headerlink" href="#171-assessment" title="Permanent link">¶</a></h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Method</th>
|
|
<th>Endpoint</th>
|
|
<th>Beschreibung</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>POST</td>
|
|
<td><code>/sdk/v1/ucca/obligations/assess</code></td>
|
|
<td>Pflichten-Assessment erstellen</td>
|
|
</tr>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/obligations/:id</code></td>
|
|
<td>Assessment abrufen</td>
|
|
</tr>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/obligations</code></td>
|
|
<td>Assessments auflisten</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3 id="172-export">17.2 Export<a class="headerlink" href="#172-export" title="Permanent link">¶</a></h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Method</th>
|
|
<th>Endpoint</th>
|
|
<th>Beschreibung</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>POST</td>
|
|
<td><code>/sdk/v1/ucca/obligations/export/memo</code></td>
|
|
<td>Memo exportieren (gespeichert)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>POST</td>
|
|
<td><code>/sdk/v1/ucca/obligations/export/direct</code></td>
|
|
<td>Direkt-Export ohne Speicherung</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3 id="173-regulations">17.3 Regulations<a class="headerlink" href="#173-regulations" title="Permanent link">¶</a></h3>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Method</th>
|
|
<th>Endpoint</th>
|
|
<th>Beschreibung</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/regulations</code></td>
|
|
<td>Liste aller Regulierungsmodule</td>
|
|
</tr>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/sdk/v1/ucca/regulations/:id/decision-tree</code></td>
|
|
<td>Decision Tree für Regulierung</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<hr />
|
|
<h2 id="18-dateien-des-obligations-framework">18. Dateien des Obligations Framework<a class="headerlink" href="#18-dateien-des-obligations-framework" title="Permanent link">¶</a></h2>
|
|
<h3 id="181-backend-go">18.1 Backend (Go)<a class="headerlink" href="#181-backend-go" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>internal/ucca/
|
|
<a id="__codelineno-21-2" name="__codelineno-21-2" href="#__codelineno-21-2"></a>├── obligations_framework.go # Interfaces, Typen, Konstanten
|
|
<a id="__codelineno-21-3" name="__codelineno-21-3" href="#__codelineno-21-3"></a>├── obligations_registry.go # Modul-Registry, EvaluateAll()
|
|
<a id="__codelineno-21-4" name="__codelineno-21-4" href="#__codelineno-21-4"></a>├── nis2_module.go # NIS2 Decision Tree + Pflichten
|
|
<a id="__codelineno-21-5" name="__codelineno-21-5" href="#__codelineno-21-5"></a>├── nis2_module_test.go # NIS2 Tests
|
|
<a id="__codelineno-21-6" name="__codelineno-21-6" href="#__codelineno-21-6"></a>├── dsgvo_module.go # DSGVO Pflichten
|
|
<a id="__codelineno-21-7" name="__codelineno-21-7" href="#__codelineno-21-7"></a>├── dsgvo_module_test.go # DSGVO Tests
|
|
<a id="__codelineno-21-8" name="__codelineno-21-8" href="#__codelineno-21-8"></a>├── ai_act_module.go # AI Act Risk Classification
|
|
<a id="__codelineno-21-9" name="__codelineno-21-9" href="#__codelineno-21-9"></a>├── ai_act_module_test.go # AI Act Tests
|
|
<a id="__codelineno-21-10" name="__codelineno-21-10" href="#__codelineno-21-10"></a>├── pdf_export.go # PDF/Markdown Export
|
|
<a id="__codelineno-21-11" name="__codelineno-21-11" href="#__codelineno-21-11"></a>└── pdf_export_test.go # Export Tests
|
|
</code></pre></div>
|
|
<h3 id="182-policy-dateien-yaml">18.2 Policy-Dateien (YAML)<a class="headerlink" href="#182-policy-dateien-yaml" title="Permanent link">¶</a></h3>
|
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>policies/obligations/
|
|
<a id="__codelineno-22-2" name="__codelineno-22-2" href="#__codelineno-22-2"></a>├── nis2_obligations.yaml # ~15 NIS2-Pflichten
|
|
<a id="__codelineno-22-3" name="__codelineno-22-3" href="#__codelineno-22-3"></a>├── dsgvo_obligations.yaml # ~12 DSGVO-Pflichten
|
|
<a id="__codelineno-22-4" name="__codelineno-22-4" href="#__codelineno-22-4"></a>└── ai_act_obligations.yaml # ~15 AI Act-Pflichten
|
|
</code></pre></div>
|
|
<hr />
|
|
<p><em>Dokumentation erstellt: 2026-01-29</em>
|
|
<em>Version: 2.1.0</em></p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</article>
|
|
</div>
|
|
|
|
|
|
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
|
|
|
|
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
</div>
|
|
|
|
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
|
|
Zurück zum Seitenanfang
|
|
</button>
|
|
|
|
</main>
|
|
|
|
<footer class="md-footer">
|
|
|
|
<div class="md-footer-meta md-typeset">
|
|
<div class="md-footer-meta__inner md-grid">
|
|
<div class="md-copyright">
|
|
|
|
|
|
Made with
|
|
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
Material for MkDocs
|
|
</a>
|
|
|
|
</div>
|
|
|
|
|
|
<div class="md-social">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a href="http://macmini:3003/breakpilot/breakpilot-pwa" target="_blank" rel="noopener" title="macmini:3003" class="md-social__link">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
</div>
|
|
<div class="md-dialog" data-md-component="dialog">
|
|
<div class="md-dialog__inner md-typeset"></div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<script id="__config" type="application/json">{"annotate": null, "base": "../../..", "features": ["search.highlight", "search.suggest", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "content.code.copy", "content.tabs.link", "toc.follow"], "search": "../../../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}, "version": null}</script>
|
|
|
|
|
|
<script src="../../../assets/javascripts/bundle.79ae519e.min.js"></script>
|
|
|
|
|
|
</body>
|
|
</html> |