spectral:arazzo error on by default

arazzo-step-output-validation

Every step output must have unique name and its value must be a valid runtime expression.

Applies to
outputs
Selects
$
Function
arazzoStepOutputNamesValidation
Specs
Arazzo 1.0
Message
{{error}}

Use it

This rule ships with OpenLint in spectral:arazzo. Extending the ruleset turns it on:

extends: spectral:arazzo
rules:
  arazzo-step-output-validation: error   # or off, or another severity

Definition

As defined in @openlint/openlint-rulesets. Functions show by name.

arazzo-step-output-validation:
  description: >-
    Every step output must have unique name and its value must be a valid
    runtime expression.
  message: '{{error}}'
  severity: 0
  given: $
  then:
    function: arazzoStepOutputNamesValidation

About this rule

Every step output must have unique name and its value must be a valid runtime expression.

Then validating the expression the rule checks against known prefixes described in the Arazzo Specification Runtime Expressions. Additionally, if output values use expressions like $workflows.foo.steps.bar, the rule will verify the existence of workflow foo and step bar.

Sources