feat: Phase 8 – Modul-SDK (createModuleServer, Config, Logger, Platform-Client)

This commit is contained in:
MPM Dev
2026-10-07 16:29:40 +02:00
parent 0abe7b7abc
commit e6219e8cf9
9 changed files with 1081 additions and 107 deletions

View File

@@ -10,8 +10,8 @@ Der Arbeitsplan sieht zehn inkrementelle Phasen vor. Nach jeder Phase muss das S
| 4 | Gateway & dynamisches Routing (`/slug`) | ✅ Abgeschlossen |
| 5 | Berechtigungssystem (User ↔ Module) | ✅ Abgeschlossen |
| 6 | Modul-API (`/health`, `/api/manifest`, `/api/me`) | ✅ Abgeschlossen |
| 7 | Referenzmodul Kalender | ⏳ Geplant |
| 8 | Modul-SDK (`platform-module-sdk`) | ⏳ Geplant |
| 7 | Referenzmodul Kalender | ⏳ Übersprungen (bestehende Projekte werden stattdessen eingebunden) |
| 8 | Modul-SDK (`platform-module-sdk`) | ✅ Abgeschlossen |
| 9 | Administration (Übersichten, Audit-UI, Einstellungen) | ⏳ Geplant |
| 10 | Security Hardening & Produktivbetrieb | ⏳ Geplant |
@@ -105,9 +105,28 @@ Definition of Done: `GET /health`, `GET /api/manifest`, `GET /api/me` plus zentr
- [x] Backend-Tests: 98 bestanden (inkl. 8 SDK-Tests)
- [x] E2E verifiziert: `/demo/health` → vertragskonform, `/demo/api/manifest` → Manifest, `/demo/api/me` → Identität vom Gateway (admin/ADMIN, Permissions); direkter Aufruf ohne Identität → 401; ohne Login → 401 vom Gateway
## Nächste Schritte (Phase 7 – Referenzmodul Kalender)
## Phase 7 – Referenzmodul Kalender (übersprungen)
- Vollständiges Kalender-Modul (Dashboard, Kalender, Termine, Teilnehmer, Einstellungen)
- Eigenes PostgreSQL-Schema (`calendar.*`) mit Migrationen
- Frontend mit eigener Oberfläche, integriert in das Plattform-Design
- Dient als Referenzimplementierung für zukünftige Module
Entscheidung: Das Kalender-Modul wird zugunsten der Einbindung bestehender Projekte übersprungen. Das Demo-Modul dient als Referenzimplementierung des Modul-Vertrags.
## Phase 8 – Modul-SDK (abgeschlossen)
Definition of Done: `platform-module-sdk` mit Authentication, Current User, Permissions, API Client, Module Config, Logging, Healthcheck.
- [x] SDK-Paket `packages/platform-module-sdk` (CommonJS, vendor-fähig als Einzeldatei)
- [x] `createModuleServer`: verdrahtet den vollständigen Vertrag (health, manifest, me) + fachliche Routen mit Identitäts-Context
- [x] `extractIdentity`: Gateway-Header (case-insensitive, Rollen-Validierung, 401-Verhalten)
- [x] `loadManifest`: Manifest-Validierung (Pflichtfelder, Runtime, apiVersion)
- [x] `loadModuleConfig`: PORT, NODE_ENV, PLATFORM_INTERNAL_URL, MODULE_SERVICE_TOKEN
- [x] `createLogger`: strukturierte JSON-Logs mit automatischem Schwärzen sensibler Schlüssel
- [x] `createPlatformClient`: interner HTTP-Client zur Plattform (Service-Token vorbereitet)
- [x] Demo-Modul vollständig auf das SDK umgestellt (Vendor-Pattern)
- [x] Backend-Tests: 116 bestanden (inkl. 26 SDK-Tests: Vertrag, Manifest, Config, Logger-Schwärzung, Server-Verhalten)
- [x] E2E verifiziert: SDK-Vertrag über Gateway (health/manifest/me), fachliche Route, 404, 401 ohne Identität
## Nächste Schritte (Phase 9 – Administration)
- Audit-Log-UI (durchsuchen, filtern)
- Systemeinstellungen (Backend + UI)
- Systemstatus-Dashboard erweitern (Modul-Healths)
- Danach: Einbindung bestehender Projekte als Module (ersetzt Phase 7)