Add --arg-secret to pipeline-runs submit for secret-backed inputs#44
Open
arseniy-pplx wants to merge 1 commit into
Open
Add --arg-secret to pipeline-runs submit for secret-backed inputs#44arseniy-pplx wants to merge 1 commit into
arseniy-pplx wants to merge 1 commit into
Conversation
Support binding a pipeline input to a Tangle secret via
`--arg-secret INPUT=SECRET_NAME` (repeatable) and a matching
`arg_secrets` config mapping. Each reference encodes the OSS
dynamic-data payload {"dynamicData":{"secret":{"name":...}}} under
the input in root_task arguments.
Validation runs before any file read or network call: inputs and
secret names must be non-empty after trimming, duplicates are
rejected, and an input supplied both as a plain value and a secret
reference is rejected rather than silently overwritten. CLI
`--arg-secret` overrides config `arg_secrets`. Existing --arg,
--args-json, config args, hydration, dry-run, and submit-recovery
behavior are unchanged.
arseniy-pplx
marked this pull request as ready for review
July 20, 2026 18:11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a
--arg-secret INPUT=SECRET_NAMEoption tosdk pipeline-runs submitso a pipeline input can be bound to a Tangle secret instead of a plain value. Each reference encodes the standard dynamic-data payload under the input inroot_task.arguments:{"dynamicData": {"secret": {"name": "SECRET_NAME"}}}The flag is repeatable, and a matching
arg_secretsmapping is supported in the submit config file so secret bindings can be expressed the same way as the existingargsmapping.Context
Pipelines frequently need credentials (API keys, DB passwords) that should be resolved from stored secrets rather than passed as literals on the command line or checked into config. Today
submitonly accepts plain values via--arg,--args-json, and configargs. This change lets callers reference a secret by name; the backend resolves it at run time via the existing dynamic-data secret contract. No backend or secret-storage behavior changes — this only teaches the CLI to emit the reference payload the backend already understands.Behavior details:
--arg/--args-json/ configargs) and as a secret reference (--arg-secret/ configarg_secrets) is rejected with an actionable error rather than silently overwritten.--arg-secretoverrides configarg_secrets, matching the existing CLI-over-config convention.--arg,--args-json, configargs, hydration/trust, dry-run, and submit-recovery semantics are untouched. The secret payload passes through payload sanitization unchanged.A secret input must be a declared pipeline input, identical to
--arg.Testing
uv run pytest tests/test_pipeline_runs_cli.pydynamicData.secret.nameshape against an in-memory fake clientuvx ruff checkon the touched filesuv lock --checkgit diff --checkuv run tangle sdk pipeline-runs submit --helpshows--arg-secret