-
Notifications
You must be signed in to change notification settings - Fork 2
Support Vault as credential provider #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds support for using Vault/OpenBao as a credentials provider, enabling ID token exchange for secrets via JWT authentication. The implementation includes automatic credential refresh, support for both dynamic and static secrets, and configurable polling intervals for secrets without TTL.
Key Changes:
- Implements Vault credentials provider with JWT auth-based token exchange and secret retrieval
- Enhances static token provider to parse JWT expiration times
- Extends credential equality logic to support
VaultSecrettype
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| pkg/vault/option.go | Defines configuration options for Vault credential provider (JWT auth path, role name, secret path, polling interval) |
| pkg/vault/creds.go | Implements core Vault credentials provider with JWT authentication, secret retrieval, and automatic refresh logic |
| pkg/token/static_token_provider.go | Adds JWT parsing to extract expiration time from static tokens |
| pkg/credential/result.go | Introduces VaultSecret type for Vault credential data |
| pkg/credential/equal.go | Adds equality comparison support for VaultSecret credentials |
| go.mod | Updates Go version and adds OpenBao/Vault client dependencies |
| README.md | Documents Vault credentials provider usage with example code |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Toader Sebastian <stoader@users.noreply.github.com>
This pull request introduces support for Vault as a credentials provider, allowing the library to exchange ID tokens for secrets from OpenBao/Vault using JWT authentication. The changes include a new implementation for Vault credentials, updates to the credential equality logic, and documentation and dependency updates to support this new feature.
Vault Credentials Provider Integration:
VaultSecrettype to thecredentialpackage for representing secrets fetched from Vault, and updated the credential equality logic to supportVaultSecret.vaultpackage with aCredentialsProviderthat exchanges ID tokens for Vault tokens using JWT auth and retrieves secrets, including logic for refreshing credentials and handling both dynamic and static secrets.README.md) to describe the new Vault credentials provider and provide example usage.Other Improvements: