Class: RosettAi::Workflow::SchemaValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/rosett_ai/workflow/schema_validator.rb

Overview

Validates workflow YAML files against the workflow JSON Schema.

Additionally enforces security constraints: shell steps must use array-form commands, prompt steps must not contain secret literals.

Author:

  • hugo

  • claude

Constant Summary collapse

MAX_STEPS =
50
SCHEMA_PATH =
File.expand_path('../../../conf/schemas/workflow_schema.json', __dir__)

Instance Method Summary collapse

Instance Method Details

#valid?(data) ⇒ Boolean

Parameters:

  • data (Hash)

    parsed workflow YAML

Returns:

  • (Boolean)


31
32
33
# File 'lib/rosett_ai/workflow/schema_validator.rb', line 31

def valid?(data)
  validate(data).empty?
end

#validate(data) ⇒ Array<String>

Returns validation errors (empty if valid).

Parameters:

  • data (Hash)

    parsed workflow YAML

Returns:

  • (Array<String>)

    validation errors (empty if valid)



23
24
25
26
27
# File 'lib/rosett_ai/workflow/schema_validator.rb', line 23

def validate(data)
  errors = schema_errors(data)
  errors += security_errors(data) if errors.empty?
  errors
end