docs: Projekt-API in API-Docs, Developer Portal + MKDocs ergaenzen
Some checks failed
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Failing after 38s
CI / test-python-backend-compliance (push) Successful in 1m0s
CI / test-python-document-crawler (push) Successful in 23s
CI / test-python-dsms-gateway (push) Successful in 20s

- endpoints.ts: Neues Modul "Projekte — Multi-Projekt-Verwaltung" (5 Endpoints)
- Developer Portal: projectId im Beispiel-Code, Multi-Projekt als Feature
- multi-tenancy.md: Verweis auf multi-project.md + neue Tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-03-09 15:59:27 +01:00
parent 0c83e765d9
commit d53cf21b95
3 changed files with 31 additions and 2 deletions

View File

@@ -131,6 +131,21 @@ export const apiModules: ApiModule[] = [
],
},
{
id: 'projects',
name: 'Projekte — Multi-Projekt-Verwaltung',
service: 'python',
basePath: '/api/compliance/v1/projects',
exposure: 'internal',
endpoints: [
{ method: 'GET', path: '/', description: 'Alle Projekte des Tenants auflisten', service: 'python' },
{ method: 'POST', path: '/', description: 'Neues Projekt erstellen (optional mit Stammdaten-Kopie)', service: 'python' },
{ method: 'GET', path: '/{project_id}', description: 'Einzelnes Projekt laden', service: 'python' },
{ method: 'PATCH', path: '/{project_id}', description: 'Projekt aktualisieren (Name, Beschreibung)', service: 'python' },
{ method: 'DELETE', path: '/{project_id}', description: 'Projekt archivieren (Soft Delete)', service: 'python' },
],
},
{
id: 'compliance-scope',
name: 'Compliance Scope — Geltungsbereich',

View File

@@ -102,6 +102,7 @@ function App() {
return (
<SDKProvider
tenantId="your-tenant-id"
projectId="your-project-id"
apiKey={process.env.BREAKPILOT_API_KEY}
>
<ComplianceDashboard />
@@ -197,10 +198,16 @@ function ComplianceDashboard() {
{/* Features */}
<h2>Hauptfunktionen</h2>
<div className="grid grid-cols-1 md:grid-cols-2 gap-4 not-prose">
<div className="p-4 border border-gray-200 rounded-lg">
<h4 className="font-medium text-gray-900 mb-2">Multi-Projekt &amp; Multi-Tenant</h4>
<p className="text-sm text-gray-600">
Mehrere Compliance-Projekte pro Tenant mit isolierten Stammdaten und paralleler Bearbeitung
</p>
</div>
<div className="p-4 border border-gray-200 rounded-lg">
<h4 className="font-medium text-gray-900 mb-2">19-Schritt-Workflow</h4>
<p className="text-sm text-gray-600">
Geführter Compliance-Prozess von Use Case bis DSR-Portal
Gefuehrter Compliance-Prozess von Use Case bis DSR-Portal
</p>
</div>
<div className="p-4 border border-gray-200 rounded-lg">
@@ -218,7 +225,7 @@ function ComplianceDashboard() {
<div className="p-4 border border-gray-200 rounded-lg">
<h4 className="font-medium text-gray-900 mb-2">Export</h4>
<p className="text-sm text-gray-600">
PDF, JSON, ZIP-Export für Audits und Dokumentation
PDF, JSON, ZIP-Export fuer Audits und Dokumentation
</p>
</div>
</div>

View File

@@ -54,7 +54,14 @@ Der Next.js-Proxy setzt automatisch den `X-Tenant-ID` Header:
headers['X-Tenant-ID'] = clientTenantId || process.env.DEFAULT_TENANT_ID || '9282a473-...'
```
## Multi-Projekt pro Tenant
Seit Migration 039 kann jeder Tenant mehrere Compliance-Projekte anlegen. Jedes Projekt hat einen eigenen SDK-State und eigene Stammdaten (CompanyProfile).
Details: [Multi-Projekt-Architektur](multi-project.md)
## Tests
- 20 Tests in `test_vvt_tenant_isolation.py`
- UUID-Validierung, Header-/Query-Precedence, Model-Column-Checks, Route-Isolation
- 6 Test-Klassen in `test_project_routes.py` — Projekt-CRUD, Tenant-Isolation, State-Isolation