From 43d3eae1dbf2f1345a442d4e840ececac5430ac7 Mon Sep 17 00:00:00 2001 From: Tanguy Duhamel Date: Thu, 2 Oct 2025 11:49:14 +0200 Subject: [PATCH] fix: Filter metadata-only parameters from workflow arguments SecurityAssessmentWorkflow was receiving 7 arguments instead of 2-5. The issue was that target_path and volume_mode from default_parameters were being passed to the workflow, when they should only be used by the system for configuration. Now filters out metadata-only parameters (target_path, volume_mode) before passing arguments to workflow execution. --- backend/src/temporal/manager.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/backend/src/temporal/manager.py b/backend/src/temporal/manager.py index 9aa075f..c6e3f77 100644 --- a/backend/src/temporal/manager.py +++ b/backend/src/temporal/manager.py @@ -186,13 +186,17 @@ class TemporalManager: # The workflow parameters are passed as individual positional args workflow_args = [target_id] + # Filter out metadata-only parameters (target_path, volume_mode) + # These are used by the system but NOT passed to the workflow + metadata_only_params = {"target_path", "volume_mode"} + # Add parameters in order based on workflow signature # For security_assessment: scanner_config, analyzer_config, reporter_config # For atheris_fuzzing: target_file, max_iterations, timeout_seconds - # Parameters come from metadata.yaml's default_parameters merged with user params if workflow_params: - # Add all parameter values as positional args - workflow_args.extend(workflow_params.values()) + # Only add parameters that are NOT metadata-only + filtered_params = {k: v for k, v in workflow_params.items() if k not in metadata_only_params} + workflow_args.extend(filtered_params.values()) # Determine task queue from workflow vertical vertical = workflow_info.metadata.get("vertical", "default")