Freigaben (Permissions)¶
Das MoE-System verwendet ein Whitelist-Modell: Standardmäßig sind alle Zugriffe gesperrt. Jede Ressource muss explizit für einen User freigegeben werden.
Konzept¶
User → hat Permissions → darf Ressourcen nutzen
├── Expert-Templates (welche Vorlagen?)
├── CC-Profile (welches Profil?)
├── Modell-Endpunkte (welche LLMs?)
├── Skills (welche /commands?)
├── MCP-Tools (welche Tools?)
└── MoE-Modi (welche Pipeline?)
Ressource-Typen¶
resource_type |
Beispiel resource_id |
Bedeutung |
|---|---|---|
expert_template |
tmpl-uuid-... |
Zugriff auf ein bestimmtes Admin-Template |
cc_profile |
prof-uuid-... |
Zugriff auf ein CC-Profil |
model_endpoint |
qwen2.5:32b@RTX |
Zugriff auf Modell X am Server Y |
model_endpoint |
* |
Zugriff auf alle Modelle aller Server |
skill |
pdf |
Zugriff auf den /pdf Skill |
skill |
* |
Zugriff auf alle Skills |
mcp_tool |
calc |
Zugriff auf das calc MCP-Tool |
mcp_tool |
* |
Zugriff auf alle MCP-Tools |
moe_mode |
native |
Direkter GPU-Zugriff (niedrigste Latenz) |
moe_mode |
moe_reasoning |
Reasoning-Expert-Pipeline |
moe_mode |
moe_orchestrated |
Vollständige MoE-Pipeline |
Freigaben verwalten¶
Im User-Edit-Dialog → Tab Freigaben:
Aktive Freigaben¶
Die obere Tabelle zeigt alle aktuell gültigen Freigaben des Users:
| Spalte | Beschreibung |
|---|---|
| ☐ (Checkbox) | Mehrfachauswahl für Bulk-Delete |
| Typ (Badge) | resource_type farblich kodiert |
| Ressource | resource_id (mit aufgelöstem Namen wenn möglich) |
| 🗑 (Button) | Einzelne Freigabe entziehen |
Bulk-Delete: Mehrere Checkboxen anklicken → Ausgewählte entziehen → Bestätigung → alle ausgewählten Freigaben werden entfernt. Der Tab bleibt dabei auf Freigaben aktiv.
Alle auswählen: Checkbox im Tabellen-Header selektiert alle Einträge auf einmal.
Freigaben hinzufügen¶
Fünf Sektionskarten ermöglichen das gezielte Hinzufügen von Freigaben:
- Dropdown mit allen Admin-Templates (Name + ID)
- Mehrfachauswahl möglich
- Klick auf + → speichert Freigabe
- Dropdown mit allen CC-Profilen
- Mehrfachauswahl möglich
- Gruppiertes Dropdown nach Inferenz-Server
- Format:
Modell@Server - Wildcard
*verfügbar für alle Modelle
- Dropdown mit allen aktivierten Skills
- Schnell-Button Alle Skills freigeben → grant
skill:*
- Dropdown mit allen aktiven MCP-Tools
- Schnell-Button Alle MCP Tools freigeben → grant
mcp_tool:*
Erweiterte Freigaben (moe_mode)¶
Aufklappbarer Bereich für manuelle Eingabe von moe_mode-Freigaben:
- Typ:
moe_mode(fixed) - Wert: z.B.
native,moe_reasoning,moe_orchestrated
Workflow: Freigaben speichern¶
Zwei Wege:
- Sektionsweise: Checkboxen in einer Karte anklicken → + drücken → nur diese Kategorie wird gespeichert
- Alle auf einmal: Checkboxen in mehreren Karten anklicken → Freigaben speichern → alle ausgewählten werden in einem Schritt angelegt
Auswirkungen auf den Cluster¶
| Freigabe | Auswirkung bei Anfrage ohne Freigabe |
|---|---|
model_endpoint fehlt |
HTTP 403 – Modell nicht erlaubt |
expert_template fehlt |
Template wird in UI nicht angezeigt |
skill fehlt |
/skill-name gibt 403 zurück |
mcp_tool fehlt |
Tool-Call wird blockiert |
moe_mode fehlt |
Anfrage mit diesem Modus wird abgewiesen |
Redis-Sync¶
Nach jeder Änderung an Freigaben wird der Redis-Cache des Users sofort aktualisiert:
Der Orchestrator prüft Freigaben ausschließlich aus dem Redis-Cache (TTL: 5 Minuten). Änderungen greifen daher spätestens nach 5 Minuten, in der Praxis sofort nach dem nächsten Request.
Datenbankschema¶
CREATE TABLE permissions (
id TEXT PRIMARY KEY, -- UUID4
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
resource_type TEXT NOT NULL,
resource_id TEXT NOT NULL,
granted_at TEXT NOT NULL, -- ISO-8601 UTC
UNIQUE(user_id, resource_type, resource_id)
);
Duplikate
Ein doppeltes Grant (gleiche user_id + resource_type + resource_id) wird durch den UNIQUE-Constraint ignoriert und erzeugt keinen Fehler.