Commit Graph
5 Commits
Author SHA1 Message Date
vpengops e067eee330 smcli: refresh-token support - sessions no longer die after ~1h
The login grant requested offline_access but the issued refresh_token
was parsed and discarded: every access token died with the ~1h
Vaultwarden TTL, and consumers (all lanes) hit HTTP 401 on sync until
a human re-logged in.

- persist refresh_token in state (0600, same file)
- add refresh grant (grant_type=refresh_token, rotated token saved)
- on 401 for authed calls: refresh once, retry the request
- persistTokens() keeps the rest of the state intact

Build verified in golang:1.23-alpine (vet + gofmt clean). After
deploy, one `sm login` issues a refresh token (~30d, rotated on use)
and sessions self-heal from then on.
2026-09-06 22:44:33 -05:00
ic-builder 68ba03c1af smcli setfield: surgical single-field rotation updates; env exposes login triple
ci / vet (push) Successful in 1m2s
Rotation waves need per-field updates on login items without touching
the rest (password/username/custom fields), and consumers need URI/
USERNAME/PASSWORD surfaced by env.
Ticket: https://projects.knownelement.com/issues/829
2026-09-06 18:52:34 -05:00
ic-builder 907ddb6000 smcli env: emit URI/USERNAME/PASSWORD for consumers; pin v5
ci / vet (push) Successful in 55s
convert of login items keeps original env names in fields; env now also
exposes the login triple so sourced consumers can map to legacy names.
Ticket: https://projects.knownelement.com/issues/832
2026-09-06 17:23:22 -05:00
ic-builder 0dcf41a839 smcli: login-item support + convert command (notes -> username/password/apikey)
ci / vet (push) Successful in 36s
Founder follow-up: lifted items restructured to proper login items
(first-class username/password/URIs, remainder as named custom fields).
Classified from the env-key semantics; zero data loss.
Ticket: https://projects.knownelement.com/issues/829
2026-09-06 16:53:22 -05:00
ic-builder 4728b3cff0 pure-Go smcli: Bitwarden/Vaultwarden client replacing upstream Rust bw
ci / vet (pull_request) Failing after 12s
Full client-side crypto (PBKDF2/Argon2id master key, HKDF stretch,
AES-256-CBC+HMAC encstrings), password grant with TOTP 2FA, sync,
list/get/env/set/rm. Containerized (alpine, non-root), CI = gofmt/vet/
build/secret-scan, compose service ukrrs-secretsmgr-cli. Rust-era
scripts archived. Live-validated against pwvault.turnsys.com.

Ticket: https://projects.knownelement.com/issues/832
2026-09-06 16:45:45 -05:00