docs: ADR 0006 + changelog + architecture for OAuth keychain (#82) #87
No reviewers
Labels
No labels
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#87
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-82-wrap-up"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #82
Refs #66, #78, #79, #80, #81
Summary
Wrap-up of the
spec-oauth-keychainmilestone: documentation, ADR, and bilingual changelog entries. Closes the documentation gap before the next release tag.docs/adr/0006-oauth-tokens-keychain.md— context, options considered, backend choice (sync-secret-service vs async, libdbus vs libsecret), migration semantics, anti-downgrade flag, and the subscription tampering fix via HMAC-signedaccount_cache.token_store+account_cachemodule entries, updated OAuth2 flow section, command count 34 → 35 (addedget_token_store_mode).[Unreleased]→Changed+Security, referencing #66, #78, #79, #80, #81.Manual test matrix (deferred to release gatekeeper)
These cannot be automated in this conversation and are tracked on the issue for the release gatekeeper to run before the next tag:
Linux (pop-os):
secret-tool lookup service com.simpl.resultat user oauth-tokensreturns a JSON blob, notokens.jsonin<app_data>/auth/tokens.jsonartificially, start the app, verify the file is zero-overwritten + removed, keychain now has the entrysecret-tool lookup service com.simpl.resultat user account-hmac-keyempty)DBUS_SESSION_BUS_ADDRESS=/dev/nullstart → app works,TokenStoreFallbackBannerappears in Settings, auth flow completes via file fallbackaccount.jsonafter login (rewritesubscription_statusmanually), verify Premium features stay lockedWindows:
com.simpl.resultattokens.jsonartifactTest plan (CI only)
cargo checkclean (no side effect on docs-only PR)npm run buildclean- New ADR-0006 documenting the OS keychain migration: context, options considered (keyring vs stronghold vs AES-from-PIN), the backend choice rationale (sync-secret-service vs async-secret- service), anti-downgrade design, migration semantics, and the subscription-tampering fix via account_cache. - architecture.md updated: new token_store / account_cache module entries, auth_commands descriptions now point at the keychain- backed API, OAuth2 + deep-link flow diagram mentions the HMAC step, command count bumped to 35. - CHANGELOG.md + CHANGELOG.fr.md under Unreleased: - Changed: tokens moved to keychain with transparent migration and Settings banner on fallback. - Changed: account cache is now HMAC-signed. - Security: CWE-312 and CWE-345 explicitly closed. Manual test matrix (pop-os + Windows) is tracked in issue #82 and will be run by the release gatekeeper before the next tag. Refs #66, #78, #79, #80, #81 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>Review — APPROVE ✓
PR docs-only, revue rapide.
Correctness
token_store+account_cachelistés, OAuth flow updaté avec les étapes keychain + HMAC, count de commandes 34 → 35 (matche l'ajout deget_token_store_mode)[Unreleased]→Changed+Security, conforme au format Keep a Changelog du projetQuality
Observations
Verdict : APPROVE