Repository navigation
Conversation
|
Claude finished @alukach's task in 15s —— View job ✅ No blocking issues — safe to merge. I read the diff and traced the read, write, delete and login paths. I did not run the tests or build.
Non-blocking notes:
Simplify (ponytail)
💰 Estimated review cost: $0.13 · 0m15s · 5 turns |
…eyring STS credentials are short-lived and re-minted from the login session, so they don't need the keyring. Keeping them out of it means a creds call with fresh credentials never touches the keyring, and macOS asks for the keychain password after each upgrade for one entry (the session) instead of one per role. Reads try the file first and fall back to the keyring, so credentials cached by earlier versions keep working. Entries that still carry their own refresh token (v0.3.0 and earlier) stay in the keyring. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…es at login Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
alukach
force-pushed
the
feat/sts-creds-in-file
branch
from
November 4, 2026 19:57
972bcf2 to
a10eb7d
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
macOS keychain entries trust only the binary that created them. Release binaries aren't signed with a Developer ID, so after every CLI upgrade the Keychain asks for the user's password once for each entry: the login session plus one per role, per environment. A user with a couple of roles across prod and staging gets a burst of password prompts after each upgrade.
Change
0600cache files, not the keyring. They're short-lived and re-created from the session, much like the AWS CLI's own~/.aws/cli/cache. Acredscall that finds fresh credentials never touches the keyring.loginwrites a file that takes precedence.Result: after an upgrade, one keychain prompt per environment (for the session), and only when credentials actually need re-creating.
Testing
cargo testandcargo test --features staging: 30 passed, including the newrole_entries_round_trip_through_their_filecargo clippy --all-targets: cleancredswithHOMEpointed at a temp dir holding only a file-cached entry prints it, with no keychain access🤖 Generated with Claude Code