# Vendoo Module Manager 1.40.0

## Zielarchitektur

Vendoo bleibt ein modularer Monolith. Eingebaute Module laufen über den Plattformkernel; Fremdmodule werden als `.vmod`-Pakete verwaltet. Drittanbieter-Code wird nicht ungeprüft im Hauptprozess ausgeführt.

## Modulklassen

### Geschützte Kernmodule

Systemrelevante Module wie Security, Auth, Benutzer, Sitzungen, Einstellungen, Themes, Listings, Inventory, Media, Operations und der Modulmanager selbst können weder deaktiviert noch gelöscht werden.

### Optionale Vendoo-Module

Publishing, AI, FLUX Studio und Quality Center können kontrolliert aktiviert oder deaktiviert werden. Der Registry-Graph prüft Abhängigkeiten. Beim Aktivieren werden notwendige Abhängigkeiten automatisch gestartet; beim Deaktivieren ist eine bewusste Kaskadenentscheidung erforderlich.

### Installierte Fremdmodule

- `declarative`: ausschließlich Daten, Manifest und freigegebene UI-/Metadaten; kein ausführbarer Code.
- `isolated`: ausführbarer Code, nur mit vertrauenswürdiger Ed25519-Signatur und isoliertem Extension-Host.
- `builtin-reference`: Exportformat eingebauter Module, nicht als Fremdmodul installierbar.

Der isolierte Extension-Host ist in 1.40.0 noch nicht für die Ausführung freigegeben. Solche Pakete können geprüft und quarantänisiert, aber nicht aktiviert werden.

## Paketvertrag

Ein `.vmod`-Paket enthält:

- Format und Schemaversion
- validiertes Modulmanifest
- Runtime-Modus und optionalen Einstiegspunkt
- Dateien als Base64 mit Größe und SHA-256
- kanonische Gesamtintegrität
- optionale Ed25519-Signatur

Pfade mit Traversal, absoluten Pfaden, Laufwerkspräfix oder Nullbytes werden abgewiesen. Paket- und Dateigrößen sind begrenzt.

## Persistenz

- Pakete: `modules/<module-id>/package.vmod`
- Aktivierungszustand: `config/modules-state.json`
- Docker/NAS/VPS: eigener persistenter Mount `/app/data/modules`

Backups und Rollbacks behandeln `config/` und `modules/` als zusammengehörige Laufzeitdaten.

## API und UI

Administration erfolgt ausschließlich über `/api/admin/modules` und die Oberfläche **Administration → Module**. Alle Routen benötigen `modules.manage`, CSRF-Schutz bei Änderungen und Audit-Einträge.

## Sicherheitsgrenze

Deaktivierte Module blockieren ihre eigenen Kernel-Routen und die kompatiblen Legacy-API-Namensräume mit HTTP 503 `MODULE_DISABLED`. Installation bedeutet niemals automatische Aktivierung.
