Administration
Betriebshandbuch für Administratoren: Benutzer, Rollen (RBAC), Workspaces, Audit, Lizenzen und administrative Backups. Alle Operationen erfordern authMiddleware plus spezifische Berechtigungen - siehe die API Reference für das vollständige Endpoint-Inven…
Betriebshandbuch für Administratoren: Benutzer, Rollen (RBAC), Workspaces, Audit, Lizenzen und administrative Backups. Alle Operationen erfordern authMiddleware plus spezifische Berechtigungen - siehe die API Reference für das vollständige Endpoint-Inventar.
Bootstrap-Admin
Beim ersten Start (wenn SEED_BOOTSTRAP_ADMIN=true) erstellt der Server einen Admin mit Zugangsdaten aus der Env (SEED_ADMIN_USERNAME=admin, SEED_ADMIN_PASSWORD=admin123, [email protected]). Das Konto hat mustChangePassword=true → der erste Login erzwingt die Änderung. Setup Wizard via GET /api/system/is-initialized → POST /api/system/initialize.
Sicherheit: Ändere sofort das Bootstrap-Passwort und setze ein starkesJWT_SECRETin Produktion. Der FallbackscryptSync(JWT_SECRET, ...)fürENCRYPTION_KEYmachtJWT_SECRETzu kryptographischem Material - setze es nicht exponiert.
Benutzer - /api/users
| Operation | Endpoint | Berechtigung |
|---|---|---|
| Paginierte Liste | GET /users | requireAdmin |
| Detail | GET /users/:id | self/admin |
| Bearbeitung | PUT/PATCH /users/:id | self/admin (updateUserSchema) |
| Löschen | DELETE /users/:id | requireAdmin |
| Avatar | POST/DELETE /users/:id/avatar | JWT (multipart) |
Delete: DELETE ist ein Hard Delete mit Cleanup der Relationen (UserRole, ProjectAccess, WorkspaceAccess) und Invalidierung des Auth-Caches; der Admin kann sich nicht selbst löschen. updateUserSchema validiert username/email/password/firstName/lastName/customInstructions/textSize (die Custom Instructions werden dem System-Prompt des Agenten vorangestellt); Nicht-Admins können ihr eigenes Passwort nicht über diesen Endpoint ändern.
Rollen & RBAC - /api/roles
31 Berechtigungen definiert in packages/shared/src/constants/permissions.ts (PERMISSION_NAMES). 13 Menü-Sektionen (MENU_SECTIONS, enthält uploads).
| Operation | Endpoint | Berechtigung |
|---|---|---|
| Sichtbare Menü-Sektionen | GET /roles/me/menu-sections | JWT |
| Rollenliste | GET /roles | requireAdmin |
| Detail | GET /roles/:roleId | requireAdmin (UUID) |
| Erstellen | POST /roles | requireAdmin (createRoleSchema, isDefault=false) |
| Update | PUT /roles/:roleId | requireAdmin (atomarer Replace der Berechtigungen) |
| Rollen-Menü-Sektionen | PUT /roles/:roleId/menu-sections | requireAdmin |
| Löschen | DELETE /roles/:roleId | requireAdmin |
| Zuweisen/Entziehen | POST /roles/assign /revoke | requireAdmin |
Standardrollen: admin (alle 31 Berechtigungen) und user (11 Berechtigungen: die 9 Basis plus memory:read/memory:write für die Per-User-Memories; filters:manage ist admin/superuser vorbehalten). "Superuser" entspricht admin. Die Berechtigungen werden via requirePermission(name) oder dem Shortcut requireAdmin geprüft. Die Zuweisung ist many-to-many (UserRole).
Workspaces & Projects
Workspace (/api/workspaces): Isolationseinheit für Chats, Dokumente, Agent Config.
- Erstellung:
workspace:create+ Licensemax_workspaces(Community 3, Enterprise ∞). - Zugriff:
requireWorkspaceAccessMiddleware (Join-TabelleWorkspaceAccess). - Soft-Delete + Restore (
PUT /:id/restore). - Chat-Ordner:
/:id/folders[/:folderId]+ Restore.
Project (/api/projects): gruppiert zusammengehörige Workspaces.
- Erstellung:
project:create+ Licensemax_projects. - Zugriff:
requireProjectAccess(ProjectAccess). - Archiv-Export:
GET /:projectId/export(Stream). - Usage Stats:
GET /:projectId/usage.
Audit / Event Log - /api/event-logs
License audit_log_immutable (Enterprise). GET mit Filtern entityType/entityId/userId + Limit/Offset (Paginierung). eventLogService.logEvent delegiert das Schreiben an das Enterprise-Plugin (No-op in Community) und dispatcht die Webhooks fire-and-forget. Geloggte Entitäten (EntityType): user, workspace, project, chat, document, mcp_connection, dlp, archive/archive_page/archive_import, ocr_job, synthesis_run, wiki_edit, backup_destination/backup_job, provider, memory. Wenn das Immutable-Flag aktiv ist, sind die Records nicht änderbar/löschbar (Append-Only auf App-Ebene).
Lizenzen
- Community (Standard): begrenzte Flags (siehe 03 - Configuration).
- Enterprise:
LICENSE_KEY(JWT HS256) +LICENSE_SECRET. Payload validiert gegenlicensePayloadSchema. Abgelaufen/ungültig → Fallback Community mit Warn, Graceful Degradation zur Runtime (kein Restart). - Endpoint:
GET /api/license/info(öffentlich) →{ license, features }. - Gating:
requireFeature(flag)→ 402;requireFeatureLimit(flag, model)→ 402 wenncount >= limit(Enterprise =Infinity).
Administrative Backups
Siehe 05 - Feature Guide § Backup. Admin-Endpoints:
- Logs
/api/system/backups(backup:log:read). - Destinations
/api/backup-destinations(backup:destination:read/write, Licensemax_backup_destinations). - Jobs
/api/backup-jobs(backup:job:read/write), manueller TriggerPOST /:id/run. - Restore
/api/backups/restore/:logId[/dry-run](backup:restore:write). - Destinationstest
POST /backup-destinations/:id/test.
Settings - /api/system/settings
GET/PUT Bulk (gibt { updated, rejected } zurück). Gruppen: LLM, Embedding/Vector, Ports/URLs, Auth, Branding (gated white_label), Feature, OCR, Synthesis, Retention. ALWAYS_READONLY-Keys werden abgelehnt. Chat Retention nur via PUT /api/system/chat-retention (audited, confirmDataLoss: true). Details in 03 - Configuration.
SSO - /api/sso
License sso_enabled. GET/PUT /config, POST /test. SAML/OIDC Enterprise-Konfiguration.
Cross-Link
- Berechtigungen/Flags: 03 - Configuration
- Vollständige Endpoints: 04 - API Reference
- Operativer Deploy: 09 - Deployment