[#5] Tests manuels + ADR 0006 + changelog + PR finale #82

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

Wrap-up du milestone : tester l'ensemble sur les deux OS cibles, documenter la décision dans un ADR, mettre à jour CHANGELOG / architecture.md, et merger.

Spec : spec-issue-66-oauth-keychain.md
Parent : #66
Dépendances : #78, #79, #80, #81 (toutes les issues techniques doivent être mergées)

Tâches

Tests manuels pop-os (Linux)

  • Fresh install : supprimer <app_data>/auth/, lancer, se connecter, vérifier secret-tool lookup service com.simpl.resultat user oauth-tokens retourne une valeur, vérifier absence de tokens.json
  • Migration : créer un tokens.json artificiel (depuis une ancienne version), lancer la nouvelle version, vérifier que le fichier est zéroïfié+supprimé et que le secret est dans le keychain après le premier appel API
  • Logout : clique logout, vérifier que keychain entry ET fichier résiduel sont effacés
  • Fallback : DBUS_SESSION_BUS_ADDRESS=/dev/null ./simpl-resultat → vérifier que l'app démarre, que la bannière #81 apparaît, que l'auth continue de marcher
  • Fallback → restauration : redémarrer normalement après un fallback, vérifier que le re-login passe bien dans le keychain cette fois et que le flag store_mode refuse les downgrades

Tests manuels Windows

  • Fresh install + login → vérifier présence dans Credential Manager (rundll32.exe keymgr.dll,KRShowKeyMgr)
  • Migration depuis un tokens.json artificiel
  • Logout
  • Mesurer la taille réelle du blob credential (doit être < 2.5 KB limite Win)

ADR

  • Créer docs/adr/0006-oauth-tokens-keychain.md (format 4 chiffres, PAS adr-006-)
  • Contexte, options considérées (keyring vs stronghold vs AES custom), décision finale, conséquences
  • Documenter le choix Option A/B/C de l'issue #80
  • Justifier l'asymétrie tokens-dans-keychain / account.json-dans-fichier

Documentation

  • Mettre à jour docs/architecture.md section "Stockage" et "Commandes Tauri"
  • Ajouter token_store et get_token_store_mode au tableau des commandes

CHANGELOG (bilingue)

  • CHANGELOG.md section ## [Unreleased]### Changed (PAS Security, pas une catégorie du projet)
    • "Migrated OAuth tokens storage from plaintext file to OS keychain (Credential Manager on Windows, Secret Service on Linux). Existing users are migrated transparently on first refresh."
  • CHANGELOG.fr.md équivalent français sous ### Modifié

PR finale

  • Branche issue-66-oauth-keychain qui regroupe les commits de #78→#81
  • PR vers main avec summary + test plan
  • Fermer le milestone spec-oauth-keychain après merge
  • Fermer #66 en référence au merge

Critères d'acceptation

  • Tous les tests manuels passent sur les deux OS
  • ADR mergé dans docs/adr/
  • CHANGELOG à jour dans les deux langues
  • npm run build && cargo test passent localement et en CI
  • Milestone spec-oauth-keychain fermé
Wrap-up du milestone : tester l'ensemble sur les deux OS cibles, documenter la décision dans un ADR, mettre à jour CHANGELOG / architecture.md, et merger. **Spec :** `spec-issue-66-oauth-keychain.md` **Parent :** #66 **Dépendances :** #78, #79, #80, #81 (toutes les issues techniques doivent être mergées) ## Tâches ### Tests manuels pop-os (Linux) - [ ] **Fresh install** : supprimer `<app_data>/auth/`, lancer, se connecter, vérifier `secret-tool lookup service com.simpl.resultat user oauth-tokens` retourne une valeur, vérifier absence de `tokens.json` - [ ] **Migration** : créer un `tokens.json` artificiel (depuis une ancienne version), lancer la nouvelle version, vérifier que le fichier est zéroïfié+supprimé et que le secret est dans le keychain après le premier appel API - [ ] **Logout** : clique logout, vérifier que keychain entry ET fichier résiduel sont effacés - [ ] **Fallback** : `DBUS_SESSION_BUS_ADDRESS=/dev/null ./simpl-resultat` → vérifier que l'app démarre, que la bannière #81 apparaît, que l'auth continue de marcher - [ ] **Fallback → restauration** : redémarrer normalement après un fallback, vérifier que le re-login passe bien dans le keychain cette fois et que le flag `store_mode` refuse les downgrades ### Tests manuels Windows - [ ] Fresh install + login → vérifier présence dans Credential Manager (`rundll32.exe keymgr.dll,KRShowKeyMgr`) - [ ] Migration depuis un `tokens.json` artificiel - [ ] Logout - [ ] Mesurer la taille réelle du blob credential (doit être < 2.5 KB limite Win) ### ADR - [ ] Créer `docs/adr/0006-oauth-tokens-keychain.md` (format 4 chiffres, PAS `adr-006-`) - [ ] Contexte, options considérées (keyring vs stronghold vs AES custom), décision finale, conséquences - [ ] Documenter le choix Option A/B/C de l'issue #80 - [ ] Justifier l'asymétrie tokens-dans-keychain / account.json-dans-fichier ### Documentation - [ ] Mettre à jour `docs/architecture.md` section "Stockage" et "Commandes Tauri" - [ ] Ajouter `token_store` et `get_token_store_mode` au tableau des commandes ### CHANGELOG (bilingue) - [ ] `CHANGELOG.md` section `## [Unreleased]` → `### Changed` (PAS `Security`, pas une catégorie du projet) - "Migrated OAuth tokens storage from plaintext file to OS keychain (Credential Manager on Windows, Secret Service on Linux). Existing users are migrated transparently on first refresh." - [ ] `CHANGELOG.fr.md` équivalent français sous `### Modifié` ### PR finale - [ ] Branche `issue-66-oauth-keychain` qui regroupe les commits de #78→#81 - [ ] PR vers `main` avec summary + test plan - [ ] Fermer le milestone `spec-oauth-keychain` après merge - [ ] Fermer #66 en référence au merge ## Critères d'acceptation - [ ] Tous les tests manuels passent sur les deux OS - [ ] ADR mergé dans `docs/adr/` - [ ] CHANGELOG à jour dans les deux langues - [ ] `npm run build && cargo test` passent localement et en CI - [ ] Milestone `spec-oauth-keychain` fermé
maximus added this to the spec-oauth-keychain milestone 2026-04-13 22:40:39 +00:00
maximus added the
status:ready
type:refactor
source:human
labels 2026-04-13 22:40:39 +00:00
maximus added
status:in-progress
and removed
status:ready
labels 2026-04-14 12:22:55 +00:00
maximus added
status:approved
and removed
status:in-progress
labels 2026-04-14 12:27:38 +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#82
No description provided.