From d53cf21b958f72777ddf44568d9640b5b9d7d362 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Mon, 9 Mar 2026 15:59:27 +0100 Subject: [PATCH] docs: Projekt-API in API-Docs, Developer Portal + MKDocs ergaenzen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- admin-compliance/lib/sdk/api-docs/endpoints.ts | 15 +++++++++++++++ developer-portal/app/page.tsx | 11 +++++++++-- docs-src/services/sdk-modules/multi-tenancy.md | 7 +++++++ 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/admin-compliance/lib/sdk/api-docs/endpoints.ts b/admin-compliance/lib/sdk/api-docs/endpoints.ts index c0817aa..9fd0fed 100644 --- a/admin-compliance/lib/sdk/api-docs/endpoints.ts +++ b/admin-compliance/lib/sdk/api-docs/endpoints.ts @@ -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', diff --git a/developer-portal/app/page.tsx b/developer-portal/app/page.tsx index 5bea0cd..2dc5099 100644 --- a/developer-portal/app/page.tsx +++ b/developer-portal/app/page.tsx @@ -102,6 +102,7 @@ function App() { return ( @@ -197,10 +198,16 @@ function ComplianceDashboard() { {/* Features */}

Hauptfunktionen

+
+

Multi-Projekt & Multi-Tenant

+

+ Mehrere Compliance-Projekte pro Tenant mit isolierten Stammdaten und paralleler Bearbeitung +

+

19-Schritt-Workflow

- Geführter Compliance-Prozess von Use Case bis DSR-Portal + Gefuehrter Compliance-Prozess von Use Case bis DSR-Portal

@@ -218,7 +225,7 @@ function ComplianceDashboard() {

Export

- PDF, JSON, ZIP-Export für Audits und Dokumentation + PDF, JSON, ZIP-Export fuer Audits und Dokumentation

diff --git a/docs-src/services/sdk-modules/multi-tenancy.md b/docs-src/services/sdk-modules/multi-tenancy.md index 1ede838..64801c9 100644 --- a/docs-src/services/sdk-modules/multi-tenancy.md +++ b/docs-src/services/sdk-modules/multi-tenancy.md @@ -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