Skip to content

[task] Consolidate scattered validation functions into dedicated validation files #3536

Closed

Description

@github-actions

Objective

Move scattered validation functions from various files into dedicated *_validation.go files to improve code organization and discoverability.

Context

Analysis identified 20+ validation functions scattered across multiple files outside of dedicated validation files. This reduces discoverability and makes it harder to maintain consistent validation patterns.

Part of issue #3435.

Approach

1. Create new validation files

  • expression_validation.go - For expression safety validation functions
  • engine_validation.go - For engine validation functions
  • template_validation.go - For template validation functions
  • mcp_config_validation.go - For MCP config validation functions

2. Move validation functions

From expression_safety.go:

  • validateExpressionSafety(expr string) error
  • validateSingleExpression(expr string, location string) error

From engine.go:

  • (*Compiler).validateEngine(engine string) error
  • validateSingleEngineSpecification(engines []string) error

From template.go:

  • validateNoIncludesInTemplateRegions(...) error

From mcp-config.go:

  • ValidateMCPConfigs(...) error
  • validateStringProperty(...) error
  • validateMCPRequirements(...) error

From strict_mode.go:

  • Move validation logic to existing validation_strict_mode.go

3. Update imports

  • Update all files that call these validation functions
  • Ensure no circular dependencies are introduced
  • Update test files as needed

Files to Modify

Create:

  • pkg/workflow/expression_validation.go
  • pkg/workflow/engine_validation.go
  • pkg/workflow/template_validation.go
  • pkg/workflow/mcp_config_validation.go

Update:

  • pkg/workflow/expression_safety.go (remove moved functions)
  • pkg/workflow/engine.go (remove moved functions)
  • pkg/workflow/template.go (remove moved functions)
  • pkg/workflow/mcp-config.go (remove moved functions)
  • pkg/workflow/strict_mode.go (remove moved functions)
  • Any files that import these validation functions

Acceptance Criteria

AI generated by Plan Command for #3435

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions