Skip to content

feat: expose agents-webhook-secret-regenerate (destructive)#10

Merged
mikemolinet merged 1 commit into
mainfrom
feat/agents-webhook-secret-regenerate
May 9, 2026
Merged

feat: expose agents-webhook-secret-regenerate (destructive)#10
mikemolinet merged 1 commit into
mainfrom
feat/agents-webhook-secret-regenerate

Conversation

@mikemolinet
Copy link
Copy Markdown
Collaborator

Summary

Exposes cueapi agents webhook-secret regenerate as the agents-webhook-secret-regenerate Action command. Closes Backlog row cmousycjv (Drift-audit deferred 2026-05-07; re-claimed + verified-genuinely-open 2026-05-09 via action.yml inspection).

What's added

  • action.yml:
    • Add agents-webhook-secret-regenerate to the command input description (Agent identity section), with a callout noting it's destructive + always passes --yes since CI has no interactive confirm.
    • New runs.steps case branch: cmd=(cueapi agents webhook-secret regenerate); [ -n "$REF" ] && cmd+=("$REF"); cmd+=(--yes).
    • Update the unsupported-command error message to include the new command.
  • parity-manifest.json:
    • Move from commands_missing_from_action to commands_exposed_via_action.
    • Provenance note: "ported from Backlog row cmousycjv (Drift-audit deferred 2026-05-07; ported 2026-05-09)".

Behavior

- uses: cueapi/cueapi-action@v1
  with:
    command: agents-webhook-secret-regenerate
    ref: scout@govind   # or agt_xxx
    api-key: ${{ secrets.CUEAPI_API_KEY }}

Server-side: the underlying POST /v1/agents/{ref}/webhook-secret/regenerate requires X-Confirm-Destructive: true (substrate gate against accidental rotation). The CLI sends this header automatically when invoked with --yes. The new secret is printed to stdout for the caller to capture (e.g. via outputs: in a downstream step).

Operator caveat: rotation drops the old secret immediately. In-flight webhook deliveries already signed with the old secret will fail signature verification on the consumer side. Coordinate consumer-side updates if you need zero-downtime rotation.

Stats

  • 2 files changed (+17/-4).

Test plan

  • python3 -c "import yaml; yaml.safe_load(open('action.yml'))" passes
  • python3 -c "import json; json.load(open('parity-manifest.json'))" passes
  • Verified upstream cueapi agents webhook-secret regenerate <ref> --yes exists in cueapi-cli (PR #28, merged 2026-05-04). Action invocation matches the CLI shape.
  • action.yml runs section follows the same shape as the existing agents-webhook-secret-get case (added immediately after for visual proximity).
  • Unsupported-command error message updated to keep the supported-list comprehensive.

Related

Closes

  • Closes cmousycjv000504jr0zsiu826 (Parity port: agents-webhook-secret-regenerate destructive → cueapi-action)

🤖 Generated with Claude Code

Closes Backlog row cmousycjv ("Parity port: agents-webhook-secret-regenerate
(destructive) → cueapi-action") — Drift-audit deferred 2026-05-07,
re-claimed by cueapi-secondary 2026-05-09 after pre-verify of action.yml
confirmed it was genuinely missing.

Wraps `cueapi agents webhook-secret regenerate <ref> --yes`. Always passes
--yes since CI has no interactive confirmation; the CLI sends the
X-Confirm-Destructive: true header automatically.

Operator caveat: rotation drops the old secret immediately. Any in-flight
webhook deliveries already signed with the old secret will fail signature
verification on the consumer side. Coordinate consumer-side updates if you
need zero-downtime rotation.

Files changed:
- action.yml: add `agents-webhook-secret-regenerate` to command description
  + new `runs.steps` case branch passing --yes; update unsupported-command
  error message
- parity-manifest.json: move from `commands_missing_from_action` to
  `commands_exposed_via_action` with provenance note

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@mikemolinet mikemolinet added the enhancement New feature or request label May 9, 2026
@mikemolinet mikemolinet merged commit ffeae74 into main May 9, 2026
@mikemolinet mikemolinet deleted the feat/agents-webhook-secret-regenerate branch May 9, 2026 20:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant