Repository navigation
feat(app): keep the desktop signed in with an app password in the system keychain - #280
Conversation
There was a problem hiding this comment.
One blocking finding: a failed keychain write during login leaves the app half signed in and an orphaned app password on the server (see inline). The server side (DELETE /v1/app-passwords/current, the Credential::AppPassword(id) change, tests) looks correct. A revoked password on resume ends in the 401 → sign_out path, which clears the keychain as intended.
778901e to
9721f78
Compare
9721f78 to
c5b7daa
Compare
There was a problem hiding this comment.
c5b7daa is another rebase with the same changes. The blocking thread on login (app/src/main.rs:52-53) is still open: a failed keychain::keep still leaves the app connected and the minted app password orphaned. Nothing new to report.
c5b7daa to
12912e6
Compare
There was a problem hiding this comment.
12912e6 is a rebase with the same changes. The blocking thread on login (app/src/main.rs:52-53) is still unresolved: a failed keychain::keep still runs after connect, so the app stays connected and the minted app password is left orphaned. Nothing new to report.
12912e6 to
281e33c
Compare
There was a problem hiding this comment.
281e33c fixes the blocking keychain finding. keep runs after connect and a failure only comes back as a warning, so sign-in no longer fails and leaves an orphaned app password behind. The hostname nit is fixed with gethostname. I checked that keyring 4 with its default v1 feature sets up the native store by itself, so Entry::new needs no extra setup. Nothing new to report.
…tem keychain Signed-off-by: BryanFRD <bryanferrando59@gmail.com>
… real host Signed-off-by: BryanFRD <bryanferrando59@gmail.com>
281e33c to
554a42a
Compare
Last layer of #261: the desktop app stays signed in.
Stashden desktop on <computer>and keeps it in the system keychain through thekeyringcrate (Keychain, Credential Manager, Secret Service over zbus, no system library to install).DELETE /v1/app-passwords/current, which revokes the app password presenting the request, since an app password cannot reach the session-only revoke route. A session calling it gets 400.Tests cover the new route: it revokes the presenting app password, leaves the others alone, and refuses a session. The keychain and the Tauri commands have no test seam here and have not been run by hand yet: worth a sign-in, a relaunch and a sign-out on the desktop before the release.
Closes #261