WorkflowDefinitionValidator
in package
Shared workflow definition graph validator for seeds, publishing, and CI checks.
Table of Contents
Methods
- validate() : array<string|int, string>
- detectCycles() : array<string|int, array<string|int, string>>
- dfsDetectCycles() : void
- findReachableNodes() : array<string|int, string>
- findWaitingForEachDescendants() : array<string, string>
- Find async/waiting nodes reachable from a forEach iterate output.
- isSchemaFieldHidden() : bool
- validateActionOrConditionNode() : void
- validateRequiredParams() : void
Methods
validate()
public
validate(array<string|int, mixed> $definition) : array<string|int, string>
Parameters
- $definition : array<string|int, mixed>
-
Workflow graph to validate
Return values
array<string|int, string>detectCycles()
private
detectCycles(string $startKey, array<string|int, mixed> $nodes) : array<string|int, array<string|int, string>>
Parameters
- $startKey : string
-
Starting node key
- $nodes : array<string|int, mixed>
-
Workflow nodes
Return values
array<string|int, array<string|int, string>>dfsDetectCycles()
private
dfsDetectCycles(string $nodeKey, array<string|int, mixed> $nodes, array<string, bool> &$visited, array<string, bool> &$stack, array<string|int, array<string|int, string>> &$cycles) : void
Parameters
- $nodeKey : string
-
Node key
- $nodes : array<string|int, mixed>
-
Workflow nodes
- $visited : array<string, bool>
-
Visited map
- $stack : array<string, bool>
-
Recursion stack
- $cycles : array<string|int, array<string|int, string>>
-
Cycle accumulator
findReachableNodes()
private
findReachableNodes(string $startKey, array<string|int, mixed> $nodes) : array<string|int, string>
Parameters
- $startKey : string
-
Starting node key
- $nodes : array<string|int, mixed>
-
Workflow nodes
Return values
array<string|int, string>findWaitingForEachDescendants()
Find async/waiting nodes reachable from a forEach iterate output.
private
findWaitingForEachDescendants(string $nodeKey, array<string|int, mixed> $node, array<string|int, mixed> $nodes) : array<string, string>
Parameters
- $nodeKey : string
-
ForEach node key
- $node : array<string|int, mixed>
-
ForEach node definition
- $nodes : array<string|int, mixed>
-
Workflow nodes
Return values
array<string, string> —Node ID to node type
isSchemaFieldHidden()
private
isSchemaFieldHidden(array<string|int, mixed> $paramMeta) : bool
Parameters
- $paramMeta : array<string|int, mixed>
-
Schema metadata
Return values
boolvalidateActionOrConditionNode()
private
validateActionOrConditionNode(string $key, array<string|int, mixed> $node, array<string|int, string> &$errors) : void
Parameters
- $key : string
-
Node key
- $node : array<string|int, mixed>
-
Node definition
- $errors : array<string|int, string>
-
Errors accumulator
validateRequiredParams()
private
validateRequiredParams(string $prefix, array<string|int, mixed> $inputSchema, array<string|int, mixed> $params, array<string|int, mixed> $config, array<string|int, string> &$errors) : void
Parameters
- $prefix : string
-
Error prefix
- $inputSchema : array<string|int, mixed>
-
Registry input schema
- $params : array<string|int, mixed>
-
Node params
- $config : array<string|int, mixed>
-
Node config
- $errors : array<string|int, string>
-
Errors accumulator