Skip to content

Add secret commands#324

Merged
daniel-de-vera merged 3 commits into
mainfrom
secret-commands
Apr 29, 2026
Merged

Add secret commands#324
daniel-de-vera merged 3 commits into
mainfrom
secret-commands

Conversation

@daniel-de-vera
Copy link
Copy Markdown
Contributor

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

Summary

  • Adds signadot secret (alias secrets) with create, update, get, list (alias ls), and delete (alias rm) subcommands wrapping the Secrets API from the go-sdk.
  • Values can be supplied via --value (warns about shell history), --value-file, --value-stdin, or a flat YAML/JSON file with -f (with --set var=val expansion). Value is required on both create and update, matching server-side validation.
  • get/list print metadata only (NAME, DESCRIPTION, CREATED, UPDATED) since the API never returns plaintext. -o json|yaml supported throughout.
  • Bumps go-sdk to a version that includes the secrets client.

Test plan

  • go build ./... and go vet ./... pass (verified locally)
  • signadot secret --help and each subcommand --help render correctly
  • Create a secret via --value, --value-file, --value-stdin, and -f paths
  • Verify --value, --value-file, --value-stdin are rejected together
  • Verify -f is rejected with positional NAME and with --value* / --description
  • Verify missing value produces the client-side error before the API call
  • Update an existing secret (value rotation) and confirm updatedAt changes on get
  • list shows all secrets and delete NAME / delete -f FILE remove them
  • get / list never include a value field in JSON/YAML output

🤖 Generated with Claude Code

Add `signadot secret` command set (create / update / get / list / delete)
wrapping the Secrets API from the go-sdk. Values can be supplied via
--value, --value-file, --value-stdin, or a flat YAML file with `-f`
(with `--set var=val` expansion). Get/list print metadata only, since
the API never returns plaintext.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@scott-cotton
Copy link
Copy Markdown
Member

Worth adding a "## Secrets" section to agent-skills/signadot-cli/SKILL.md in this PR (or a tight follow-up) so agents know the command exists — currently the file has zero references to signadot secret (only one passing mention of "Secrets" in the sandbox-file-mounts context). Bare minimum:

  • signadot secret create NAME --value VAL (and --value-file, --value-stdin, -f spec.yaml --set var=val)
  • signadot secret update NAME --value VAL
  • signadot secret get NAME / list — metadata only, plaintext never returned
  • signadot secret delete NAME
  • One-line note that secrets are bound to plan params via signadot plan run --secret param-name=secret-name (Add --param-secret flag to plan run #323)

Otherwise the entire secrets feature is invisible to agents that load this skill, and #323's --secret flag has no path-to-discovery from the skill side.

daniel-de-vera and others added 2 commits April 29, 2026 09:46
Add a Secrets section to agent-skills/signadot-cli/SKILL.md so agents
loading the skill discover the new `signadot secret` commands and the
plan run --param-secret binding. Also list secret/secrets in the skill
description and argument-hint.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@daniel-de-vera
Copy link
Copy Markdown
Contributor Author

@scott-cotton, added secrets to the skill in 03a0949.

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

@daniel-de-vera daniel-de-vera merged commit b2bb8a5 into main Apr 29, 2026
@daniel-de-vera daniel-de-vera deleted the secret-commands branch April 29, 2026 13:04
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