Zum Inhalt springen

Benutzer, Teams, Tokens

Du verwaltest im tibi-admin (Verwaltungs-Backend, Release Nova), wer sich anmelden und was jede Person darf: Benutzerkonten, Teams, Organisationen, Rollen, persönliche Token (PATs) und die Stellvertretung. Server-Regeln dazu stehen unter Rechte und Tokens, die vier HTTP-Köpfe unter Token-Köpfe.

  1. Login-Seite öffnen (LoginPage.svelte): Benutzername und Passwort eingeben.
  2. Bei Erfolg legt der Admin ein JWT in den Store und plant die Auffrischung (scheduleTokenRefresh); danach landet du auf /projects.
  3. Bei Sitzungsende warnt SessionTimeoutWarning.svelte: 60-Sekunden-Countdown mit Verlängern- oder Abmelden-Knopf — ohne Reaktion folgt die Abmeldung.
  4. Sprache (DE/EN) und Theme stellst du auf der Login-Karte um.
Verhalten Quelle
Fehlgeschlagener Login Rote Fehlerbox, keine Weiterleitung
Inaktivitäts-Timer utils/inactivityTracker + Countdown-Dialog (resetInactivityTimer)
Eigene Daten ändern Profilseite („Mein Profil”): Name, E-Mail, Firma, Abteilung, Avatar, Passwort (min. 6 Zeichen, doppelt bestätigt)

Die Kette lautet Org → Team → Benutzer → Projekt. Du pflegst sie im Admin-Hub (components/admin/):

Ebene Komponenten Inhalt
Benutzer UserTab (Liste mit Suche, Filter, Sortierung, Paginierung), UserCreateDrawer, UserDetailDrawer Name, Login, Rolle, Org-/Team-Mitgliedschaften
Teams TeamTab, TeamCreateDrawer, TeamDetailDrawer Name, Farbe, Org-Zugehörigkeit, Mitglieder, Berechtigungen
Projekte ProjectAdminView, ProjectDetailDrawer, ProjectCreateDrawer Name, Status (online/offline), Org-Zuordnung, Rechte-Matrix

Der Team-Drawer zeigt Einstellungen mit Name, Organisation, Beschreibung und Farbe, darunter die Berechtigungen als Chips (Eingabehilfe z.B. pages, media, admin, Knopf Berechtigung hinzufügen) und die Teammitglieder mit Benutzer anlegen.

Team-Drawer im tibi-admin: Einstellungen mit Name, Organisation, Beschreibung und Farbe, Berechtigungs-Chips und Teammitglieder mit Benutzer-Anlegen-Knopf

Der Org-Drawer zeigt Einstellungen (Name, Branche, Ort, Website, Logo ersetzen / Logo entfernen), darunter Zugeordnete Teams (Team anlegen), Zugeordnete Benutzer (Benutzer anlegen) und Zugeordnete Projekte mit Metadaten (Erstellt, Aktualisiert).

Organisations-Drawer im tibi-admin: Einstellungen mit Name, Branche, Ort und Website, zugeordnete Teams, Benutzer und Projekte

  1. Org anlegen (OrgCreateDrawer).
  2. Team in dieser Org anlegen (TeamCreateDrawer).
  3. Benutzer anlegen und Team zuordnen (UserCreateDrawer, Reiter Mitgliedschaften).
  4. Projekt der Org zuordnen und Team-Rechte setzen (ProjectDetailDrawer).

Benutzerverwaltung im tibi-admin: Benutzerliste mit Rollen-Badges und Team-Chips, rechts der geöffnete Detail-Drawer mit Rollenauswahl und Organisations-Zuordnung

role: 0 role: 1
Rolle Wert Bedeutung
Admin role: 0 Vollzugriff, violettes Badge (RoleSection.svelte)
Benutzer role: 1 Zugriff nur über Org-/Team-Mitgliedschaft, neutrales Badge
  • Die Rolle stellst du per Auswahl um (mit Admin-Warnung); im Nur-Lesen-Modus zeigt der Admin nur das Badge.
  • Feinrechte vergibst du als Chips (PermissionChipsInput.svelte): Eintippen, Vorschlag anklicken oder per × entfernen. Die Vorschläge gruppiert der Admin nach Herkunft — aus der Projekt-Meta (project-meta) oder als Team-Rückfall (team-fallback); das Eingabefeld zeigt als Beispiel pages, media.

Persönliche Token (PATs) pflegst du auf zwei Wegen: im eigenen Profil (TokenSettings.svelte) oder als Admin im Token-Reiter (TokenAdminTab.svelte).

Als Admin siehst du unter Tokens die Liste API-Tokens mit dem Untertitel Alle Tokens aller Benutzer. Je Zeile stehen Name, Besitzer, Prefix, Berechtigungen und Zuletzt benutzt. Über Aktualisieren lädst du die Liste neu; je Zeile änderst du den Namen (Bearbeiten) oder entziehst den Zugriff (Widerrufen). Anlegen geht nur im eigenen Profil.

Token-Liste im tibi-admin: API-Tokens aller Benutzer mit Name, Besitzer, Prefix, Berechtigungen und Zuletzt-benutzt-Spalte

Im Profil legst du über Neues Token einen Drawer mit Name (Beispiel z. B. CI Deploy) und Berechtigungen an. Die Scopes wählst du per Checkbox oder über Alles auswählen; dazu kommen Eigene Scopes (Wildcards) mit Hinzufügen. Ein Ablaufdatum gibt es in der Oberfläche nicht — das Feld existiert nur serverseitig und wird bewusst weder angezeigt noch gesetzt.

Token anlegen im tibi-admin: Drawer Neues Token mit Namensfeld, Berechtigungs-Checkboxen und eigenen Scopes

  1. Neu klicken → TokenFormDrawer: Name plus Scopes per TokenScopePicker wählen.
  2. Speichern → TokenCreatedDialog zeigt den Wert genau einmal — kopiere ihn sofort, danach ist er weg.
  3. Bearbeiten ändert nur wirklich geänderte Felder (Name/Scopes als Patch).

Die Projektverwaltung (/admin/projects, ProjectAdminView.svelte) listet alle Projekte mit Organisation, Status und Kollektionen. Ein Klick öffnet den Detail-Drawer mit Einstellungen (Name, Organisation, Beschreibung, Namespace, Config-Datei), Team-Zuordnungen (Team zuordnen) und Zugehörige Benutzer. Die vier Token-Flags unten stehen nicht in der Oberfläche — sie kommen ausschließlich aus api/config.yml.

Projektverwaltung im tibi-admin: Projektliste mit Detail-Drawer zu Einstellungen, Team-Zuordnungen und zugehörigen Benutzern

Der Admin ruft Reload, Suchindex-Aufbau, Backup und Snapshots mit einem Projekt-Token auf. Welche dieser vier Operationen das Token darf, steuern vier Flags in api/config.yml (admin.tokens[]):

Flag Erlaubt Wofür im Admin
allowReload Projekt neu laden Nach Config-Änderungen
allowRegenerateSearch Suchindex neu aufbauen Nach Index-Problemen (siehe Suche)
allowBackup Backup herunterladen und wiederherstellen Sicherung (siehe Audit und Backup)
allowSnapshots Snapshots auslösen, listen, löschen, wiederherstellen, herunterladen Versionierte Sicherung (siehe Audit und Backup)

Schema: tibi-types/schemas/config/project.schema.json:227-261 (alle vier optional, nur token ist Pflicht); Server-Modell: tibi-server/internal/models/project.go:116-120.

api/config.yml — Projekt-Admin-Token mit allen Rechten
admin:
tokens:
- token: "REDACTED_CREDENTIALS"
allowReload: true
allowRegenerateSearch: true
allowBackup: true
allowSnapshots: true

Admins können sich als ein Benutzerkonto anmelden, um dessen Sicht zu prüfen:

Schritt Technik (api/auth.ts)
Starten POST /login/impersonate { userId } → neues Token + impersonatedBy-Vermerk
Erkennen Banner/Status zeigt die Stellvertretung (AdminLayout, AdminHub, UserDetailDrawer)
Beenden POST /login/impersonate?logout=1 → Server löscht den Stellvertretungs-Cookie und stellt die Admin-Sitzung wieder her
Fehlerbild Ursache Lösung
Login schlägt fehl Falsche Zugangsdaten Eingaben prüfen; Konto beim Admin erfragen
Countdown erscheint Inaktivität Sitzung verlängern oder neu anmelden
Benutzer/Team/Org fehlt Keine Leserechte auf diese Ebene Admin um Freigabe bitten
Token-Bereich leer Server ohne Token-Feature (404) Normal — kein Fehler, Bereich bleibt verborgen
permission denied Kopf oder Recht falsch Token-Köpfe und Chips prüfen

Klick-Abläufe zur Stellvertretung stehen im Test-Plan docs/test-plans/42-impersonation.md (Auslöser, Bestätigungsdialog, Banner, Rückkehr zur Admin-Sitzung — nur im Mock-Modus testen).

Verifiziert am 2b091d8 2026-10-17 (tibi-admin-nova); Projekt-Admin-Token verifiziert am 4c55f82 (tibi-types: project.schema.json:227-261), am 68b4278 (tibi-server: models/project.go:116-120)