feat: Phase 1 – Plattform-Grundgerüst (Docker, NestJS, React, Auth)

This commit is contained in:
MPM Dev
2026-10-06 14:22:11 +02:00
commit a7e1c421f2
85 changed files with 17701 additions and 0 deletions

56
modules/README.md Normal file
View File

@@ -0,0 +1,56 @@
# MPM – Module
Dieses Verzeichnis enthält ab **Phase 3** die installierbaren Module der Plattform (z. B. das Referenzmodul Kalender).
## Modul-Vertrag (Ausblick)
Jedes Modul ist eine eigenständige Applikation mit:
- eigenständiger Oberfläche, Business-Logik, API und Datenbank-Schema
- einem Manifest `module.json`
- einem minimalen API-Vertrag
### Manifest
```json
{
"id": "calendar",
"name": "Kalender",
"version": "1.0.0",
"slug": "kalender-tool",
"description": "Kalenderverwaltung",
"author": "…",
"runtime": "node",
"entrypoint": "server.js",
"port": 41001,
"healthcheck": "/health",
"apiVersion": "v1"
}
```
### Minimal-API je Modul
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | `/health` | Liveness/Readiness |
| GET | `/api/manifest` | Manifest zur Laufzeit |
| GET | `/api/me` | Aktueller Benutzer (von der Plattform übergeben) |
### Paketstruktur (ZIP-Installation)
```
calendar-module/
├── module.json
├── backend/
├── frontend/
├── migrations/
├── assets/
└── README.md
```
### Grundsätze
- Module laufen als **interne Prozesse** im Management-Container (kein Docker-in-Docker) auf eigenen Ports (41001+), die nie nach außen veröffentlicht werden.
- Module sind **nicht vertrauenswürdig** und erhalten nur minimal benötigte Rechte.
- Ein Modul darf niemals in fremde Schemas schreiben; jedes Modul erhält ein eigenes PostgreSQL-Schema.
- Entfernt ein Admin ein Modul, müssen alle übrigen Plattformfunktionen unverändert weiterlaufen.