Skip to content

ADR 0002 — Pinia + persisted state

Contexte

L'app a besoin d'un state global (auth, customer, catalogue, wizard de réservation, filtres recherche). Les tokens et préférences utilisateur doivent survivre à un cold start (sinon le client se reloggue à chaque ouverture).

Décision

  • Pinia 3 comme store global, en composition style (defineStore('id', () => {...})).
  • pinia-plugin-persistedstate activé globalement, opt-in par store via { persist: true }.
  • Stores persistés : auth (tokens), customer (profil), searchFilter (filtres recherche).
  • Stores non persistés : bookingConstructor (le wizard repart à zéro), catalog / travels / occurrence (refetch suffit), backButton (dépend du contexte runtime).

Conséquences

  • ✅ Tokens survivent au cold start → pas de re-login à l'ouverture.
  • ✅ Composition style cohérente avec le reste du code.
  • ⚠️ Penser au cas du token expiré au boot : apiClient intercepte et tente refresh (cf. ADR 0004).
  • ⚠️ Pas de migration de schéma sur le persisted state — un changement de forme d'un store persisté peut casser les sessions existantes. Pour les évolutions majeures, prévoir un cleanup.

Contributors

No contributors

Changelog

No recent changes