feat: add support for caching refresh token in armadactl #4490
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.
What type of PR is this?
Feature which adds OIDC refresh token caching in armadactl.
What this PR does / why we need it:
Adds token caching for OIDC auth so you don't have to authenticate in the browser every single time you run armadactl.
Currently it's super annoying - every command opens the browser for auth.
This PR fixes that by securely caching the refresh token in your system keyring (Keychain on mac, etc).
After you auth once, subsequent commands just work without the browser popup.
The implementation is secure - only uses the OS keyring, never falls back to files.
If there's no keyring available, caching just gets disabled.
Tokens expire after 30 days.
To use it, just add
cacheRefreshToken: trueto your context in~/.armadactl.yaml:Make sure to add
offline_accessscope so refresh token is returned from the IDP.Which issue(s) this PR fixes:
Fixes #4487
Special notes
armadactlMUST be built withCGO_ENABLED=1for this to work properly.