Skip to content

docs(bindings): update latest bindings documentation#5235

Closed
asyncapi-bot wants to merge 22 commits intomasterfrom
update-bindings-docs-a87b265834ee6a3bb061701e11a210de4a77d7ca
Closed

docs(bindings): update latest bindings documentation#5235
asyncapi-bot wants to merge 22 commits intomasterfrom
update-bindings-docs-a87b265834ee6a3bb061701e11a210de4a77d7ca

Conversation

@asyncapi-bot
Copy link
Copy Markdown
Contributor

@asyncapi-bot asyncapi-bot commented Mar 10, 2026

Updated bindings documentation is available and this PR introduces update to bindings folder on the website

Summary by CodeRabbit

  • Documentation

    • Added comprehensive reference documentation for multiple protocol bindings, including SNS, AMQP, Kafka, MQTT, JMS, HTTP, WebSockets, and several others.
    • Updated binding reference sections for improved organization.
  • Chores

    • Updated configuration to include bindings reference documentation.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 10, 2026

📝 Walkthrough

Walkthrough

This pull request adds comprehensive AsyncAPI bindings documentation for 20+ messaging and protocol specifications (including SNS, AMQP, Kafka, MQTT, IBM MQ, and others), updates the site configuration to expose the new bindings reference section, and adjusts metadata for the bindings documentation structure.

Changes

Cohort / File(s) Summary
Configuration
config/edit-page-config.json
Added new entry pointing to the AsyncAPI bindings reference directory at the GitHub repository.
Documentation Structure
markdown/docs/reference/bindings/_section.md, markdown/docs/reference/bindings/scripts.md
Updated front-matter formatting and weight value; added note about centralized script management.
SNS Bindings
markdown/docs/reference/bindings/2.x.x.md, markdown/docs/reference/bindings/3.0.0.md
Added versioned SNS binding specifications including server, channel, operation, and message binding objects with schemas and YAML examples.
Message Queue & Middleware Bindings
markdown/docs/reference/bindings/amqp.md, markdown/docs/reference/bindings/amqp1.md, markdown/docs/reference/bindings/kafka.md, markdown/docs/reference/bindings/jms.md, markdown/docs/reference/bindings/mqtt.md, markdown/docs/reference/bindings/mqtt5.md, markdown/docs/reference/bindings/nats.md, markdown/docs/reference/bindings/stomp.md
Added binding specifications for traditional messaging protocols, each defining server/channel/operation/message binding objects with field constraints and YAML examples.
Cloud & Queue Service Bindings
markdown/docs/reference/bindings/anypointmq.md, markdown/docs/reference/bindings/googlepubsub.md, markdown/docs/reference/bindings/ibmmq.md, markdown/docs/reference/bindings/pulsar.md, markdown/docs/reference/bindings/redis.md, markdown/docs/reference/bindings/sqs.md, markdown/docs/reference/bindings/solace.md
Added binding specifications for cloud services and queue platforms with versioning, binding object definitions, field specifications, and integration examples.
Web & Other Protocol Bindings
markdown/docs/reference/bindings/http.md, markdown/docs/reference/bindings/mercure.md, markdown/docs/reference/bindings/ros2.md, markdown/docs/reference/bindings/websockets.md
Added binding specifications for HTTP, WebSockets, Mercure, and ROS 2 with protocol-specific binding objects and usage examples.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Possibly related PRs

  • PR #5043: Implements identical config and bindings documentation changes, indicating coordinated documentation updates.
  • PR #5046: Reverts these changes by removing the config entry and deleting the same bindings documentation files.

Suggested labels

autoupdate, autoapproved

Suggested reviewers

  • derberg
  • princerajpoot20
  • thulieblack
  • akshatnema
  • sambhavgupta0705
  • anshgoyalevil
  • TRohit20
  • asyncapi-bot-eve
  • Mayaleeeee

Poem

🐰 With bindings spanning far and wide,
AMQP, Kafka, Pulsar side by side,
SNS and Solace joined the quest,
AsyncAPI's protocols—all well dressed!
Twenty protocols now have their home,
A documentation feast, no need to roam! 📚✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately describes the main purpose of the changeset: updating bindings documentation across multiple binding protocols.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch update-bindings-docs-a87b265834ee6a3bb061701e11a210de4a77d7ca

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@netlify
Copy link
Copy Markdown

netlify Bot commented Mar 10, 2026

Deploy Preview for asyncapi-website failed.

Name Link
🔨 Latest commit e4a6837
🔍 Latest deploy log https://app.netlify.com/projects/asyncapi-website/deploys/69bd7e79a0ce0d0007a080ab

@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 10, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (fd8e0f2) to head (e4a6837).
⚠️ Report is 14 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff            @@
##            master     #5235   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           22        22           
  Lines          830       830           
  Branches       159       159           
=========================================
  Hits           830       830           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 16

Note

Due to the large number of review comments, Critical, Major severity comments were prioritized as inline comments.

🟡 Minor comments (24)
markdown/docs/reference/bindings/mqtt5.md-10-10 (1)

10-10: ⚠️ Potential issue | 🟡 Minor

The deprecation link target looks wrong.

../mqtt/README.md climbs out of reference/bindings/, so it does not point at the sibling MQTT bindings page in this section. Please link this to the local MQTT doc instead.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/mqtt5.md` at line 10, Replace the incorrect
link target "../mqtt/README.md" in the deprecation notice line so it points to
the local MQTT bindings doc in the same bindings section (e.g. change the link
target to "./mqtt/README.md" or "mqtt/README.md" in the heading text "#
**Deprecation Warning**: MQTT version 5 specific bindings are deprecated in
favor of [MQTT bindings](...)"). Ensure the final markdown link points to the
sibling MQTT bindings page in the same directory.
markdown/docs/reference/bindings/mqtt5.md-25-25 (1)

25-25: ⚠️ Potential issue | 🟡 Minor

Use a normal subheading level here.

Jumping from ## Server Binding Object to ##### Fixed Fields breaks the heading hierarchy. ### Fixed Fields is the appropriate level.

🧱 Suggested fix
-##### Fixed Fields
+### Fixed Fields
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/mqtt5.md` at line 25, The heading "#####
Fixed Fields" is using an incorrect level and breaks the document hierarchy
under "## Server Binding Object"; change the subheading text "##### Fixed
Fields" to "### Fixed Fields" so it fits directly under the existing Server
Binding Object section and restores proper heading nesting in markdown.
markdown/docs/reference/bindings/scripts.md-6-6 (1)

6-6: ⚠️ Potential issue | 🟡 Minor

Please tighten the copy here.

Capitalize “GitHub” and rephrase this to read naturally, e.g. “in the [.github] repository” and “changes to this directory should be made there.”

✏️ Suggested wording
-The entire `scripts` directory is centrally managed in [.github](https://github.com/asyncapi/.github/) repository. Any changes in this folder should be done in central repository.
+The entire `scripts` directory is centrally managed in the [`.github`](https://github.com/asyncapi/.github/) repository. Any changes to this directory should be made there.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/scripts.md` at line 6, Update the sentence
about the scripts directory to use proper capitalization and clearer phrasing:
change "The entire `scripts` directory is centrally managed in
[.github](https://github.com/asyncapi/.github/) repository. Any changes in this
folder should be done in central repository." to something like "The entire
`scripts` directory is centrally managed in the [`.github`] repository; changes
to this directory should be made there." Ensure "GitHub" is capitalized where
applicable and use the repository link around `.github`.
markdown/docs/reference/bindings/mqtt5.md-29-30 (1)

29-30: ⚠️ Potential issue | 🟡 Minor

Reference Object is linked with the wrong markdown syntax.

[Reference Object](referenceObject) creates a literal relative link to referenceObject, which is why the reference definition at Line 79 is unused. This should use the same reference-style form as Schema Object.

🔗 Suggested fix
-<a name="serverBindingObjectSessionExpiryInterval"></a>`sessionExpiryInterval` | [Schema Object][schemaObject] \| [Reference Object](referenceObject) \| integer | Session Expiry Interval in seconds or a Schema Object containing the definition of the interval.
+<a name="serverBindingObjectSessionExpiryInterval"></a>`sessionExpiryInterval` | [Schema Object][schemaObject] \| [Reference Object][referenceObject] \| integer | Session Expiry Interval in seconds or a Schema Object containing the definition of the interval.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/mqtt5.md` around lines 29 - 30, In the table
row containing `sessionExpiryInterval` and `bindingVersion`, replace the inline
link syntax `[Reference Object](referenceObject)` with the reference-style link
`[Reference Object][referenceObject]` so it uses the existing reference
definition (the same style used for `Schema Object`); locate the text around the
`sessionExpiryInterval` entry to make this change and keep the existing
`[referenceObject]:` definition unchanged.
config/edit-page-config.json-2-5 (1)

2-5: ⚠️ Potential issue | 🟡 Minor

This catch-all is too broad for website-owned pages under reference/bindings/.

generateEditLink() picks the first config entry whose value is included in post.slug, so putting this mapping first will also route reference/bindings/scripts to asyncapi/bindings. That conflicts with markdown/docs/reference/bindings/scripts.md, which says that content is maintained in .github. Please add explicit overrides before this entry, or narrow the match so those pages keep the correct edit target.

♻️ Example override
 [
+  {
+    "value": "reference/bindings/scripts",
+    "href": "https://github.com/asyncapi/.github/tree/master"
+  },
   {
     "value": "reference/bindings/",
     "href": "https://github.com/asyncapi/bindings/tree/master"
   },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/edit-page-config.json` around lines 2 - 5, The catch-all mapping with
value "reference/bindings/" in the edit-page-config.json is too broad and causes
generateEditLink() to match website-owned pages (e.g.,
reference/bindings/scripts) incorrectly; fix it by adding explicit, more
specific entries above the catch-all (for example "reference/bindings/scripts"
or any pages maintained in .github) or by narrowing the existing value (e.g.,
require a trailing file indicator or exact match) so generateEditLink() will hit
the specific override entries first and only fall back to the broad
"reference/bindings/" mapping for true upstream files.
markdown/docs/reference/bindings/http.md-31-33 (1)

31-33: ⚠️ Potential issue | 🟡 Minor

Step the subheadings down by one level.

Both ##### Fixed Fields headings jump from ## to #####, which is why markdownlint is raising MD001 here. ### would preserve the outline without changing the content.

Also applies to: 72-74

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/http.md` around lines 31 - 33, The "Fixed
Fields" subheadings jump from level "##" to "#####", triggering markdownlint
MD001; update both occurrences of the "##### Fixed Fields" headings (the one
under "## Operation Binding Object" and the later occurrence around lines shown)
to use "### Fixed Fields" so the document outline increments by one level
consistently and satisfies markdownlint.
markdown/docs/reference/bindings/websockets.md-28-32 (1)

28-32: ⚠️ Potential issue | 🟡 Minor

Drop Fixed Fields to ### here.

This section jumps from ## Channel Binding Object straight to ##### Fixed Fields, which is why markdownlint is flagging the heading hierarchy.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/websockets.md` around lines 28 - 32, Change
the heading level for "Fixed Fields" from ##### to ### so the hierarchy flows
correctly under the "Channel Binding Object" section; update the "Fixed Fields"
heading text to use three hashes (### Fixed Fields) in the markdown file where
the "Channel Binding Object" and "Fixed Fields" headings appear to satisfy
markdownlint and preserve correct document structure.
markdown/docs/reference/bindings/kafka.md-125-126 (1)

125-126: ⚠️ Potential issue | 🟡 Minor

These referenceObject links are using the wrong markdown syntax.

[Reference Object](referenceObject) does not resolve to the reference definition declared at the bottom, so the generated docs end up with a broken link and an unused [referenceObject] definition.

Also applies to: 161-161, 206-207

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/kafka.md` around lines 125 - 126, The
markdown links for the Reference Object are using inline-link syntax
"(referenceObject)" which doesn't use the reference-style link defined at the
bottom; update each occurrence to use the reference-link form by replacing
"(referenceObject)" with "[referenceObject]" for the binding docs (e.g., the
`groupId` and `clientId` operationBinding lines and the other occurrences
mentioned) so the `[referenceObject]` reference definition resolves correctly.
markdown/docs/reference/bindings/sqs.md-83-90 (1)

83-90: ⚠️ Potential issue | 🟡 Minor

The policy example text still refers to SNS permissions.

This is the SQS binding, but the action row says “The SNS permission being allowed or denied”. That should describe SQS permissions instead; otherwise the table conflicts with the examples that use Sqs:SendMessage and Sqs:ReceiveMessage.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/sqs.md` around lines 83 - 90, The table row
for the `action` field (anchor/channelBindingPolicyStatementObjectAction)
incorrectly references SNS; update its description to reference SQS permissions
instead (e.g., "The SQS permission being allowed or denied e.g.
sqs:SendMessage") so it matches the SQS binding and the examples that use
Sqs:SendMessage and Sqs:ReceiveMessage.
markdown/docs/reference/bindings/sqs.md-54-54 (1)

54-54: ⚠️ Potential issue | 🟡 Minor

Replace the placeholder links with real targets or plain text.

These []() links render as empty destinations, so the generated docs expose broken links in three places.

Also applies to: 113-113, 183-183

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/sqs.md` at line 54, Replace the empty
markdown links `[]()` in this file (they appear in the `name` table row with `<a
name="queueObjectName"></a>` and the two other similar rows) with actual targets
or plain text: locate the three occurrences of `[]()` and either point them to
the correct internal anchors/URLs (e.g., the SNS Operation Binding Object
doc/anchor) or remove the link syntax and use the link text as plain text,
ensuring the table cells and any anchor tags like `queueObjectName` remain
correct and the links are not left as empty destinations.
markdown/docs/reference/bindings/kafka.md-23-23 (1)

23-23: ⚠️ Potential issue | 🟡 Minor

Normalize the subheading levels in this page.

Each ##### ... heading jumps two levels from the surrounding ## sections, which is why markdownlint is reporting MD001 repeatedly on this file.

Also applies to: 50-50, 100-100, 121-121, 157-157

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/kafka.md` at line 23, The subheading level
for "Fixed Fields" (and any other headings currently written with '#####') is
too deep relative to the surrounding '##' sections; change those '#####'
headings to '###' so they are a single level below the surrounding '##' sections
(apply this replacement for every occurrence of '#####' subheadings on the page,
e.g., the "Fixed Fields" heading and the other instances noted in the review).
markdown/docs/reference/bindings/kafka.md-25-29 (1)

25-29: ⚠️ Potential issue | 🟡 Minor

Complete the last row of the server table.

The header defines five columns, but the bindingVersion row only provides four cells, so the Constraints column is missing and markdownlint raises MD056.

Suggested fix
-<a name="serverBindingObjectBindingVersion"></a>`bindingVersion` | string | The version of this binding. | OPTIONAL [`latest`]
+<a name="serverBindingObjectBindingVersion"></a>`bindingVersion` | string | The version of this binding. | OPTIONAL [`latest`] | -
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/kafka.md` around lines 25 - 29, The table
row for `bindingVersion` is missing the fifth (Constraints) cell causing MD056;
edit the `bindingVersion` row in the markdown so it has five pipe-separated
cells by adding the missing Constraints entry (e.g., "-" or the appropriate
constraint text) after the existing fourth cell so the row matches the table
header; locate the row with the symbol `bindingVersion` to update it.
markdown/docs/reference/bindings/nats.md-30-33 (1)

30-33: ⚠️ Potential issue | 🟡 Minor

Normalize the table pipe style here.

The header uses the repo’s no-leading/no-trailing-pipe style, but the body rows switch to full leading/trailing pipes. That will keep firing MD055 on this table.

Suggested fix
 Field Name | Type | Description
 ---|:---:|---
-| <a name="operationBindingObjectQueue"></a>`queue` | string | Defines the name of the queue to use. It MUST NOT exceed 255 characters. |
-| <a name="operationBindingObjectBindingVersion"></a>`bindingVersion` | string | The version of this binding. If omitted, "latest" MUST be assumed. |
+<a name="operationBindingObjectQueue"></a>`queue` | string | Defines the name of the queue to use. It MUST NOT exceed 255 characters.
+<a name="operationBindingObjectBindingVersion"></a>`bindingVersion` | string | The version of this binding. If omitted, "latest" MUST be assumed.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/nats.md` around lines 30 - 33, The table
uses header style without leading/trailing pipes but the body rows for `queue`
and `bindingVersion` include full leading/trailing pipes; remove the leading and
trailing pipe characters from those body rows so they match the header style
(i.e., change rows containing `<a
name="operationBindingObjectQueue"></a>\`queue\`` and `<a
name="operationBindingObjectBindingVersion"></a>\`bindingVersion\`` to the
no-leading/no-trailing-pipe format) to stop MD055 from firing.
markdown/docs/reference/bindings/websockets.md-36-39 (1)

36-39: ⚠️ Potential issue | 🟡 Minor

Use the declared reference link for referenceObject.

Both rows use [Reference Object](referenceObject), which points to a literal relative URL instead of the [referenceObject]: ... definition at the bottom. That leaves the intended spec link broken.

Also applies to: 57-58

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/websockets.md` around lines 36 - 39, The
markdown uses inline links like "[Reference Object](referenceObject)" which
treat "referenceObject" as a literal URL; change them to reference-style links
"[Reference Object][referenceObject]" so they resolve to the `[referenceObject]:
...` definition at the bottom; update occurrences in the rows for
operationBindingObjectQuery and operationBindingObjectHeaders (and the other
reported rows around 57-58) to use the reference-style link.
markdown/docs/reference/bindings/http.md-38-39 (1)

38-39: ⚠️ Potential issue | 🟡 Minor

Use the defined reference-style link for referenceObject.

[Reference Object](referenceObject) renders as a literal relative URL, so the actual [referenceObject]: ... definition at the bottom stays unused. That breaks the spec link in both tables.

Suggested fix
-<a name="operationBindingObjectQuery"></a>`query` | [Schema Object][schemaObject] \| [Reference Object](referenceObject) | A Schema object containing the definitions for each query parameter. This schema MUST be of type `object` and have a `properties` key.
+<a name="operationBindingObjectQuery"></a>`query` | [Schema Object][schemaObject] \| [Reference Object][referenceObject] | A Schema object containing the definitions for each query parameter. This schema MUST be of type `object` and have a `properties` key.
-<a name="messageBindingObjectHeaders"></a>`headers` | [Schema Object][schemaObject] \| [Reference Object](referenceObject) | A Schema object containing the definitions for HTTP-specific headers. This schema MUST be of type `object` and have a `properties` key.
+<a name="messageBindingObjectHeaders"></a>`headers` | [Schema Object][schemaObject] \| [Reference Object][referenceObject] | A Schema object containing the definitions for HTTP-specific headers. This schema MUST be of type `object` and have a `properties` key.

Also applies to: 78-80, 102-103

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/http.md` around lines 38 - 39, The markdown
uses inline link syntax like `[Reference Object](referenceObject)` which treats
"referenceObject" as a literal relative URL; replace those with the defined
reference-style link `[Reference Object][referenceObject]` wherever they occur
(e.g., in the lines with anchors `operationBindingObjectQuery`,
`operationBindingObjectBindingVersion` and the other occurrences around lines
referenced in the review). Ensure the reference label ` [referenceObject]: ...`
at the bottom matches the label name `referenceObject` so the link resolves
correctly.
markdown/docs/reference/bindings/googlepubsub.md-118-120 (1)

118-120: ⚠️ Potential issue | 🟡 Minor

Fix the malformed Schema link.

The markdown on Line 119 is nested incorrectly: [Schema]([Schema](...)). That will render as a broken link instead of a single reference.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/googlepubsub.md` around lines 118 - 120, Fix
the malformed link in the "Schema Definition Object" paragraph: replace the
nested
`[Schema]([Schema](https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.schemas#Schema))`
with a single valid markdown link such as
`[Schema](https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.schemas#Schema)`
so the "Schema" reference renders correctly in the "Schema Definition Object"
section.
markdown/docs/reference/bindings/ros2.md-28-28 (1)

28-28: ⚠️ Potential issue | 🟡 Minor

Avoid skipping heading levels.

These ###### Fixed Fields headings jump over intermediate levels and trigger markdownlint (MD001). Using ### here would keep the document outline valid.

Also applies to: 62-62

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/ros2.md` at line 28, Replace the "######
Fixed Fields" headings with a level-3 heading (e.g., "### Fixed Fields") so the
document does not skip heading levels and satisfies markdownlint MD001; update
both occurrences of the "###### Fixed Fields" heading (the one currently labeled
"Fixed Fields") to "### Fixed Fields" to restore a valid outline.
markdown/docs/reference/bindings/amqp.md-32-32 (1)

32-32: ⚠️ Potential issue | 🟡 Minor

Use the next heading level here.

These ##### Fixed Fields headings jump from ## straight to #####, which trips markdownlint (MD001) and makes the section structure inconsistent. Switching them to ### keeps the page hierarchy valid.

Also applies to: 93-93, 138-138

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/amqp.md` at line 32, Update the three "Fixed
Fields" headings that are currently written as "##### Fixed Fields" to use a
third-level heading "### Fixed Fields" so the document hierarchy remains
consistent with the preceding "##" sections and satisfies markdownlint MD001;
locate the occurrences of the literal heading "Fixed Fields" and replace the
five-hash variant with "###" in each place (including the other two occurrences
noted).
markdown/docs/reference/bindings/mqtt.md-25-25 (1)

25-25: ⚠️ Potential issue | 🟡 Minor

Avoid the heading-level jumps.

These ##### Fixed Fields headings skip from ## to #####, which will keep tripping markdownlint (MD001) across the page.

Also applies to: 89-89, 141-141

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/mqtt.md` at line 25, The documentation uses
a heading jump from level "##" to "##### Fixed Fields", triggering markdownlint
MD001; locate the headings with the text "Fixed Fields" (the instances currently
marked as "##### Fixed Fields") and change them to the next appropriate level
(e.g., "### Fixed Fields") so they follow the preceding "##" headings
consistently; apply the same change to all occurrences of that heading
(including the two other instances noted).
markdown/docs/reference/bindings/pulsar.md-20-20 (1)

20-20: ⚠️ Potential issue | 🟡 Minor

Keep the heading levels sequential.

These ##### ... headings skip over intermediate levels and trigger markdownlint (MD001). Dropping them to the next valid level will keep the page outline consistent.

Also applies to: 42-42, 64-64

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/pulsar.md` at line 20, The headings use five
hashes ("##### Fixed Fields" and the other occurrences mentioned) which skip
markdown levels and trigger markdownlint MD001; change each of those headings to
the next valid sequential level (e.g., reduce "#####" to "####" or whatever
keeps the page's heading hierarchy consistent) so the outline is sequential and
markdownlint passes.
markdown/docs/reference/bindings/amqp.md-95-106 (1)

95-106: ⚠️ Potential issue | 🟡 Minor

Keep the operation action names consistent.

Line 105 uses Subscribe, while the rest of this table and the examples use receive/send. That inconsistency makes the ack row read like a different action model than the rest of the page.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/amqp.md` around lines 95 - 106, The table
uses an inconsistent action name for the `ack` field: change the Applies To
Action value for the `ack` operation (anchor/identifier
`operationBindingObjectAck` / field name `ack`) from `Subscribe` to `receive` so
it matches the rest of the table and examples; update the `ack` row to list
`receive` (or `receive`, `send` if intentionally applicable) and ensure any
examples or references elsewhere use the same `receive` action name.
markdown/docs/reference/bindings/ibmmq.md-52-52 (1)

52-52: ⚠️ Potential issue | 🟡 Minor

Use sequential heading levels in these example sections.

These ##### Example ... headings jump over intermediate levels and trigger markdownlint (MD001). Normalizing them will also make the long page easier to scan.

Also applies to: 74-74, 92-92, 158-158, 228-228, 273-273

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/ibmmq.md` at line 52, The example headings
currently use non-sequential levels (e.g., "##### Example of two possible MQ
servers defined using ibmmq url syntax"), which triggers markdownlint MD001;
update these headings to follow sequential heading levels (use the appropriate
higher-level headings such as "###" or "####" so they don't skip intermediate
levels) and apply the same change to the other "Example ..." headings in this
file (the ones around the other example sections) so all example sections use
consistent, non-skipping heading levels.
markdown/docs/reference/bindings/anypointmq.md-36-38 (1)

36-38: ⚠️ Potential issue | 🟡 Minor

Clarify whether host includes the scheme.

Line 36 says this field is the host part of the URL, but the examples include https://.... The complete example later in the file uses a bare hostname, so the docs currently describe two different shapes for the same field.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/anypointmq.md` around lines 36 - 38, The
documentation is inconsistent about whether `host` includes the URL scheme;
update the descriptions for `host`, `pathname`, and `protocolVersion` so they
are consistent: state that `host` MUST be the host name (no scheme, e.g.,
`mq-us-east-1.anypoint.mulesoft.com`), `pathname` MUST be the path portion
(e.g., `/api`) excluding the version, and `protocolVersion` is the optional
major version (e.g., `v1`) appended separately; adjust the examples under
`host`, `pathname`, and `protocolVersion` to match this shape and remove
examples that include `https://` or full URLs so `host` examples and the later
complete example use the same bare hostname form (refer to `host`, `pathname`,
and `protocolVersion` identifiers in the diff).
markdown/docs/reference/bindings/ibmmq.md-44-44 (1)

44-44: ⚠️ Potential issue | 🟡 Minor

Correct the RFC number in this sentence.

This line says RFC2936, but the link target is RFC3986 section 2.2 and the earlier sentence also cites RFC3986. Keeping the wrong RFC number here makes the URI encoding guidance self-contradictory.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/ibmmq.md` at line 44, The sentence in the
ibmmq binding docs incorrectly references "RFC2936" while linking to RFC3986;
update the text to reference RFC3986 (e.g., change "RFC2936" to "RFC3986") so
the sentence and the provided link both point to the same RFC (see the sentence
containing "Path components that contain characters reserved by RFC2936 such as
`/` MUST be percent encoded..." in markdown/docs/reference/bindings/ibmmq.md).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@markdown/docs/reference/bindings/2.x.x.md`:
- Around line 271-301: The example under the publish operation (operationId:
receiveMessage) incorrectly omits the required consumers array: wrap the HTTP
consumer entries under a consumers key so the sns binding contains consumers: -
protocol: http ... (i.e., restore the consumers wrapper that holds the list of
HTTP consumer objects), updating the sns -> consumers -> - protocol: http block
(including endpoint, filterPolicy, deliveryPolicy, redrivePolicy) to match the
documented Operation Binding Object shape.
- Around line 169-185: Change the example to match the schema: replace the
incorrect top-level "binding" with "bindings" (e.g., "bindings: { sns: {} }")
and move the "consumers" array from under "subscribe" into the "publish"
operation (since "consumers" is a Publish field for SNS→SQS producers); keep the
consumer entries (protocol, endpoint.name, rawMessageDelivery) under
"bindings.sns.consumers" within the "publish" block and keep "subscribe" only
for subscribe-related fields.

In `@markdown/docs/reference/bindings/3.0.0.md`:
- Around line 181-187: The example YAML places the sns.consumers block under a
send operation, which contradicts the schema/table that says consumers apply to
receive; move the consumers section so it is under the receive operation (or
change the surrounding operation to receive) and ensure keys like binding, sns,
consumers, protocol, endpoint, and rawMessageDelivery are preserved and valid
per the field applicability table so the example matches the schema on the same
page.
- Around line 173-183: The examples use the singular key "binding" but should
use the plural "bindings" to match the rest of the document; update the snippet
keys from "binding:" to "bindings:" in both occurrences (the top-level example
where "binding : sns: {}" appears and the operations example where "binding:
sns: consumers" appears) so the examples are consistent and copyable with the
documented binding objects.
- Around line 303-323: The snippet under the sns binding is missing the required
consumers array wrapper: wrap the existing list item (the block starting with "-
protocol: http" that contains endpoint, filterPolicy, deliveryPolicy,
redrivePolicy) inside a consumers: array under sns so the structure becomes
"sns: consumers: - protocol: http ..." to match the Operation Binding Object
schema (refer to the sns, protocol, endpoint, consumers symbols in the snippet).
- Around line 177-179: Multiple YAML samples declare the same key twice (e.g.,
the mapping containing operationId: sendMessage has two description entries);
remove the duplicate description entries and consolidate their text into a
single description field for each mapping so only one description key remains
(do the same for the other duplicated mappings referenced around lines 203-205,
228-230, 270-272, and 299-301). Locate each offending mapping by finding the
operationId or the nearby keys (e.g., operationId: sendMessage) and keep one
description value (merging content if necessary) while deleting the redundant
description line.

In `@markdown/docs/reference/bindings/anypointmq.md`:
- Around line 65-87: The YAML examples reuse the same mapping key "userSignup"
under "channels", causing the second to overwrite the first; change the channel
keys so they are unique (e.g., "userSignup.receive" and "userSignup.send" or
"userSignupIncoming" and "userSignupOutgoing") and update any internal
references accordingly; apply the same uniqueness fix to the other duplicated
example range (lines referenced in the comment) and ensure the examples still
demonstrate the absence vs. presence of the "bindings.anypointmq" object.

In `@markdown/docs/reference/bindings/googlepubsub.md`:
- Around line 159-164: The proto example under the Message definition uses an
unsupported `required` label for proto3; update the Message field declaration in
the schema (the `message Message` block) to remove `required` and use either
`string message = 1;` (implicit optional) or `optional string message = 1;` if
presence tracking is required, ensuring the top line remains `syntax =
"proto3";`.

In `@markdown/docs/reference/bindings/jms.md`:
- Around line 135-148: The example places properties as a sibling of headers and
omits headers' type; update the jms binding example so headers is a Schema
Object by adding "type: object" under jms.headers, move "required" and
"properties" inside jms.headers, and ensure JMSMessageID and JMSReplyTo remain
defined under that properties block (keeping their name, description and type)
so the schema correctly nests JMSMessageID/JMSReplyTo under jms.headers.

In `@markdown/docs/reference/bindings/ros2.md`:
- Around line 109-119: The example shows a ROS 2 publisher block where
bindings.ros2.role is set to "publisher" but the top-level action is incorrectly
"receive"; change the top-level "action: receive" to "action: send" so the
action matches the publisher role (update the YAML block containing Pose,
action, channel and bindings.ros2.role to use action: send).
- Around line 215-241: The YAML uses $ref paths like
"#/components/messages/std_msgs/header/payload" but there is no
components.messages map; add a "messages" mapping under the existing
"components" and place (or import) the referenced message schemas there (e.g.,
std_msgs/header/payload, uint32/payload, sensor_msgs/PointField/payload,
bool/payload, uint8/payload, string/payload), or update the $ref targets to
match where those schemas actually live; ensure CompressedPointCloud2's
properties continue to reference "#/components/messages/..." so the refs
resolve.
- Around line 90-107: The YAML example for the receiveCmdVel binding has
qosPolicies incorrectly nested under node; move qosPolicies to be a sibling of
node under the ros2 binding so that receiveCmdVel → bindings → ros2 contains
both node: /turtlesim and qosPolicies: { ... } at the same indentation level;
update the example around the receiveCmdVel block to make qosPolicies align with
node (not indented under node).

In `@markdown/docs/reference/bindings/solace.md`:
- Around line 102-105: The example's $ref targets are incorrect: the operation
references '#/channels/address' and '#/channels/address/messages/personEvent'
but the actual declared channel name is 'person', so both refs fail; update the
$ref values under the channel and messages keys to point to the existing channel
and message definitions (e.g., replace '#/channels/address' with
'#/channels/person' and '#/channels/address/messages/personEvent' with
'#/channels/person/messages/personEvent' or otherwise match the actual channel
name used in the spec), and make the same corrections in the second example
range that mirrors this snippet.
- Around line 146-183: The example claims to show a wildcard subscriber but
still lists two specific subscriptions; replace the two topicSubscriptions under
one of the queue destinations (e.g., CreatedHREvents or UpdatedHREvents) with a
single wildcard pattern that actually matches all topics under person/ (e.g.,
use a single entry like person/* or the appropriate multi-level wildcard your
binding uses such as person/>), and update the surrounding text to describe that
single wildcard subscription so the example demonstrates the intended behavior;
locate the topicSubscriptions array under the solace binding for the queue
objects (queue.name / topicSubscriptions) to make this change.

In `@markdown/docs/reference/bindings/sqs.md`:
- Around line 72-76: The table currently lists the policy field as `Statements`
which conflicts with examples using `statements`; update the field name to
`statements` (lowercase) in the table and change the anchor name `<a
name="channelBindingPolicyObjectPolicyStatements"></a>` to match the lowercase
form (e.g., `channelBindingPolicyObjectPolicystatements`) and ensure any
internal links or references to `Statements` in this document point to the new
lowercase anchor and field name.
- Around line 214-226: The YAML example has incorrect indentation: move the
consumer's "name: user-signedup-queue" to be nested under "endpoint:" and move
"name: user-signedup-queue-dlq" to be nested under "deadLetterQueue:" so the
"consumers" entry matches the expected object shape (symbols to adjust: sns ->
consumers -> protocol: sqs -> endpoint:, name: user-signedup-queue; and
redrivePolicy -> deadLetterQueue:, name: user-signedup-queue-dlq).

---

Minor comments:
In `@config/edit-page-config.json`:
- Around line 2-5: The catch-all mapping with value "reference/bindings/" in the
edit-page-config.json is too broad and causes generateEditLink() to match
website-owned pages (e.g., reference/bindings/scripts) incorrectly; fix it by
adding explicit, more specific entries above the catch-all (for example
"reference/bindings/scripts" or any pages maintained in .github) or by narrowing
the existing value (e.g., require a trailing file indicator or exact match) so
generateEditLink() will hit the specific override entries first and only fall
back to the broad "reference/bindings/" mapping for true upstream files.

In `@markdown/docs/reference/bindings/amqp.md`:
- Line 32: Update the three "Fixed Fields" headings that are currently written
as "##### Fixed Fields" to use a third-level heading "### Fixed Fields" so the
document hierarchy remains consistent with the preceding "##" sections and
satisfies markdownlint MD001; locate the occurrences of the literal heading
"Fixed Fields" and replace the five-hash variant with "###" in each place
(including the other two occurrences noted).
- Around line 95-106: The table uses an inconsistent action name for the `ack`
field: change the Applies To Action value for the `ack` operation
(anchor/identifier `operationBindingObjectAck` / field name `ack`) from
`Subscribe` to `receive` so it matches the rest of the table and examples;
update the `ack` row to list `receive` (or `receive`, `send` if intentionally
applicable) and ensure any examples or references elsewhere use the same
`receive` action name.

In `@markdown/docs/reference/bindings/anypointmq.md`:
- Around line 36-38: The documentation is inconsistent about whether `host`
includes the URL scheme; update the descriptions for `host`, `pathname`, and
`protocolVersion` so they are consistent: state that `host` MUST be the host
name (no scheme, e.g., `mq-us-east-1.anypoint.mulesoft.com`), `pathname` MUST be
the path portion (e.g., `/api`) excluding the version, and `protocolVersion` is
the optional major version (e.g., `v1`) appended separately; adjust the examples
under `host`, `pathname`, and `protocolVersion` to match this shape and remove
examples that include `https://` or full URLs so `host` examples and the later
complete example use the same bare hostname form (refer to `host`, `pathname`,
and `protocolVersion` identifiers in the diff).

In `@markdown/docs/reference/bindings/googlepubsub.md`:
- Around line 118-120: Fix the malformed link in the "Schema Definition Object"
paragraph: replace the nested
`[Schema]([Schema](https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.schemas#Schema))`
with a single valid markdown link such as
`[Schema](https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.schemas#Schema)`
so the "Schema" reference renders correctly in the "Schema Definition Object"
section.

In `@markdown/docs/reference/bindings/http.md`:
- Around line 31-33: The "Fixed Fields" subheadings jump from level "##" to
"#####", triggering markdownlint MD001; update both occurrences of the "#####
Fixed Fields" headings (the one under "## Operation Binding Object" and the
later occurrence around lines shown) to use "### Fixed Fields" so the document
outline increments by one level consistently and satisfies markdownlint.
- Around line 38-39: The markdown uses inline link syntax like `[Reference
Object](referenceObject)` which treats "referenceObject" as a literal relative
URL; replace those with the defined reference-style link `[Reference
Object][referenceObject]` wherever they occur (e.g., in the lines with anchors
`operationBindingObjectQuery`, `operationBindingObjectBindingVersion` and the
other occurrences around lines referenced in the review). Ensure the reference
label ` [referenceObject]: ...` at the bottom matches the label name
`referenceObject` so the link resolves correctly.

In `@markdown/docs/reference/bindings/ibmmq.md`:
- Line 52: The example headings currently use non-sequential levels (e.g.,
"##### Example of two possible MQ servers defined using ibmmq url syntax"),
which triggers markdownlint MD001; update these headings to follow sequential
heading levels (use the appropriate higher-level headings such as "###" or
"####" so they don't skip intermediate levels) and apply the same change to the
other "Example ..." headings in this file (the ones around the other example
sections) so all example sections use consistent, non-skipping heading levels.
- Line 44: The sentence in the ibmmq binding docs incorrectly references
"RFC2936" while linking to RFC3986; update the text to reference RFC3986 (e.g.,
change "RFC2936" to "RFC3986") so the sentence and the provided link both point
to the same RFC (see the sentence containing "Path components that contain
characters reserved by RFC2936 such as `/` MUST be percent encoded..." in
markdown/docs/reference/bindings/ibmmq.md).

In `@markdown/docs/reference/bindings/kafka.md`:
- Around line 125-126: The markdown links for the Reference Object are using
inline-link syntax "(referenceObject)" which doesn't use the reference-style
link defined at the bottom; update each occurrence to use the reference-link
form by replacing "(referenceObject)" with "[referenceObject]" for the binding
docs (e.g., the `groupId` and `clientId` operationBinding lines and the other
occurrences mentioned) so the `[referenceObject]` reference definition resolves
correctly.
- Line 23: The subheading level for "Fixed Fields" (and any other headings
currently written with '#####') is too deep relative to the surrounding '##'
sections; change those '#####' headings to '###' so they are a single level
below the surrounding '##' sections (apply this replacement for every occurrence
of '#####' subheadings on the page, e.g., the "Fixed Fields" heading and the
other instances noted in the review).
- Around line 25-29: The table row for `bindingVersion` is missing the fifth
(Constraints) cell causing MD056; edit the `bindingVersion` row in the markdown
so it has five pipe-separated cells by adding the missing Constraints entry
(e.g., "-" or the appropriate constraint text) after the existing fourth cell so
the row matches the table header; locate the row with the symbol
`bindingVersion` to update it.

In `@markdown/docs/reference/bindings/mqtt.md`:
- Line 25: The documentation uses a heading jump from level "##" to "##### Fixed
Fields", triggering markdownlint MD001; locate the headings with the text "Fixed
Fields" (the instances currently marked as "##### Fixed Fields") and change them
to the next appropriate level (e.g., "### Fixed Fields") so they follow the
preceding "##" headings consistently; apply the same change to all occurrences
of that heading (including the two other instances noted).

In `@markdown/docs/reference/bindings/mqtt5.md`:
- Line 10: Replace the incorrect link target "../mqtt/README.md" in the
deprecation notice line so it points to the local MQTT bindings doc in the same
bindings section (e.g. change the link target to "./mqtt/README.md" or
"mqtt/README.md" in the heading text "# **Deprecation Warning**: MQTT version 5
specific bindings are deprecated in favor of [MQTT bindings](...)"). Ensure the
final markdown link points to the sibling MQTT bindings page in the same
directory.
- Line 25: The heading "##### Fixed Fields" is using an incorrect level and
breaks the document hierarchy under "## Server Binding Object"; change the
subheading text "##### Fixed Fields" to "### Fixed Fields" so it fits directly
under the existing Server Binding Object section and restores proper heading
nesting in markdown.
- Around line 29-30: In the table row containing `sessionExpiryInterval` and
`bindingVersion`, replace the inline link syntax `[Reference
Object](referenceObject)` with the reference-style link `[Reference
Object][referenceObject]` so it uses the existing reference definition (the same
style used for `Schema Object`); locate the text around the
`sessionExpiryInterval` entry to make this change and keep the existing
`[referenceObject]:` definition unchanged.

In `@markdown/docs/reference/bindings/nats.md`:
- Around line 30-33: The table uses header style without leading/trailing pipes
but the body rows for `queue` and `bindingVersion` include full leading/trailing
pipes; remove the leading and trailing pipe characters from those body rows so
they match the header style (i.e., change rows containing `<a
name="operationBindingObjectQueue"></a>\`queue\`` and `<a
name="operationBindingObjectBindingVersion"></a>\`bindingVersion\`` to the
no-leading/no-trailing-pipe format) to stop MD055 from firing.

In `@markdown/docs/reference/bindings/pulsar.md`:
- Line 20: The headings use five hashes ("##### Fixed Fields" and the other
occurrences mentioned) which skip markdown levels and trigger markdownlint
MD001; change each of those headings to the next valid sequential level (e.g.,
reduce "#####" to "####" or whatever keeps the page's heading hierarchy
consistent) so the outline is sequential and markdownlint passes.

In `@markdown/docs/reference/bindings/ros2.md`:
- Line 28: Replace the "###### Fixed Fields" headings with a level-3 heading
(e.g., "### Fixed Fields") so the document does not skip heading levels and
satisfies markdownlint MD001; update both occurrences of the "###### Fixed
Fields" heading (the one currently labeled "Fixed Fields") to "### Fixed Fields"
to restore a valid outline.

In `@markdown/docs/reference/bindings/scripts.md`:
- Line 6: Update the sentence about the scripts directory to use proper
capitalization and clearer phrasing: change "The entire `scripts` directory is
centrally managed in [.github](https://github.com/asyncapi/.github/) repository.
Any changes in this folder should be done in central repository." to something
like "The entire `scripts` directory is centrally managed in the [`.github`]
repository; changes to this directory should be made there." Ensure "GitHub" is
capitalized where applicable and use the repository link around `.github`.

In `@markdown/docs/reference/bindings/sqs.md`:
- Around line 83-90: The table row for the `action` field
(anchor/channelBindingPolicyStatementObjectAction) incorrectly references SNS;
update its description to reference SQS permissions instead (e.g., "The SQS
permission being allowed or denied e.g. sqs:SendMessage") so it matches the SQS
binding and the examples that use Sqs:SendMessage and Sqs:ReceiveMessage.
- Line 54: Replace the empty markdown links `[]()` in this file (they appear in
the `name` table row with `<a name="queueObjectName"></a>` and the two other
similar rows) with actual targets or plain text: locate the three occurrences of
`[]()` and either point them to the correct internal anchors/URLs (e.g., the SNS
Operation Binding Object doc/anchor) or remove the link syntax and use the link
text as plain text, ensuring the table cells and any anchor tags like
`queueObjectName` remain correct and the links are not left as empty
destinations.

In `@markdown/docs/reference/bindings/websockets.md`:
- Around line 28-32: Change the heading level for "Fixed Fields" from ##### to
### so the hierarchy flows correctly under the "Channel Binding Object" section;
update the "Fixed Fields" heading text to use three hashes (### Fixed Fields) in
the markdown file where the "Channel Binding Object" and "Fixed Fields" headings
appear to satisfy markdownlint and preserve correct document structure.
- Around line 36-39: The markdown uses inline links like "[Reference
Object](referenceObject)" which treat "referenceObject" as a literal URL; change
them to reference-style links "[Reference Object][referenceObject]" so they
resolve to the `[referenceObject]: ...` definition at the bottom; update
occurrences in the rows for operationBindingObjectQuery and
operationBindingObjectHeaders (and the other reported rows around 57-58) to use
the reference-style link.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2f2ef37c-678c-4ea7-9efd-7d02118708b2

📥 Commits

Reviewing files that changed from the base of the PR and between 184ad8d and 755cec1.

⛔ Files ignored due to path filters (3)
  • public/img/docs/SNS-HTTP.png is excluded by !**/*.png
  • public/img/docs/SNS-SQS-Pub-Sub.png is excluded by !**/*.png
  • public/img/docs/SQS-Point-To-Point.png is excluded by !**/*.png
📒 Files selected for processing (24)
  • config/edit-page-config.json
  • markdown/docs/reference/bindings/2.x.x.md
  • markdown/docs/reference/bindings/3.0.0.md
  • markdown/docs/reference/bindings/_section.md
  • markdown/docs/reference/bindings/amqp.md
  • markdown/docs/reference/bindings/amqp1.md
  • markdown/docs/reference/bindings/anypointmq.md
  • markdown/docs/reference/bindings/googlepubsub.md
  • markdown/docs/reference/bindings/http.md
  • markdown/docs/reference/bindings/ibmmq.md
  • markdown/docs/reference/bindings/jms.md
  • markdown/docs/reference/bindings/kafka.md
  • markdown/docs/reference/bindings/mercure.md
  • markdown/docs/reference/bindings/mqtt.md
  • markdown/docs/reference/bindings/mqtt5.md
  • markdown/docs/reference/bindings/nats.md
  • markdown/docs/reference/bindings/pulsar.md
  • markdown/docs/reference/bindings/redis.md
  • markdown/docs/reference/bindings/ros2.md
  • markdown/docs/reference/bindings/scripts.md
  • markdown/docs/reference/bindings/solace.md
  • markdown/docs/reference/bindings/sqs.md
  • markdown/docs/reference/bindings/stomp.md
  • markdown/docs/reference/bindings/websockets.md

Comment on lines +169 to +185
```yaml
channels:
user-signedup:
description: A user has signed up for our service
binding :
sns: {} # Indicates that the channel is an SNS Topic
subscribe:
operationId: sendMessage
description: send messages to the topic
bindings:
sns:
consumers:
- protocol: sqs
endpoint:
name: myQueue
rawMessageDelivery: false
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Fix the SNS→SQS producer snippet to match the schema above.

This example uses binding instead of bindings, and it places consumers under subscribe even though the field table marks consumers as a Publish field. As written, the snippet contradicts the object definition immediately above it.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/2.x.x.md` around lines 169 - 185, Change the
example to match the schema: replace the incorrect top-level "binding" with
"bindings" (e.g., "bindings: { sns: {} }") and move the "consumers" array from
under "subscribe" into the "publish" operation (since "consumers" is a Publish
field for SNS→SQS producers); keep the consumer entries (protocol,
endpoint.name, rawMessageDelivery) under "bindings.sns.consumers" within the
"publish" block and keep "subscribe" only for subscribe-related fields.

Comment on lines +271 to +301
```yaml
channels:
user-signedup:
description: A user has signed up for our service
bindings:
sns: {} # Indicates that the channel is an SNS Topic, but assumes defined by producer
publish:
operationId: receiveMessage
description: receive messages from the topic
bindings:
sns:
- protocol: http
endpoint:
url: http://login.my.com/user/new
filterPolicy:
reason:
anything-but: password-reset
filterPolicyScope: MessageBody
deliveryPolicy:
minDelayTarget: 1
maxDelayTarget: 120
numRetries: 30
numNoDelayRetries: 3
numMinDelayRetries: 2
numMaxDelayRetries: 25
backoffFunction: exponential
maxReceivesPerSecond: 20
redrivePolicy:
deadLetterQueue:
name: user-signedup-queue-dlq # refers toa queue defined in this file, but not show in this example
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Restore the consumers wrapper in the HTTP consumer example.

The schema defines consumers as the array field, but this snippet jumps straight from sns: to - protocol: http. Copying this example produces a shape that does not match the documented Operation Binding Object.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/2.x.x.md` around lines 271 - 301, The
example under the publish operation (operationId: receiveMessage) incorrectly
omits the required consumers array: wrap the HTTP consumer entries under a
consumers key so the sns binding contains consumers: - protocol: http ... (i.e.,
restore the consumers wrapper that holds the list of HTTP consumer objects),
updating the sns -> consumers -> - protocol: http block (including endpoint,
filterPolicy, deliveryPolicy, redrivePolicy) to match the documented Operation
Binding Object shape.

Comment on lines +173 to +183
binding :
sns: {} # Indicates that the channel is an SNS Topic
operations:
userSignedUp:
description: A user has signed up for our service
operationId: sendMessage
description: send messages to the topic
action: send
binding:
sns:
consumers:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Use bindings, not binding, in these examples.

The rest of the page documents binding objects under bindings, but these snippets switch to the singular key. That makes the examples inconsistent and non-copyable as written.

Also applies to: 274-276

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/3.0.0.md` around lines 173 - 183, The
examples use the singular key "binding" but should use the plural "bindings" to
match the rest of the document; update the snippet keys from "binding:" to
"bindings:" in both occurrences (the top-level example where "binding : sns: {}"
appears and the operations example where "binding: sns: consumers" appears) so
the examples are consistent and copyable with the documented binding objects.

Comment on lines +177 to +179
description: A user has signed up for our service
operationId: sendMessage
description: send messages to the topic
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Remove the duplicate description keys from the YAML samples.

Each of these mappings declares description twice. In YAML, one value wins and the other is discarded, so the examples are ambiguous even before they are validated.

Also applies to: 203-205, 228-230, 270-272, 299-301

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/3.0.0.md` around lines 177 - 179, Multiple
YAML samples declare the same key twice (e.g., the mapping containing
operationId: sendMessage has two description entries); remove the duplicate
description entries and consolidate their text into a single description field
for each mapping so only one description key remains (do the same for the other
duplicated mappings referenced around lines 203-205, 228-230, 270-272, and
299-301). Locate each offending mapping by finding the operationId or the nearby
keys (e.g., operationId: sendMessage) and keep one description value (merging
content if necessary) while deleting the redundant description line.

Comment on lines +181 to +187
binding:
sns:
consumers:
- protocol: sqs
endpoint:
name: myQueue
rawMessageDelivery: false
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

This example contradicts the field applicability table.

The table above says consumers applies to receive, but this sample puts it under a send operation. Even if the prose is adjusted later, the example should match the schema on the same page.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/3.0.0.md` around lines 181 - 187, The
example YAML places the sns.consumers block under a send operation, which
contradicts the schema/table that says consumers apply to receive; move the
consumers section so it is under the receive operation (or change the
surrounding operation to receive) and ensure keys like binding, sns, consumers,
protocol, endpoint, and rawMessageDelivery are preserved and valid per the field
applicability table so the example matches the schema on the same page.

Comment on lines +215 to +241
components:
CompressedPointCloud2:
tags:
- name: msg
payload:
type: object
properties:
header:
$ref: "#/components/messages/std_msgs/header/payload"
height:
$ref: "#/components/messages/uint32/payload"
width:
$ref: "#/components/messages/uint32/payload"
fields:
$ref: "#/components/messages/sensor_msgs/PointField/payload"
is_bigendian:
$ref: "#/components/messages/bool/payload"
point_step:
$ref: "#/components/messages/uint32/payload"
row_step:
$ref: "#/components/messages/uint32/payload"
compressed_data:
$ref: "#/components/messages/uint8/payload"
is_dense:
$ref: "#/components/messages/bool/payload"
format:
$ref: "#/components/messages/string/payload"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Add the messages map under components.

The example references #/components/messages/..., but CompressedPointCloud2 is declared directly under components. As written, those $refs cannot resolve.

Suggested fix
 components:
-  CompressedPointCloud2:
-    tags:
-      - name: msg
-    payload:
-      type: object
-      properties:
-        header:
-          $ref: "#/components/messages/std_msgs/header/payload"
-        height:
-          $ref: "#/components/messages/uint32/payload"
-        width:
-          $ref: "#/components/messages/uint32/payload"
-        fields:
-          $ref: "#/components/messages/sensor_msgs/PointField/payload"
-        is_bigendian:
-          $ref: "#/components/messages/bool/payload"
-        point_step:
-          $ref: "#/components/messages/uint32/payload"
-        row_step:
-          $ref: "#/components/messages/uint32/payload"
-        compressed_data:
-          $ref: "#/components/messages/uint8/payload"
-        is_dense:
-          $ref: "#/components/messages/bool/payload"
-        format:
-          $ref: "#/components/messages/string/payload"
+  messages:
+    CompressedPointCloud2:
+      tags:
+        - name: msg
+      payload:
+        type: object
+        properties:
+          header:
+            $ref: "#/components/messages/std_msgs/header/payload"
+          height:
+            $ref: "#/components/messages/uint32/payload"
+          width:
+            $ref: "#/components/messages/uint32/payload"
+          fields:
+            $ref: "#/components/messages/sensor_msgs/PointField/payload"
+          is_bigendian:
+            $ref: "#/components/messages/bool/payload"
+          point_step:
+            $ref: "#/components/messages/uint32/payload"
+          row_step:
+            $ref: "#/components/messages/uint32/payload"
+          compressed_data:
+            $ref: "#/components/messages/uint8/payload"
+          is_dense:
+            $ref: "#/components/messages/bool/payload"
+          format:
+            $ref: "#/components/messages/string/payload"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
components:
CompressedPointCloud2:
tags:
- name: msg
payload:
type: object
properties:
header:
$ref: "#/components/messages/std_msgs/header/payload"
height:
$ref: "#/components/messages/uint32/payload"
width:
$ref: "#/components/messages/uint32/payload"
fields:
$ref: "#/components/messages/sensor_msgs/PointField/payload"
is_bigendian:
$ref: "#/components/messages/bool/payload"
point_step:
$ref: "#/components/messages/uint32/payload"
row_step:
$ref: "#/components/messages/uint32/payload"
compressed_data:
$ref: "#/components/messages/uint8/payload"
is_dense:
$ref: "#/components/messages/bool/payload"
format:
$ref: "#/components/messages/string/payload"
components:
messages:
CompressedPointCloud2:
tags:
- name: msg
payload:
type: object
properties:
header:
$ref: "#/components/messages/std_msgs/header/payload"
height:
$ref: "#/components/messages/uint32/payload"
width:
$ref: "#/components/messages/uint32/payload"
fields:
$ref: "#/components/messages/sensor_msgs/PointField/payload"
is_bigendian:
$ref: "#/components/messages/bool/payload"
point_step:
$ref: "#/components/messages/uint32/payload"
row_step:
$ref: "#/components/messages/uint32/payload"
compressed_data:
$ref: "#/components/messages/uint8/payload"
is_dense:
$ref: "#/components/messages/bool/payload"
format:
$ref: "#/components/messages/string/payload"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/ros2.md` around lines 215 - 241, The YAML
uses $ref paths like "#/components/messages/std_msgs/header/payload" but there
is no components.messages map; add a "messages" mapping under the existing
"components" and place (or import) the referenced message schemas there (e.g.,
std_msgs/header/payload, uint32/payload, sensor_msgs/PointField/payload,
bool/payload, uint8/payload, string/payload), or update the $ref targets to
match where those schemas actually live; ensure CompressedPointCloud2's
properties continue to reference "#/components/messages/..." so the refs
resolve.

Comment on lines +102 to +105
channel:
$ref: '#/channels/address'
messages:
- $ref: '#/channels/address/messages/personEvent'
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Fix the $ref targets in the first example.

The operation points at #/channels/address, but the only declared channel here is person. Both $refs in this snippet will fail to resolve as written.

Also applies to: 124-136

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/solace.md` around lines 102 - 105, The
example's $ref targets are incorrect: the operation references
'#/channels/address' and '#/channels/address/messages/personEvent' but the
actual declared channel name is 'person', so both refs fail; update the $ref
values under the channel and messages keys to point to the existing channel and
message definitions (e.g., replace '#/channels/address' with '#/channels/person'
and '#/channels/address/messages/personEvent' with
'#/channels/person/messages/personEvent' or otherwise match the actual channel
name used in the spec), and make the same corrections in the second example
range that mirrors this snippet.

Comment on lines +146 to +183
## Example with a wildcard subscription ##

This example shows how a client could receive all the topics under `person/` using a wildcard subscription:

```yaml
components:
schemas:
Person:
type: string
messages:
PersonEvent:
payload:
schemaFormat: application/vnd.aai.asyncapi+json;version=3.0.0
schema:
$ref: '#/components/schemas/Person'
contentType: application/json
operations:
addPerson:
action: send
channel:
$ref: '#/channels/person'
messages:
- $ref: '#/channels/person/messages/personEvent'
bindings:
solace:
bindingVersion: 0.4.0
destinations:
- destinationType: queue
queue:
name: CreatedHREvents
topicSubscriptions:
- person/*/created
- destinationType: queue
queue:
name: UpdatedHREvents
topicSubscriptions:
- person/*/updated
timeToLive: 5000
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

This “wildcard subscription” example doesn’t actually show a wildcard subscriber.

The section says the client receives all topics under person/, but the snippet still hardcodes two specific subscriptions (person/*/created and person/*/updated) and mirrors the previous example’s structure. The example should demonstrate a single wildcard pattern if that is the behavior being documented.

🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 146-146: Heading style
Expected: atx; Actual: atx_closed

(MD003, heading-style)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/solace.md` around lines 146 - 183, The
example claims to show a wildcard subscriber but still lists two specific
subscriptions; replace the two topicSubscriptions under one of the queue
destinations (e.g., CreatedHREvents or UpdatedHREvents) with a single wildcard
pattern that actually matches all topics under person/ (e.g., use a single entry
like person/* or the appropriate multi-level wildcard your binding uses such as
person/>), and update the surrounding text to describe that single wildcard
subscription so the example demonstrates the intended behavior; locate the
topicSubscriptions array under the solace binding for the queue objects
(queue.name / topicSubscriptions) to make this change.

Comment on lines +72 to +76
#### Policy
|Field Name | Type | Description|
|---|:---:|---|
| <a name="channelBindingPolicyObjectPolicyStatements"></a>`Statements` | [Statement](#statement) | **Required.** An array of Statement objects, each of which controls a permission for this queue. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Make the policy field name consistent with the rest of the document.

This table defines the field as Statements, but every example below uses statements. Leaving the capitalized variant here makes the schema contradictory for readers copying the object shape.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/sqs.md` around lines 72 - 76, The table
currently lists the policy field as `Statements` which conflicts with examples
using `statements`; update the field name to `statements` (lowercase) in the
table and change the anchor name `<a
name="channelBindingPolicyObjectPolicyStatements"></a>` to match the lowercase
form (e.g., `channelBindingPolicyObjectPolicystatements`) and ensure any
internal links or references to `Statements` in this document point to the new
lowercase anchor and field name.

Comment on lines +214 to +226
sns:
consumers:
- protocol: sqs
endpoint:
name: user-signedup-queue
rawMessageDelivery: true
filterPolicy:
attributes:
reason:
anything-but: password-reset
redrivePolicy:
deadLetterQueue:
name: user-signedup-queue-dlq
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Fix the indentation in the consumer example.

name is outdented from both endpoint: and deadLetterQueue:, so this YAML no longer matches the object shape described above and is easy to copy incorrectly.

Suggested fix
         sns:
           consumers:
           - protocol: sqs
             endpoint:
-            name: user-signedup-queue
+              name: user-signedup-queue
             rawMessageDelivery: true  
             filterPolicy:
               attributes:
                 reason: 
                   anything-but: password-reset
             redrivePolicy:
               deadLetterQueue:
-              name: user-signedup-queue-dlq
+                name: user-signedup-queue-dlq
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
sns:
consumers:
- protocol: sqs
endpoint:
name: user-signedup-queue
rawMessageDelivery: true
filterPolicy:
attributes:
reason:
anything-but: password-reset
redrivePolicy:
deadLetterQueue:
name: user-signedup-queue-dlq
sns:
consumers:
- protocol: sqs
endpoint:
name: user-signedup-queue
rawMessageDelivery: true
filterPolicy:
attributes:
reason:
anything-but: password-reset
redrivePolicy:
deadLetterQueue:
name: user-signedup-queue-dlq
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@markdown/docs/reference/bindings/sqs.md` around lines 214 - 226, The YAML
example has incorrect indentation: move the consumer's "name:
user-signedup-queue" to be nested under "endpoint:" and move "name:
user-signedup-queue-dlq" to be nested under "deadLetterQueue:" so the
"consumers" entry matches the expected object shape (symbols to adjust: sns ->
consumers -> protocol: sqs -> endpoint:, name: user-signedup-queue; and
redrivePolicy -> deadLetterQueue:, name: user-signedup-queue-dlq).

@animeshk923
Copy link
Copy Markdown
Contributor

@princerajpoot20 @thulieblack the workflow is failing with, giving the error below:

11:10:20 AM:    Generating static pages (117/469)
11:10:20 AM:    Generating static pages (234/469)
11:10:21 AM: ReferenceError: region is not defined
11:10:21 AM:     at h (.next/server/pages/docs/reference/bindings/3.0.0.js:1:23620)
11:10:21 AM:     at i (.next/server/pages/docs/reference/bindings/3.0.0.js:1:33338)
11:10:21 AM: Error occurred prerendering page "/docs/reference/bindings/3.0.0". Read more: https://nextjs.org/docs/messages/prerender-error
11:10:21 AM: ReferenceError: region is not defined
11:10:21 AM:     at h (.next/server/pages/docs/reference/bindings/3.0.0.js:1:23620)
11:10:21 AM:     at i (.next/server/pages/docs/reference/bindings/3.0.0.js:1:33338)
11:10:21 AM: Export encountered an error on /docs/reference/bindings/3.0.0, exiting the build.
11:10:21 AM:  ⨯ Next.js build worker exited with code: 1 and signal: null

@sonarqubecloud
Copy link
Copy Markdown

@anshgoyalevil
Copy link
Copy Markdown
Member

This will continue to fail. Can someone manually fork this PR and fix the issue?
@animeshk923 Are you willing to take this up?

@animeshk923
Copy link
Copy Markdown
Contributor

This will continue to fail. Can someone manually fork this PR and fix the issue? @animeshk923 Are you willing to take this up?

@anshgoyalevil I can try.

@animeshk923
Copy link
Copy Markdown
Contributor

@anshgoyalevil
As far as I understand, I have to fork this pr --> copy the changes to my branch --> raise the pr against the master branch?

@anshgoyalevil
Copy link
Copy Markdown
Member

yes @animeshk923

@princerajpoot20
Copy link
Copy Markdown
Member

princerajpoot20 commented Mar 22, 2026

@animeshk923, these docs are not managed from this repo. They are coming from the binding repo, so to fix this, you’ll need to update them there.
Fixing them here will not solve the problem, as they will be overridden again in the next workflow run. Please go ahead and fix them in the binding repo, and this issue will be resolved in the next workflow re-run.

here are the reference of the docs in the binding repo that need to be updated : https://github.com/asyncapi/bindings/blob/master/sns/2.x.x/README.md
https://github.com/asyncapi/bindings/blob/master/sqs/README.md
https://github.com/asyncapi/bindings/tree/master/sns/3.0.0

@animeshk923
Copy link
Copy Markdown
Contributor

@animeshk923, these docs are not managed from this repo. They are coming from the binding repo, so to fix this, you’ll need to update them there. Fixing them here will not solve the problem, as they will be overridden again in the next workflow run. Please go ahead and fix them in the binding repo, and this issue will be resolved in the next workflow re-run.

here are the reference of the docs in the binding repo that need to be updated : asyncapi/bindings@master/sns/2.x.x/README.md asyncapi/bindings@master/sqs/README.md asyncapi/bindings@master/sns/3.0.0

Thank you for letting this known @princerajpoot20. I tested the deployments in #5269, and I'll do the required changes in the binding repo itself.

@animeshk923
Copy link
Copy Markdown
Contributor

Opened PR with the fixes: asyncapi/bindings#294

@princerajpoot20
Copy link
Copy Markdown
Member

I have reviewed and merged your PR in the binding repo.
We now have a new PR generated #5272 by our workflow that does not have this issue :)

Great work @animeshk923!

@github-project-automation github-project-automation Bot moved this from To Be Triaged to Done in Website - Kanban Mar 23, 2026
@anshgoyalevil
Copy link
Copy Markdown
Member

Great work @animeshk923
Thanks for the effort

@animeshk923
Copy link
Copy Markdown
Contributor

Great work @animeshk923 Thanks for the effort

my pleasure!

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants