Skip to content

feat: add OIDC workload identity federation to secret provider plugins#636

Merged
theoephraim merged 3 commits into
mainfrom
feat/oidc-workload-identity
May 6, 2026
Merged

feat: add OIDC workload identity federation to secret provider plugins#636
theoephraim merged 3 commits into
mainfrom
feat/oidc-workload-identity

Conversation

@theoephraim

Copy link
Copy Markdown
Member

Summary

  • Add shared OIDC token acquisition utility (packages/utils/src/oidc-tokens.ts) that auto-detects 5 deployment platforms (Vercel, GitHub Actions, GitLab CI, Fly.io, GCP Cloud Run)
  • Add OIDC authentication as a fallback option in 6 secret provider plugins:
    • AWS: STS AssumeRoleWithWebIdentity via new oidcRoleArn param
    • Azure: Federated credential (JWT as client assertion) when tenantId+clientId provided without clientSecret
    • GCP: Workload Identity Federation via workloadIdentityProvider param
    • HashiCorp Vault: JWT auth method via jwtRole param
    • Infisical: OIDC machine identity via identityId param (alternative to Universal Auth)
    • Akeyless: OIDC access type via oidcAccessId param
  • All plugins also accept explicit oidcToken param for custom OIDC providers

This enables deployed environments to authenticate with secret providers using short-lived OIDC tokens instead of long-lived credentials — no secrets needed to fetch secrets.

Test plan

  • Verify typecheck passes across all packages (confirmed in pre-push hook)
  • Verify lint passes (confirmed via bun run lint:fix)
  • Manual test: deploy to Vercel with AWS OIDC role configured, verify secrets resolve
  • Manual test: GitHub Actions workflow with id-token: write permission
  • Unit tests for OIDC token acquisition utility (mock platform env vars)
  • Unit tests for each plugin's OIDC auth path (mock token exchange endpoints)
  • Documentation pass (shared OIDC guide + per-plugin README sections) — follow-up PR

🤖 Generated with Claude Code

@changeset-bot

changeset-bot Bot commented Apr 21, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 346c87e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Apr 21, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
varlock-website fe1ff22 Commit Preview URL

Branch Preview URL
May 06 2026, 05:55 AM

Comment thread packages/varlock-website/src/content/docs/guides/oidc.mdx Outdated
theoephraim and others added 3 commits May 5, 2026 22:23
…r plugins

Enable deployed environments (Vercel, GitHub Actions, Fly.io, GCP Cloud Run,
GitLab CI) to authenticate with secret providers using short-lived OIDC tokens
instead of long-lived credentials.

Adds a shared OIDC token acquisition utility that auto-detects the deployment
platform, and integrates OIDC as an auth option in 6 plugins: AWS (STS
AssumeRoleWithWebIdentity), Azure (federated credential), GCP (Workload
Identity Federation), HashiCorp Vault (JWT auth), Infisical (OIDC machine
identity), and Akeyless (OIDC access type).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add a shared OIDC guide at guides/oidc.mdx covering platform setup
(Vercel, GitHub Actions, GitLab CI, Fly.io, GCP Cloud Run) and
provider-specific configuration for all 6 supported plugins.

Update each plugin README with OIDC auth section, updated auth priority
order, and new parameter documentation. All READMEs link to the shared
guide for platform-side setup details.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move provider-specific OIDC setup from the central guide into each
plugin's doc page. The OIDC guide now links to plugin pages for setup
details. Also adds OIDC to feature lists and auth priority docs for
all affected plugins, and adds a bumpy changeset.
@theoephraim theoephraim force-pushed the feat/oidc-workload-identity branch from 346c87e to fe1ff22 Compare May 6, 2026 05:54
@github-actions

github-actions Bot commented May 6, 2026

Copy link
Copy Markdown
Contributor

bumpy-frog

The changes in this PR will be included in the next version bump.

minor Minor releases

  • @varlock/akeyless-plugin 1.0.0 → 1.1.0
  • @varlock/aws-secrets-plugin 1.0.0 → 1.1.0
  • @varlock/azure-key-vault-plugin 1.0.0 → 1.1.0
  • @varlock/google-secret-manager-plugin 1.0.0 → 1.1.0
  • @varlock/hashicorp-vault-plugin 1.0.0 → 1.1.0
  • @varlock/infisical-plugin 1.0.0 → 1.1.0

Bump files in this PR

Click here if you want to add another bump file to this PR


This comment is maintained by bumpy.

@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​@​aws-sdk/​client-sts@​3.1043.09810010098100

View full report

@pkg-pr-new

pkg-pr-new Bot commented May 6, 2026

Copy link
Copy Markdown

Open in StackBlitz

@varlock/akeyless-plugin

npm i https://pkg.pr.new/@varlock/akeyless-plugin@636

@varlock/aws-secrets-plugin

npm i https://pkg.pr.new/@varlock/aws-secrets-plugin@636

@varlock/azure-key-vault-plugin

npm i https://pkg.pr.new/@varlock/azure-key-vault-plugin@636

@varlock/google-secret-manager-plugin

npm i https://pkg.pr.new/@varlock/google-secret-manager-plugin@636

@varlock/hashicorp-vault-plugin

npm i https://pkg.pr.new/@varlock/hashicorp-vault-plugin@636

@varlock/infisical-plugin

npm i https://pkg.pr.new/@varlock/infisical-plugin@636

commit: fe1ff22

@theoephraim theoephraim merged commit 718c163 into main May 6, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants