xPulse
🇬🇧 EN

TOOL_chat_adr-003 – localStorage Key Konvention

Status: ACCEPTED · Erstellt April 2026 Übergeordnet: TOOL_chat_roadmap.md Verwandt: TOOL_chat_concept-identity.md


Kontext

xPulse Chat speichert alle Daten lokal im localStorage des Browsers. Ohne eine einheitliche Key-Konvention entstehen Kollisionen, unklare Zugehörigkeiten und Privacy-Probleme wenn mehrere User dasselbe Gerät nutzen.


Entscheidung

Es gibt zwei Namespaces:

xpulse_identity_* → Identitätsdaten (geräte- und toolübergreifend)
xpulse_chat_* → Chat-spezifische Daten

Namespace 1 – `xpulse_identity_`

Identität ist fundamentaler als ein einzelnes Tool – sie gehört dem System, nicht dem Chat. Könnte später von anderen xPulse Tools genutzt werden.

xpulse_identity_client_{resource} → Gerätedaten (kein userId-Prefix)
xpulse_identity_{userId}_{resource} → User-Identitätsdaten

Namespace 2 – `xpulse_chat_`

Chat-spezifische Daten folgen dem Schema:

xpulse_chat_{userId}_{resource}_{subId?} → user-spezifisch
xpulse_chat_{resource} → global/technisch

Regel 1 – Kein abgekürztes `xp_`

Verhindert Kollisionen mit anderen Apps im gleichen Origin. Immer den vollen Prefix ausschreiben.

Regel 2 – `userId` immer als erstes nach dem Prefix

Alle Daten die zu einem User gehören sind sofort nach userId gruppiert. Ermöglicht saubere Isolation zwischen mehreren Usern auf demselben Gerät.

Regel 3 – Globale/technische Keys ohne `userId`

Daten die nicht zu einem spezifischen User gehören bekommen keinen userId-Teil.


Key-Übersicht

Identity – Gerät

xpulse_identity_client_id
xpulse_identity_client_public_key
xpulse_identity_client_private_key ← AES-GCM verschlüsselt

Identity – User

xpulse_identity_{userId}_public_key
xpulse_identity_{userId}_private_key ← AES-GCM verschlüsselt
xpulse_identity_{userId}_salt

Chat – User-spezifisch

xpulse_chat_{userId}_profile
xpulse_chat_{userId}_devices
xpulse_chat_{userId}_chat_{chatId}
xpulse_chat_{userId}_graveyard_{chatId}
xpulse_chat_{userId}_pending_delete_{chatId}

Chat – Global / technisch

xpulse_chat_terms_accepted
xpulse_chat_panel_info
xpulse_chat_sw_version
xpulse_chat_ai_consent

Konsequenzen


Migration alter Keys

Alt Neu
xp_terms_accepted xpulse_chat_terms_accepted
xp_panel_chat_info xpulse_chat_panel_info
xpulse_panel_chat_info xpulse_chat_panel_info
xp_graveyard_{chatId} xpulse_chat_{userId}_graveyard_{chatId}
xp_ai_consent xpulse_chat_ai_consent
de/adr/adr-003-localstorage-keys.md 2026-04-17