Files
mpm/modules/README.md

56 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.