Skip to content

feat: add support for validating Arazzo 1.1.0#2877

Draft
DmitryAnansky wants to merge 3 commits into
mainfrom
feat/support-linting-for-arazzo-3.1.0-version
Draft

feat: add support for validating Arazzo 1.1.0#2877
DmitryAnansky wants to merge 3 commits into
mainfrom
feat/support-linting-for-arazzo-3.1.0-version

Conversation

@DmitryAnansky

@DmitryAnansky DmitryAnansky commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

What/Why/How?

What's new in Arazzo 1.1.0 (verified against spec.openapis.org/arazzo/latest.html)

Object Change
Root New optional $self (URI-reference, base URI for the doc)
Source Description type gains asyncapi (was openapi/arazzo)
Step New channelPath (AsyncAPI channel pointer, joins mutual-exclusivity group with operationId/operationPath/workflowId), action (send/receive), correlationId, timeout (integer, ms), dependsOn (list of stepIds)
Parameter in gains querystring (OpenAPI 3.2 alignment)
Criterion Object form of type is now the generalized Expression Type Object; jsonpath versions gain rfc9535, xpath versions gain xpath-31
Expression Type Object type: jsonpath/xpath/jsonpointer; version REQUIRED: jsonpath→rfc9535,draft-goessner-dispatch-jsonpath-00; xpath→xpath-31,xpath-30,xpath-20,xpath-10; jsonpointer→rfc6901
Selector Object (new) context (REQUIRED), selector (REQUIRED), type (REQUIRED, string enum or Expression Type Object). Usable in outputs, parameter values, requestBody payload, payload replacement values
Outputs Values may be runtime-expression strings or Selector Objects
Payload Replacement New targetSelectorType (string enum or Expression Type Object); value may be a Selector Object
Success/Failure Action New parameters (list of Parameter Object | Reusable Object) for passing inputs to the referenced workflow
Runtime expressions New $message.header.*, $message.payload, $self sources (no lint impact — expressions are opaque strings to lint)

Reference

Closes: #2825

Testing

Screenshots (optional)

Check yourself

  • This PR follows the contributing guide
  • All new/updated code is covered by tests
  • Core code changed? - Tested with other Redocly products (internal contributions only)
  • New package installed? - Tested in different environments (browser/node)
  • Documentation update has been considered

Security

  • The security impact of the change has been considered
  • Code follows company security practices and guidelines

@changeset-bot

changeset-bot Bot commented Jun 12, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 0126f35

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 3 packages
Name Type
@redocly/openapi-core Minor
@redocly/cli Minor
@redocly/respect-core Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 81.45% (🎯 81%) 7454 / 9151
🔵 Statements 80.81% (🎯 80%) 7747 / 9586
🔵 Functions 84.63% (🎯 84%) 1482 / 1751
🔵 Branches 73.11% (🎯 72%) 5033 / 6884
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
packages/cli/src/wrapper.ts 73.8% 47.22% 100% 73.17% 50, 68, 72-75, 93-100
packages/cli/src/utils/telemetry.ts 93.23% 75% 94.44% 93.89% 58, 63, 252, 288, 301-302, 387, 392
packages/core/src/detect-spec.ts 97.77% 97.14% 100% 97.77% 38
packages/core/src/oas-types.ts 100% 100% 100% 100%
packages/core/src/visitors.ts 92.94% 90.12% 90% 92.5% 561, 598, 601, 622, 654, 668
packages/core/src/config/all.ts 100% 100% 100% 100%
packages/core/src/config/config.ts 64.13% 64.74% 75% 64.63% 176-206, 232, 236, 240-246, 249, 253-259, 291, 309-329, 408-438
packages/core/src/config/minimal.ts 100% 100% 100% 100%
packages/core/src/config/recommended-strict.ts 100% 100% 100% 100%
packages/core/src/config/recommended.ts 100% 100% 100% 100%
packages/core/src/config/utils.ts 97.53% 81.81% 100% 98.75% 33, 84-86
packages/core/src/rules/arazzo/sourceDescription-type.ts 88.88% 83.33% 100% 100% 8
packages/core/src/types/arazzo1_1.ts 78.57% 55% 100% 78.57% 25, 129-132, 144-147, 174, 190, 203, 210
packages/core/src/types/redocly-yaml.ts 91.75% 83.01% 100% 91.48% 409, 441, 447, 490-497, 499, 650-655, 658-663, 666-671
packages/core/src/typings/arazzo.ts 100% 100% 100% 100%
Generated in workflow #10335 for commit 0126f35 by the Vitest Coverage Report Action

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Performance Benchmark (Lower is Faster)

CLI Version Bundle Lint Check Config
cli-latest ▓ 1.00x (Fastest) ▓▓ 1.06x ± 0.06 ▓ 1.00x (Fastest)
cli-next ▓ 1.00x ± 0.01 ▓ 1.00x (Fastest) ▓ 1.01x ± 0.01

@DmitryAnansky DmitryAnansky force-pushed the feat/support-linting-for-arazzo-3.1.0-version branch from 167d764 to 451802a Compare June 15, 2026 19:17
@DmitryAnansky DmitryAnansky force-pushed the feat/support-linting-for-arazzo-3.1.0-version branch from 25febda to 0126f35 Compare June 16, 2026 15:54
arazzo: '1.1.0'
$self: https://example.com/workflows/museum.arazzo.yaml
info:
title: Museum workflows

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: rewrite with Cafe API example

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Adopt lint command to the new Arazzo v1.1.0 specification

1 participant