Skip to content

feat(ui): add arbitrary template parameters - #16824

Open
ruslan-shaydullin wants to merge 1 commit into
argoproj:mainfrom
ruslan-shaydullin:codex/ui-arbitrary-template-parameters
Open

feat(ui): add arbitrary template parameters#16824
ruslan-shaydullin wants to merge 1 commit into
argoproj:mainfrom
ruslan-shaydullin:codex/ui-arbitrary-template-parameters

Conversation

@ruslan-shaydullin

@ruslan-shaydullin ruslan-shaydullin commented Aug 26, 2026

Copy link
Copy Markdown
  • Ran make pre-commit -B
  • Signed-off commits with Conventional Commit messages
  • PR title is a conventional commit message (it becomes the release notes entry)
  • Unit or e2e tests cover the change
  • For features: an associated issue and a feature description file (make feature-new)
  • Opened as draft; will mark "Ready for review" once builds are green

Fixes #13035

Motivation

The submit UI for WorkflowTemplate and ClusterWorkflowTemplate currently only allows users to provide parameters declared by the template. The backend already accepts parameters in name=value format, but the UI provides no way to add a parameter that was not declared in advance. This change removes that UI limitation.

Modifications

  • Added Name/Value rows with controls for adding and removing custom parameters.
  • Custom parameters are appended after the workflow and entrypoint parameters in the submit payload.
  • Empty values are supported and submitted as name=.
  • Values containing = are preserved in full.
  • An empty parameter name displays a validation error and disables Submit.
  • Added unique accessibility labels for the parameter controls.
  • Implemented the change in the existing submit panel shared by WorkflowTemplate and ClusterWorkflowTemplate.
  • Did not change the backend, API, CLI, retry/resubmit behavior, or dependencies.
  • Added the required feature-description file.

Screenshots

Empty template

empty-before

Declared and custom parameters

submit-panel

Narrow viewport

empty-after-narrow

Verification

  • Test-first RED: all 3 focused tests initially failed because the Add control was absent.
  • Focused Jest tests: 3/3 passed.
  • Full UI Jest suite: 29 suites and 138 tests passed.
  • UI lint, TypeScript checking, and E2E type-checking passed.
  • The production webpack build passed with the existing bundle-size warnings.
  • Dependency deduplication passed, and yarn.lock remained unchanged.
  • make features-validate passed.
  • make features-preview passed.
  • make pre-commit -B passed.
  • git diff --check passed.
  • Completed mocked-API browser QA on desktop and narrow viewports.
  • The full Playwright E2E suite against a live cluster was not run.

Documentation

Added .features/pending/workflow-template-arbitrary-parameters.md, which will include the feature in the generated release notes. Users can discover the functionality through the visible Add a parameter control in the existing Submit Workflow panel, so separate user documentation is not needed. API documentation is not required because the API is unchanged.

AI

OpenAI Codex was used to help analyze the relevant code, implement the UI changes, write tests, check accessibility, prepare the feature-file metadata, run local validation, and suggest the commit subject. I personally reviewed and analyzed the resulting code and tests, verified how the changes integrate with the existing submit flow, and checked the validation results. I also wrote and published the issue comment and both lines of the feature note, controlled all external actions, and created the DCO-signed commit. I understand the changes and remain fully responsible for the final implementation and contribution.

Summary by CodeRabbit

  • New Features
    • Added support for submitting custom name/value parameters with WorkflowTemplate and ClusterWorkflowTemplate resources.
    • Added controls to add, edit, and remove custom parameters directly from the workflow submission panel.
    • Custom parameters are submitted alongside parameters defined by the selected template.
    • Parameter names are required, while empty values are allowed.
    • Submission remains disabled until all custom parameter names are completed.

Signed-off-by: Ruslan Shaydullin <shaydullin.r.d@outlook.com>
@ruslan-shaydullin
ruslan-shaydullin marked this pull request as ready for review August 26, 2026 19:42
@ruslan-shaydullin
ruslan-shaydullin requested review from a team as code owners August 26, 2026 19:42
@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: e6e37e01-0ded-47cc-a61d-9ca49c3daab3

📥 Commits

Reviewing files that changed from the base of the PR and between 8f0d280 and 0b3124f.

📒 Files selected for processing (4)
  • .features/pending/workflow-template-arbitrary-parameters.md
  • ui/src/shared/components/arbitrary-parameters-input.tsx
  • ui/src/workflows/components/submit-workflow-panel.arbitrary-parameters.test.tsx
  • ui/src/workflows/components/submit-workflow-panel.tsx

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

The UI adds arbitrary name/value parameter entry to workflow template submission. It validates parameter names, preserves parameter ordering, includes custom parameters in the submission payload, and tests add, remove, validation, submission, and navigation behavior.

Changes

Arbitrary workflow parameters

Layer / File(s) Summary
Parameter input component
ui/src/shared/components/arbitrary-parameters-input.tsx
Adds a controlled component that manages parameter rows, validates required names, supports removal, and renders accessible inputs.
Submission panel integration
ui/src/workflows/components/submit-workflow-panel.tsx, ui/src/workflows/components/submit-workflow-panel.arbitrary-parameters.test.tsx, .features/pending/workflow-template-arbitrary-parameters.md
The submit panel stores arbitrary parameters, appends them after declared parameters, disables submission when a name is empty, and includes feature tests and metadata.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to 0b312

This change adds validated custom parameter entry to the existing workflow submit panel without changing the backend or API; no actionable merge-blocking risk remains after normal checks and review.

Suggested reviewers: isubasinghe

Sequence Diagram(s)

sequenceDiagram
  participant SubmitWorkflowPanel
  participant ArbitraryParametersInput
  participant WorkflowSubmission
  participant Navigation
  SubmitWorkflowPanel->>ArbitraryParametersInput: provide parameter rows
  ArbitraryParametersInput-->>SubmitWorkflowPanel: return updated name/value rows
  SubmitWorkflowPanel->>WorkflowSubmission: submit declared and arbitrary parameters
  WorkflowSubmission-->>Navigation: return submitted workflow
  Navigation->>Navigation: navigate to submitted workflow
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 3 files. (1 skipped: 1 … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: adding arbitrary template parameters to the UI.
Description check ✅ Passed The description is complete. It includes the required checklist, linked issue, motivation, modifications, screenshots, verification results, documentation details, and AI disclosure.
Linked Issues check ✅ Passed The changes satisfy issue #13035 by adding UI controls for arbitrary parameter names and values, including parameters not declared in the template. The implementation covers the shared submit panel fo…
Out of Scope Changes check ✅ Passed The changes are within scope. They modify the submit-panel UI, add focused tests, and add required feature metadata. No unrelated backend, API, CLI, retry/resubmit, or dependency changes are included.
Full details: Linked Issues check

Explanation

The changes satisfy issue #13035 by adding UI controls for arbitrary parameter names and values, including parameters not declared in the template. The implementation covers the shared submit panel for both WorkflowTemplate and ClusterWorkflowTemplate resources.

Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 3 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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.

UI: allow arbitrary parameter input similar to CLI

1 participant