Skip to content

Arazzo Specification#431

Merged
grossyoan merged 33 commits intobump-sh:mainfrom
philsturgeon:guide/arazzo
Mar 6, 2026
Merged

Arazzo Specification#431
grossyoan merged 33 commits intobump-sh:mainfrom
philsturgeon:guide/arazzo

Conversation

@philsturgeon
Copy link
Contributor

@philsturgeon philsturgeon commented Jan 26, 2026

The Arazzo Specification Guide is taking form.

Introduction

  • What is it?
  • History
  • Benefits

Understanding Structure

  • Basic Structure
  • Defining Sources
  • Success and failure
  • Components and references
  • Steps, inputs, outputs
  • Workflows

Working with Arazzo

  • Runtime Expressions

Misc

  • Cheatsheet

@netlify
Copy link

netlify bot commented Jan 26, 2026

Deploy Preview for bump-content-hub ready!

Name Link
🔨 Latest commit f072eb1
🔍 Latest deploy log https://app.netlify.com/projects/bump-content-hub/deploys/69aab7402051f100084d014a
😎 Deploy Preview https://deploy-preview-431--bump-content-hub.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Contributor

@grossyoan grossyoan left a comment

Choose a reason for hiding this comment

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

Hi there!

Some small typos/additions on the first pages ready to review. It's a great piece of work 🙏

@philsturgeon philsturgeon changed the title [WIP] Arazzo Specification Arazzo Specification Feb 1, 2026
…zzo.md

Co-authored-by: Yoan Gross <32864409+grossyoan@users.noreply.github.com>
@philsturgeon philsturgeon marked this pull request as ready for review February 1, 2026 19:55
Copy link
Contributor

@grossyoan grossyoan left a comment

Choose a reason for hiding this comment

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

Thanks a lot for the hard work, Phil 🙏

Copy link
Member

@Polo2 Polo2 left a comment

Choose a reason for hiding this comment

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

The whole reading is very interesting, we learn a lot about Arazzo specification and use case, with a lot of clear examples and the cheatsheet, well done 👏

I left two suggestions in code example to stick with the specification:

  • clarification with string interpolation and runtime expression (based on sentence "Runtime expressions preserve the type of the referenced value. Expressions can be embedded into string values by surrounding the expression with {} curly braces.")
  • clarification about how component is referenced (favor the full path with $components.)

Beside that, all good to merge, and well done for the huge work 🙌

grossyoan and others added 7 commits February 25, 2026 11:19
…components-and-references.md

Co-authored-by: Polo <32060402+Polo2@users.noreply.github.com>
…components-and-references.md

Co-authored-by: Polo <32060402+Polo2@users.noreply.github.com>
…basic-structure.md

Co-authored-by: Polo <32060402+Polo2@users.noreply.github.com>
…components-and-references.md

Co-authored-by: Polo <32060402+Polo2@users.noreply.github.com>
…defining-sources.md

Co-authored-by: Polo <32060402+Polo2@users.noreply.github.com>
…components-and-references.md

Co-authored-by: Polo <32060402+Polo2@users.noreply.github.com>
Copy link
Member

@Polo2 Polo2 left a comment

Choose a reason for hiding this comment

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

Arazzo ready 🎉

payload:
tripId: $steps.search.outputs.tripId
passengers:
- name: $inputs.passengers[0].name
Copy link
Member

Choose a reason for hiding this comment

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

It's quite unclear for me how runtine expressions when you need to access data within a payload (a payload being an object that is not described by the spec but by the API response or request bodies, parameters or inputs).

From what I understand from the spec it seems this line should be written:

Suggested change
- name: $inputs.passengers[0].name
- name: $inputs.passengers#/0/name

However, I pretty much dislike and disagree with this syntax and Im much more aligned to what you wrote.. Internally at Bump we have defined a custom spec which will allow to use jmespath (or maybe jsonpath) in those expressions so that dot notations work as we could expect.

What do you think? Is this something I misunderstood?

Copy link
Member

@paulRbr paulRbr Mar 6, 2026

Choose a reason for hiding this comment

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

I dug further for this. It seems the json pointer expression is only for requests or responses bodies per the ABNF syntax of runtime expression defined by the arazzo spec. (and here an example in the arazzo spec repository)

So this seems to be the legitimate way of accessing complex inputs.

outputs:
# Extract simple values
bookingId: $response.body.id
customerEmail: $response.body.customer.email
Copy link
Member

Choose a reason for hiding this comment

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

As stated in a previous comment, Im completely aligned with your dot notation to access payload data. But I dont think it's how arazzo specifies it (even if it isnt really clear)...

@grossyoan grossyoan merged commit c998a5c into bump-sh:main Mar 6, 2026
5 checks passed
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.

4 participants