From 752d7a51a9bcacf2f9d52beec29194d936486185 Mon Sep 17 00:00:00 2001 From: Hazem Nureldin Date: Sat, 5 Sep 2026 14:56:53 +0100 Subject: [PATCH 1/2] feat(forms): support schema-driven template parameter autofill from URL - Add URL-based parameter pre-population for workflow templates - Parse parameters using template JSON schema - Support complex parameter types such as arrays and objects - Update template forms to refresh when pre-populated values change `` --- .release-please-manifest.json | 6 +- backend/graph-proxy/CHANGELOG.md | 7 + backend/graph-proxy/Cargo.toml | 2 +- backend/graph-proxy/src/graphql/filters.rs | 252 +++++++++++++++++- backend/graph-proxy/src/graphql/workflows.rs | 174 +++++++++--- charts/apps/Chart.yaml | 2 +- charts/apps/apps.yaml | 5 + charts/apps/staging-values.yaml | 3 +- charts/dashboard/Chart.yaml | 4 +- charts/graph-proxy/Chart.yaml | 4 +- frontend/dashboard/CHANGELOG.md | 12 + frontend/dashboard/package.json | 2 +- frontend/relay-workflows-lib/CHANGELOG.md | 7 + .../lib/components/SubmissionForm.tsx | 7 +- .../lib/utils/workflowRelayUtils.ts | 91 ++++++- frontend/relay-workflows-lib/package.json | 2 +- .../components/template/SubmissionForm.tsx | 7 +- 17 files changed, 534 insertions(+), 53 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index cd19e2088..88504beb0 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,12 +1,12 @@ { "+1": "0.0.0", - "backend/graph-proxy": "0.2.0", + "backend/graph-proxy": "0.2.1", "+2": "0.0.0", "backend/sessionspaces": "0.1.7", "+3": "0.0.0", - "frontend/dashboard": "0.1.17", + "frontend/dashboard": "0.1.18", "+4": "0.0.0", - "frontend/relay-workflows-lib": "0.1.11", + "frontend/relay-workflows-lib": "0.1.12", "+5": "0.0.0", "frontend/workflows-lib": "0.1.9", "frontend/workflows-lib-shared": "0.1.1", diff --git a/backend/graph-proxy/CHANGELOG.md b/backend/graph-proxy/CHANGELOG.md index ce046dba4..09b0c968f 100644 --- a/backend/graph-proxy/CHANGELOG.md +++ b/backend/graph-proxy/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [0.2.1](https://github.com/DiamondLightSource/workflows/compare/graph-proxy@v0.2.0...graph-proxy@v0.2.1) (2026-09-07) + + +### Features + +* **graph-proxy:** get active task logs from Argo ([1a565f6](https://github.com/DiamondLightSource/workflows/commit/1a565f6c609ac82f32a1a17a98dda487a2101b2c)) + ## [0.2.0](https://github.com/DiamondLightSource/workflows/compare/graph-proxy@v0.1.21...graph-proxy@v0.2.0) (2026-08-27) diff --git a/backend/graph-proxy/Cargo.toml b/backend/graph-proxy/Cargo.toml index beff8e9ec..d994c26e0 100644 --- a/backend/graph-proxy/Cargo.toml +++ b/backend/graph-proxy/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "graph-proxy" -version = "0.2.0" +version = "0.2.1" edition = "2021" exclude = ["test-assets/"] license-file = "../../LICENSE" diff --git a/backend/graph-proxy/src/graphql/filters.rs b/backend/graph-proxy/src/graphql/filters.rs index 536b42c57..d690a73ff 100644 --- a/backend/graph-proxy/src/graphql/filters.rs +++ b/backend/graph-proxy/src/graphql/filters.rs @@ -1,5 +1,6 @@ use std::collections::HashSet; +use argo_workflows_openapi::IoArgoprojWorkflowV1alpha1Workflow; use async_graphql::{ Enum, InputObject, InputValueError, InputValueResult, Scalar, ScalarType, Value, }; @@ -125,21 +126,45 @@ pub struct LabelSelector { // Workflows-------------------------------------------- +/// Represents a workflow parameter filter +#[derive(Debug, Clone, InputObject)] +pub struct WorkflowParameterFilter { + /// The workflow parameter name + #[graphql(name = "parameterName")] + parameter_name: String, + + /// The workflow parameter value + value: String, +} + /// All the supported Workflows filters #[derive(Debug, Default, Clone, InputObject)] pub struct WorkflowFilter { /// The status of the workflow (e.g., pending, running, succeeded, failed, error) workflow_status_filter: Option, + /// The fedid of the user who created the workflow creator: Option, + /// The workflow template template: Option