arazzo-expression
arazzo-expression checks every runtime expression in the workflow, the $steps.thing.outputs.value strings that wire one step to the next. They have to parse, and they have to make sense where they are used.
Why did this violation appear?
An expression uses an unknown prefix, has invalid syntax, or is used somewhere that kind of expression is not available.
Bad example
arazzo: 1.0.1
info:
title: Read a pet
version: '1.0'
description: Retrieve a pet from the API.
summary: Read a pet.
sourceDescriptions:
- name: api
url: api.yaml
type: openapi
workflows:
- workflowId: readPet
description: Retrieve a pet.
summary: Read a pet.
steps:
- stepId: read
description: Call the read operation.
operationId: $sourceDescriptions.api.read
outputs:
pet: $nonsense.body
unknown expression prefix: "$nonsense.body"
Good example
arazzo: 1.0.1
info:
title: Read a pet
version: '1.0'
description: Retrieve a pet from the API.
summary: Read a pet.
sourceDescriptions:
- name: api
url: api.yaml
type: openapi
workflows:
- workflowId: readPet
description: Retrieve a pet.
summary: Read a pet.
steps:
- stepId: read
description: Call the read operation.
operationId: $sourceDescriptions.api.read
outputs:
pet: $response.body
How do I fix this violation?
Correct the expression. The message quotes the part that failed. Success criteria conditions are checked too, including the syntax of jsonpath conditions.
This rule reports findings from vacuum’s shared Arazzo validation pass, using the arazzoDocument function.
