uslimato
|

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

FeldBereichGespeichert in
NameGlobalHGE ID (in jede Tenant-Zeile synchronisiert)
E-MailGlobalHGE ID (in der App nicht editierbar)
AvatarGlobaluser_global_avatars (eine Datei je HGE ID)
ThemeGlobaluser_global_prefs (Schlüssel theme)
SpracheGlobaluser_global_prefs (Schlüssel locale)
FavoritenPro Tenantuser_prefs (tenant-spezifisch)
Saved ViewsPro Tenantuser_prefs (tenant-spezifisch)
BerechtigungenPro Tenantuser_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.