Tenant-übergreifende Identität
Wenn dieselbe HGE ID Mitglied in mehreren Tenants ist, werden die Bestandteile des Profils, die Sie als Person beschreiben — Avatar, Theme, Sprache — über alle Tenants geteilt. Alles, was beschreibt, was Sie in diesem konkreten Tenant tun können (Berechtigungen, Favoriten, Saved Views, Dashboards), bleibt tenant-spezifisch.
Was wird geteilt
| Feld | Bereich | Gespeichert in |
|---|---|---|
| Name | Global | HGE ID (in jede Tenant-Zeile synchronisiert) |
| Global | HGE ID (in der App nicht editierbar) | |
| Avatar | Global | user_global_avatars (eine Datei je HGE ID) |
| Theme | Global | user_global_prefs (Schlüssel theme) |
| Sprache | Global | user_global_prefs (Schlüssel locale) |
| Favoriten | Pro Tenant | user_prefs (tenant-spezifisch) |
| Saved Views | Pro Tenant | user_prefs (tenant-spezifisch) |
| Berechtigungen | Pro Tenant | user_groups / user_group_members |
Wie der Avatar gespeichert wird
Ein Avatar-Upload ersetzt die einzelne Zeile in user_global_avatars, die
mit der HGE ID verknüpft ist. Die Datei liegt unter
/data/uploads/_global/avatars/<avatar_key>.webp, wobei avatar_key ein
zufälliger UUID-Token ist, der bei jedem Upload neu erzeugt wird. Die URL
enthält niemals die HGE ID; das Frontend ruft stattdessen auf:
GET /api/uploads/avatar/by-key/<avatar_key>
Der Endpoint erfordert ein gültiges HGE ID JWT — jede authentifizierte
Person kann jeden Avatar abrufen, vergleichbar mit einem
Unternehmensverzeichnis. Dateien werden via sharp zu 256x256-WebP
re-enkodiert; EXIF und alle eingebetteten Payloads werden entfernt.
Globale Avatare zählen nicht gegen das Speicher-Kontingent eines Tenants. Eine harte Obergrenze von 100 KB nach dem Re-Encoding begrenzt den globalen Pool.
Identitäts-Badges
Das Profil und das Avatar-Menü zeigen bis zu zwei Badges:
- "Teil von <Tenant>" erscheint, wenn Sie in einem Nicht-Master-Tenant arbeiten. Er zeigt, welcher Tenant die Master-Zeile Ihrer HGE ID besitzt.
- "Verwaltet durch <Tenant>" erscheint, wenn Domain Governance für die Domain Ihrer E-Mail aktiv ist. Der verwaltende Tenant kann Richtlinien durchsetzen (Cross-Tenant-Beitritte sperren, Profilbearbeitung einschränken usw.).
Treffen beide Bedingungen zu, werden beide Badges nebeneinander angezeigt.
Theme und Sprache
Das Umschalten von Theme oder Sprache ruft
PUT /api/user-prefs/theme bzw. /locale auf. Das Backend leitet diese
beiden Schlüssel auf user_global_prefs (HGE-ID-gebunden) um; alle anderen
Schlüssel schreiben weiterhin in die tenant-spezifische user_prefs-Tabelle.
Beim Start lesen LocaleProvider und ThemeProvider die globale Preference
und überschreiben den lokalen Cookie-Wert, falls dieser abweicht. Der Cookie
bleibt die direkte Autorität für nicht-authentifizierte Seiten (Marketing,
Docs), damit das Theme nicht bei jedem Logout zurückgesetzt wird.
Was NICHT synchronisiert wird
Alles, was auf tenant-spezifische Entitäten verweist, bleibt tenant-gebunden:
- Favoriten, die auf tenant-spezifische Assets, User oder Suchen verweisen.
- Dashboard-Layouts.
- ITSM Saved Queries.
- Lesestatus von Benachrichtigungen.
Beim Tenant-Wechsel werden immer die Daten des aktiven Tenants angezeigt; nur die kosmetische Schicht (Avatar, Sprache, Dark Mode) folgt Ihnen überallhin.