Skip to content

feat: add project profiles to run - #319

Draft
noeljackson wants to merge 1 commit into
Infisical:mainfrom
noeljackson:agent/profile-config
Draft

feat: add project profiles to run#319
noeljackson wants to merge 1 commit into
Infisical:mainfrom
noeljackson:agent/profile-config

Conversation

@noeljackson

@noeljackson noeljackson commented Jul 13, 2026

Copy link
Copy Markdown

Summary

Add named project profiles to agent-vault run so one repository can select among multiple vaults while giving the child process the credential placeholders and public configuration expected by existing tools.

  • extend the committed agent-vault.json format with versioned address and profiles fields
  • add agent-vault run --profile <name> -- <command> for host and container isolation
  • discover the nearest project config from a subdirectory without crossing the repository root
  • keep legacy {"vault":"..."} bindings working and preserve profile data when vault init updates a binding
  • enforce --profile / --vault exclusivity and deterministic address and environment precedence
  • reject profile environment keys that could override Agent Vault, proxy, CA, path, home, or dynamic-loader settings

This is client-side only and does not require a server change.

Type of change

  • Bug fix
  • New feature
  • Refactor / cleanup
  • Documentation
  • CI / build

Test plan

  • Existing tests pass (go test -count=1 ./...)
  • Added/updated tests for new behavior
  • Race checks pass for the modified execution packages (go test -race -count=1 ./cmd ./internal/isolation)
  • New-diff lint passes (golangci-lint run --new-from-rev=upstream/main ./...)
  • Built the production binary from the fork branch with the embedded frontend (make build); binary reports commit 571a169
  • Exercised the binary against an isolated broker in admin-session mode from a nested project directory
  • Exercised the intended unattended flow with only AGENT_VAULT_TOKEN supplied; the selected profile provided address, vault, placeholders, CA trust, and proxy configuration to the child
  • Verified --profile plus --vault fails before network access

Security checklist

  • No secrets or credentials in code
  • No new unauthenticated endpoints
  • Input validation on new API surfaces
  • Checked for OWASP top 10 (injection, XSS, etc.)

Profile values are child-only. Generated Agent Vault token, vault, address, proxy, and CA variables always take precedence. The docs explicitly identify project address changes as security-sensitive because the selected broker receives the run token.

@infisical-cla-app

Copy link
Copy Markdown

📝 Contributor License Agreement required

Before this PR can merge, every contributor must sign the Infisical CLA.
Signing is quick: sign in with GitHub, review the CLA, and accept.

👉 Sign the CLA

Still needs to sign:

Once everyone has signed, the check updates automatically — no need to close and reopen the PR.

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.

1 participant