Skip to content

Conversation

@stoader
Copy link
Collaborator

@stoader stoader commented Dec 23, 2025

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:

  • Added a new VaultSecret type to the credential package for representing secrets fetched from Vault, and updated the credential equality logic to support VaultSecret.
  • Implemented the vault package with a CredentialsProvider that exchanges ID tokens for Vault tokens using JWT auth and retrieves secrets, including logic for refreshing credentials and handling both dynamic and static secrets.
  • Updated the documentation (README.md) to describe the new Vault credentials provider and provide example usage.

Other Improvements:

  • Enhanced the static token provider to parse JWTs and extract expiration time, improving token handling and validation.

@stoader stoader requested a review from Copilot December 23, 2025 11:35
Copy link

Copilot AI left a 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 VaultSecret type

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 <[email protected]>
Signed-off-by: Toader Sebastian <[email protected]>
@stoader stoader requested review from a team and waynz0r December 23, 2025 11:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants