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.
This commit is contained in:
Tanguy Duhamel
2025-10-02 11:49:14 +02:00
parent 3d45b99ee8
commit 43d3eae1db

View File

@@ -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")