Skip to content

[RUN-4693] Document job option injection controls - #1946

Open
ronaveva wants to merge 2 commits into
4.0.xfrom
RUN-4693-docs-option-injection-controls
Open

[RUN-4693] Document job option injection controls#1946
ronaveva wants to merge 2 commits into
4.0.xfrom
RUN-4693-docs-option-injection-controls

Conversation

@ronaveva

Copy link
Copy Markdown
Contributor

Summary

Documents the option-injection controls added under RUN-4693 (product PR rundeck/rundeck#10490):

  • Default option-value allowlistrundeck.option.input.validation.default.pattern (system) and project.option.input.validation.default.pattern (project): an opt-in allowlist regex applied to option values that lack their own regex/enforced list. Includes precedence rules, a recommended starting pattern ([A-Za-z0-9 ]+), and caveats (full-match, multi-line via (?s), fail-closed on an invalid pattern).
  • Reject undeclared optionsrundeck.execution.rejectUndeclaredOptions (default true): rejects executions that supply options not declared on the job.

Changes

  • docs/administration/configuration/config-file-reference.md — new "Job Option Injection Controls" subsection under Security (full property reference).
  • docs/manual/jobs/job-options.md — new "Restricting option input" section summarizing the three controls (per-option, default allowlist, reject undeclared) and linking to the reference.

Note: the sink expandTokens flag discussed during review was reverted and is intentionally not documented here.

🤖 Generated with Claude Code

Document the opt-in option-value allowlist and the undeclared-option reject
controls added under RUN-4693:

- config-file-reference.md: new "Job Option Injection Controls" section under
  Security, covering rundeck.option.input.validation.default.pattern (system),
  project.option.input.validation.default.pattern (project), and
  rundeck.execution.rejectUndeclaredOptions, with precedence, a recommended
  starting pattern, and caveats (full-match, multi-line, fail-closed).
- job-options.md: new "Restricting option input" section summarizing the three
  controls and linking to the full property reference.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@ronaveva
ronaveva requested review from a team and a lite review from Copilot August 28, 2026 19:31

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds documentation for RUN-4693 job option input hardening features, describing how Rundeck can validate option values with a default allowlist regex and prevent unexpected/undeclared option input from reaching executions.

Changes:

  • Adds a new “Restricting option input” section to the Job Options manual page, summarizing per-option restrictions plus the new default allowlist and undeclared-option rejection behaviors.
  • Adds a new “Job Option Injection Controls” subsection under Security in the configuration file reference with properties, precedence, and pattern caveats.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
docs/manual/jobs/job-options.md Introduces a user-facing overview section explaining how to restrict option input and links to the full configuration reference.
docs/administration/configuration/config-file-reference.md Documents the new configuration properties, their scopes/defaults, and key behavior notes for option input validation and undeclared-option handling.
Suppressed comments (1)

docs/administration/configuration/config-file-reference.md:636

  • This row says the execution is “created and then failed at start”, but the surrounding text describes these as being rejected before any workflow step runs. Consider using consistent wording here (and avoid asserting creation if the intent is simply that it does not proceed).
| `rundeck.execution.rejectUndeclaredOptions` | `true` | When enabled, an execution that provides an option not defined on the job is created and then failed at start, with a message in the execution log. |

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/administration/configuration/config-file-reference.md Outdated
Comment thread docs/manual/jobs/job-options.md
@ronaveva ronaveva added this to the 6.3.0 milestone Aug 28, 2026
@ronaveva ronaveva changed the title RUN-4693: Document job option injection controls [RUN-4693] Document job option injection controls Aug 28, 2026
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
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