Skip to content

Comments

Add @setValuesBulk decorator + bulk secret loaders for 1Password & Infisical#307

Open
theoephraim wants to merge 5 commits intomainfrom
bulk-values
Open

Add @setValuesBulk decorator + bulk secret loaders for 1Password & Infisical#307
theoephraim wants to merge 5 commits intomainfrom
bulk-values

Conversation

@theoephraim
Copy link
Member

@theoephraim theoephraim commented Feb 20, 2026

Summary

  • Add @setValuesBulk root decorator — a new core feature that lets you inject many config values at once from a single resolver, avoiding boilerplate when secret key names already match your env var names
  • Add opLoadEnvironment() resolver to the 1Password plugin for bulk-loading all variables from a 1Password environment via @setValuesBulk
  • Add infisicalBulk() resolver to the Infisical plugin for bulk-loading all secrets from an Infisical project/environment, with support for filtering by path and tag
  • Improve resolver error surfacing — errors thrown during resolution now carry source location info and tips are displayed in CLI output, making it much easier to diagnose plugin auth/access issues
  • Document all new features in plugin READMEs, website docs, and the secrets management guide

@setValuesBulk decorator

New root decorator that injects values from a resolver into matching config items:

# @setValuesBulk(infisicalBulk())
# @setValuesBulk(opLoadEnvironment(your-environment-id))
# @setValuesBulk(op("op://vault/field/item"))
# @setValuesBulk(exec("vault kv get secret/myapp"))

opLoadEnvironment() (1Password)

# @setValuesBulk(opLoadEnvironment(your-environment-id))
# @setValuesBulk(opLoadEnvironment(prod, your-environment-id))

infisicalBulk() (Infisical)

Supports named path and tag params with optional positional instance ID:

# @setValuesBulk(infisicalBulk())
# @setValuesBulk(infisicalBulk(path="/database"))
# @setValuesBulk(infisicalBulk(tag="backend"))
# @setValuesBulk(infisicalBulk(prod, path="/database", tag="app"))

Resolver error improvements

  • Resolver errors now include source file location (file + line number)
  • Error tips from plugins are now propagated through decorator execution and displayed in CLI output
  • Decorator execution preserves error location from nested resolvers

Test plan

  • @setValuesBulk unit tests pass (set-values-bulk.test.ts)
  • Build 1Password and Infisical plugins
  • End-to-end: verify opLoadEnvironment() loads 1Password environment variables
  • End-to-end: verify infisicalBulk() loads secrets, including path and tag filtering
  • Verify resolver errors display location and tips in CLI output
  • Review docs render correctly on the website

🤖 Generated with Claude Code

@changeset-bot
Copy link

changeset-bot bot commented Feb 20, 2026

🦋 Changeset detected

Latest commit: b3df73e

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

This PR includes changesets to release 11 packages
Name Type
varlock Patch
@varlock/infisical-plugin Patch
@varlock/1password-plugin Patch
@env-spec/parser Patch
@varlock/astro-integration Patch
@varlock/nextjs-integration Patch
@varlock/vite-integration Patch
@varlock/aws-secrets-plugin Patch
@varlock/azure-key-vault-plugin Patch
@varlock/bitwarden-plugin Patch
@varlock/google-secret-manager-plugin Patch

Not sure what this means? Click here to learn what changesets are.

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

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Feb 20, 2026

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 b3df73e Commit Preview URL

Branch Preview URL
Feb 21 2026, 11:30 PM

@socket-security
Copy link

socket-security bot commented Feb 20, 2026

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

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updated@​1password/​sdk-core@​0.3.1 ⏵ 0.4.1-beta.1100 +110068 +191 +8100
Updated@​1password/​sdk@​0.3.1 ⏵ 0.4.1-beta.1100100100 +191 +8100

View full report

@pkg-pr-new
Copy link

pkg-pr-new bot commented Feb 20, 2026

Open in StackBlitz

@env-spec/parser

npm i https://pkg.pr.new/dmno-dev/varlock/@env-spec/parser@307

varlock

npm i https://pkg.pr.new/dmno-dev/varlock@307

@varlock/astro-integration

npm i https://pkg.pr.new/dmno-dev/varlock/@varlock/astro-integration@307

@varlock/vite-integration

npm i https://pkg.pr.new/dmno-dev/varlock/@varlock/vite-integration@307

@varlock/1password-plugin

npm i https://pkg.pr.new/dmno-dev/varlock/@varlock/1password-plugin@307

@varlock/infisical-plugin

npm i https://pkg.pr.new/dmno-dev/varlock/@varlock/infisical-plugin@307

commit: b3df73e

@theoephraim theoephraim changed the title bulk-values Add infisicalBulk resolver + document bulk loaders Feb 20, 2026
@theoephraim theoephraim changed the title Add infisicalBulk resolver + document bulk loaders Add @setValuesBulk decorator + bulk secret loaders for 1Password & Infisical Feb 20, 2026
Copy link
Member

@philmillman philmillman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM :shipit:

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