Skip to content

Add --param-secret flag to plan run#323

Merged
daniel-de-vera merged 1 commit into
mainfrom
plan-run-secrets
Apr 29, 2026
Merged

Add --param-secret flag to plan run#323
daniel-de-vera merged 1 commit into
mainfrom
plan-run-secrets

Conversation

@daniel-de-vera
Copy link
Copy Markdown
Contributor

@daniel-de-vera daniel-de-vera commented Apr 22, 2026

Summary

  • Adds --param-secret param-name=secret-name to signadot plan run, wiring a new Secrets map[string]string into PlanExecutionSpec so plan params can be bound to org secrets at execution time (without decrypted values ever touching the plan_executions row or API responses).
  • Rejects overlap between --param and --param-secret for the same key locally; other validations (unknown param, missing secret) are handled server-side.
  • Bumps go-sdk to pick up PlanExecutionSpec.Secrets.

Related: signadot/signadot#6904

Test plan

  • signadot plan run PLAN --param-secret api-key=my-secret → execution created, response shows secrets: {api-key: my-secret} (name, not value)
  • signadot plan run PLAN --param x=1 --param-secret x=my-secret → fails locally with param "x" appears in both --param and --param-secret; specify only one
  • signadot plan run PLAN --param-secret unknown=my-secret → server rejects with 400 (key must match a declared plan param)
  • signadot plan run PLAN --param-secret api-key=nonexistent → server rejects with 400 (secret not found)
  • Action script receives decrypted value via context/api-key, same as a literal param

🤖 Generated with Claude Code

Copy link
Copy Markdown
Member

@scott-cotton scott-cotton left a comment

Choose a reason for hiding this comment

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

LGTM

@scott-cotton scott-cotton mentioned this pull request Apr 28, 2026
9 tasks
Supports `signadot plan run --param-secret param-name=secret-name`,
which maps plan param names to org secret names in the execution spec.
The control plane decrypts secrets at dispatch time so decrypted values
never appear in the plan_executions row or API responses.

Rejects overlap between --param and --param-secret locally; other
validations (unknown param, missing secret) are handled server-side.

Bumps go-sdk to pick up PlanExecutionSpec.Secrets.

Related: signadot/signadot#6904

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@daniel-de-vera daniel-de-vera changed the title Add --secret flag to plan run Add --param-secret flag to plan run Apr 29, 2026
@daniel-de-vera
Copy link
Copy Markdown
Contributor Author

@scott-cotton, I renamed --secret to --param-secret (as Ani suggested).
Merging now.

@daniel-de-vera daniel-de-vera merged commit 59177d0 into main Apr 29, 2026
@daniel-de-vera daniel-de-vera deleted the plan-run-secrets branch April 29, 2026 12:41
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.

2 participants