feat: Phase 1 – Plattform-Grundgerüst (Docker, NestJS, React, Auth)
This commit is contained in:
56
modules/README.md
Normal file
56
modules/README.md
Normal 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.
|
||||
Reference in New Issue
Block a user