feat: Phase 8 – Modul-SDK (createModuleServer, Config, Logger, Platform-Client)
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user