56 lines
1.5 KiB
Markdown
56 lines
1.5 KiB
Markdown
# 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. |