This is another entry on my monthly (yes, monthly now) update about the AsyncAPI Spec and parsers

As a side note, due to a personal situation, I would be stopping reporting this updates for a couple of months. I still need to figure out if someone else could do it during that time :)

Note This is not an official AsyncAPI update but a personal summary I volunteer to do.

What do I mean by AsyncAPI Spec and parsers update?. As most of the work around the AsyncAPI Spec is not only related to https://github.com/asyncapi/spec, each update will include the most significant recent activity from the following repositories:

Feel free to ask me to include any other repository if you consider it makes sense. Also, in case you want to help me with these updates :)

Spec

2.5 got released! 🚀

2.5.0 got released, and Vladimír Gorej was the Release Coordinator 🙌.

The changes introduced are:

Features

Fixes

Full Changelog: https://github.com/asyncapi/spec/compare/v2.4.0...v2.5.0

3.0 work is moving on! 🧑‍🍳

Work on 3.0 is moving forward! These are some of the issues and PRs with recent activity:

As a side note, more Spec 3.0 live meetings have been held 📹. See the list of issues with links to video recordings here.

New Reference(s) tooling is under discussion 🗣️

The main purpose behind this is to support referencing other schemas rather than JSON or convertible to JSON.

Few months ago, Jonas Lagoni opened this draft PR with the very first concepts on how this new referencing standard could work. Now, there is this well-formed GitHub discussion that includes all features and behaviours this new tooling might need to support as well as real-world use cases. Henry Andrews (JSON Schema Co-Author) among other folks joined the discussion by sharing their vast experience in this matter.

If you want to be part of this journey, do not hesitate to join!

spec-json-schemas

v4.0.0 got released! 🎉

Brought by Maciej Urbańczyk, this new version remove unsupported specs from NodeJS export, meaning no more support for versions lower than 2.0.0.

Validation for extensions (from extension-catalog) will be a thing! ⚙️

In the same way there are schemas for bindings, TAHI Siham wants to add those for extensions from the Extensions Catalog. This will become a really powerful addition! 💪

Parameters object now have the proper schema for the reference property 🔧

mastdev fixed the schema for the $ref property in the Parameters Object schema, so now is using a oneOf to allow both references or Parameters object as additionalProperties. This is not a breaking change, because the behavior is not modified, but ensures consistency across all schemas.

See the PR in update schema to resolve reference property issue.

Bug allows to define Operation Traits with a double array 🐛

Jonas Lagoni reported Traits can be defined as double arrays. Some code owners are confirming this is a bug.

parser-js

v2.0.0 beta is out! 🍇

v2.0.0-next-major.8 is the latest beta released, as per today. I encourage you to grab it and test it in your projecs!

At a glance, it has an improved API, it uses Spectral for validating AsyncAPI documents and it has been rewritten to TypeScript improving the developer experience by a lot.

You can see all the pending work on Road to v2.0.0.

All the changes are being merged into the next-spec-major branch and brought by Maciej Urbańczyk, and Sergio Moya.

bindings

Allow using scalar types for some Kafka bindings values 🥂

Viacheslav Poturaev submitted the PR feat: kafka bindings with support for scalar parameter values where it adds support for not only using Schema type for some of the Kafka bindings values but also directly use a scalar such as a plain string.

The PR is already approved but not merged yet, so you are still able to review! 👀

Adding session expiry interval to MQTT5 bindings ⏱️

Shreyansh Jain wants to add sessionExpiryInterval field to the MQTT5 binding so it can be used both when generating code or for letting the user of the API know the expected session expiry interval.

Please, see the PR and add your thoughts ✍️.

avro-schema-parser

Rewrite to TypeScript + implement the new Parser-JS 2.0 interface 🤝

Implement new Parser-js interface + migrate to TypeScript by Sergio Moya ports this schema parser to TypeScript and implements the new Schema Parser Interface available in the future Parser-JS 2.0.

The PR is still open and waiting for more feedback! 👀

openapi-schema-parser

Rewrite to TypeScript + implement the new Parser-JS 2.0 interface 🤝

Rewrite to TS and adjust to the v2 ParserJS by Maciej Urbańczyk ports this schema parser to TypeScript and implements the new Schema Parser Interface available in the future Parser-JS 2.0.

The PR is still open and waiting for more feedback! 👀

raml-dt-schema-parser

Rewrite to TypeScript + implement the new Parser-JS 2.0 interface 🤝

Rewrite to TS and adjust to the v2 ParserJS by Maciej Urbańczyk ports this schema parser to TypeScript and implements the new Schema Parser Interface available in the future Parser-JS 2.0.

The PR is still open and waiting for more feedback! 👀

extensions-catalog

MVP for making the Extensions Catalog finally useful! 🚀

MVP integration of extensions catalog with AsyncAPI tools to make extension catalog useful is being taken by TAHI Siham. The idea is to simplify the approach decided on the very beginning so it can provide value to the community soonish.

You can take a look to some of the TODOs for making this happen: