[#4] Bannière UI quand le fallback plaintext est actif #81

Closed
opened 2026-04-13 22:39:44 +00:00 by maximus · 0 comments
Owner

Quand token_store retombe sur le fallback fichier (libsecret absent, D-Bus bloqué, etc.), l'utilisateur doit savoir que ses tokens sont stockés en clair plutôt qu'avec la protection keychain. Sans cette bannière, le fallback est silencieux et annule le gain de sécurité sans que personne ne s'en rende compte.

Spec : spec-issue-66-oauth-keychain.md
Parent : #66
Dépendances : #78 (nécessite que store_mode soit exposé par token_store)

Tâches

Backend

  • Nouvelle commande Tauri get_token_store_mode() -> Result<String, String> (retourne "keychain" ou "file")
  • Utiliser le flag store_mode persisté par token_store (issue #78)
  • Enregistrer la commande dans lib.rs invoke_handler

Frontend

  • Hook useTokenStoreMode() dans src/hooks/
  • Composant TokenStoreFallbackBanner dans src/components/settings/ — affiche une carte d'avertissement uniquement si mode = file
  • Intégrer dans la page Compte / Paramètres (à côté de AccountCard)
  • Design : bannière non bloquante, icône warning, texte court + lien vers doc "Comment installer libsecret" (pour les users Linux)

i18n

  • Clés FR/EN sous settings.tokenStore.fallback.*
    • title : "Stockage des tokens" / "Token storage"
    • warning : "Vos tokens d'authentification sont stockés dans un fichier local chiffré au niveau fichier uniquement. Pour une protection maximale, installez libsecret." (et EN)
    • learnMore : "En savoir plus" / "Learn more"

Critères d'acceptation

  • Avec keychain fonctionnel : aucune bannière visible
  • En masquant D-Bus (DBUS_SESSION_BUS_ADDRESS=/dev/null) : bannière apparaît dans Paramètres
  • Textes FR/EN complets, aucun texte en dur
  • La bannière peut être fermée (mais réapparaît au prochain démarrage si le fallback est toujours actif)
Quand `token_store` retombe sur le fallback fichier (libsecret absent, D-Bus bloqué, etc.), l'utilisateur doit **savoir** que ses tokens sont stockés en clair plutôt qu'avec la protection keychain. Sans cette bannière, le fallback est silencieux et annule le gain de sécurité sans que personne ne s'en rende compte. **Spec :** `spec-issue-66-oauth-keychain.md` **Parent :** #66 **Dépendances :** #78 (nécessite que `store_mode` soit exposé par token_store) ## Tâches ### Backend - [ ] Nouvelle commande Tauri `get_token_store_mode()` -> `Result<String, String>` (retourne `"keychain"` ou `"file"`) - [ ] Utiliser le flag `store_mode` persisté par `token_store` (issue #78) - [ ] Enregistrer la commande dans `lib.rs invoke_handler` ### Frontend - [ ] Hook `useTokenStoreMode()` dans `src/hooks/` - [ ] Composant `TokenStoreFallbackBanner` dans `src/components/settings/` — affiche une carte d'avertissement uniquement si mode = `file` - [ ] Intégrer dans la page Compte / Paramètres (à côté de `AccountCard`) - [ ] Design : bannière non bloquante, icône warning, texte court + lien vers doc "Comment installer libsecret" (pour les users Linux) ### i18n - [ ] Clés FR/EN sous `settings.tokenStore.fallback.*` - `title` : "Stockage des tokens" / "Token storage" - `warning` : "Vos tokens d'authentification sont stockés dans un fichier local chiffré au niveau fichier uniquement. Pour une protection maximale, installez libsecret." (et EN) - `learnMore` : "En savoir plus" / "Learn more" ## Critères d'acceptation - [ ] Avec keychain fonctionnel : aucune bannière visible - [ ] En masquant D-Bus (`DBUS_SESSION_BUS_ADDRESS=/dev/null`) : bannière apparaît dans Paramètres - [ ] Textes FR/EN complets, aucun texte en dur - [ ] La bannière peut être fermée (mais réapparaît au prochain démarrage si le fallback est toujours actif)
maximus added this to the spec-oauth-keychain milestone 2026-04-13 22:39:44 +00:00
maximus added the
status:ready
type:feature
source:human
labels 2026-04-13 22:39:44 +00:00
maximus added
status:in-progress
and removed
status:ready
labels 2026-04-14 12:14:09 +00:00
maximus added
status:review
and removed
status:in-progress
labels 2026-04-14 12:19:09 +00:00
maximus added
status:approved
and removed
status:review
labels 2026-04-14 12:21:17 +00:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maximus/Simpl-Resultat#81
No description provided.