docs(bindings): update latest bindings documentation#5235
docs(bindings): update latest bindings documentation#5235asyncapi-bot wants to merge 22 commits intomasterfrom
Conversation
📝 WalkthroughWalkthroughThis 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
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~30 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
❌ Deploy Preview for asyncapi-website failed.
|
Codecov Report✅ All modified and coverable lines are covered by tests. 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. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
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 | 🟡 MinorThe deprecation link target looks wrong.
../mqtt/README.mdclimbs out ofreference/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 | 🟡 MinorUse a normal subheading level here.
Jumping from
## Server Binding Objectto##### Fixed Fieldsbreaks the heading hierarchy.### Fixed Fieldsis 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 | 🟡 MinorPlease 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 Objectis linked with the wrong markdown syntax.
[Reference Object](referenceObject)creates a literal relative link toreferenceObject, which is why the reference definition at Line 79 is unused. This should use the same reference-style form asSchema 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 | 🟡 MinorThis catch-all is too broad for website-owned pages under
reference/bindings/.
generateEditLink()picks the first config entry whosevalueis included inpost.slug, so putting this mapping first will also routereference/bindings/scriptstoasyncapi/bindings. That conflicts withmarkdown/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 | 🟡 MinorStep the subheadings down by one level.
Both
##### Fixed Fieldsheadings jump from##to#####, which is why markdownlint is raisingMD001here.###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 | 🟡 MinorDrop
Fixed Fieldsto###here.This section jumps from
## Channel Binding Objectstraight 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 | 🟡 MinorThese
referenceObjectlinks 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 | 🟡 MinorThe policy example text still refers to SNS permissions.
This is the SQS binding, but the
actionrow says “The SNS permission being allowed or denied”. That should describe SQS permissions instead; otherwise the table conflicts with the examples that useSqs:SendMessageandSqs: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 | 🟡 MinorReplace 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 | 🟡 MinorNormalize the subheading levels in this page.
Each
##### ...heading jumps two levels from the surrounding##sections, which is why markdownlint is reportingMD001repeatedly 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 | 🟡 MinorComplete the last row of the server table.
The header defines five columns, but the
bindingVersionrow only provides four cells, so the Constraints column is missing and markdownlint raisesMD056.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 | 🟡 MinorNormalize 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
MD055on 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 | 🟡 MinorUse 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 | 🟡 MinorUse 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 | 🟡 MinorFix the malformed
Schemalink.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 | 🟡 MinorAvoid skipping heading levels.
These
###### Fixed Fieldsheadings jump over intermediate levels and triggermarkdownlint(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 | 🟡 MinorUse the next heading level here.
These
##### Fixed Fieldsheadings jump from##straight to#####, which tripsmarkdownlint(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 | 🟡 MinorAvoid the heading-level jumps.
These
##### Fixed Fieldsheadings skip from##to#####, which will keep trippingmarkdownlint(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 | 🟡 MinorKeep the heading levels sequential.
These
##### ...headings skip over intermediate levels and triggermarkdownlint(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 | 🟡 MinorKeep the operation action names consistent.
Line 105 uses
Subscribe, while the rest of this table and the examples usereceive/send. That inconsistency makes theackrow 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 | 🟡 MinorUse sequential heading levels in these example sections.
These
##### Example ...headings jump over intermediate levels and triggermarkdownlint(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 | 🟡 MinorClarify whether
hostincludes 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 | 🟡 MinorCorrect 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
⛔ Files ignored due to path filters (3)
public/img/docs/SNS-HTTP.pngis excluded by!**/*.pngpublic/img/docs/SNS-SQS-Pub-Sub.pngis excluded by!**/*.pngpublic/img/docs/SQS-Point-To-Point.pngis excluded by!**/*.png
📒 Files selected for processing (24)
config/edit-page-config.jsonmarkdown/docs/reference/bindings/2.x.x.mdmarkdown/docs/reference/bindings/3.0.0.mdmarkdown/docs/reference/bindings/_section.mdmarkdown/docs/reference/bindings/amqp.mdmarkdown/docs/reference/bindings/amqp1.mdmarkdown/docs/reference/bindings/anypointmq.mdmarkdown/docs/reference/bindings/googlepubsub.mdmarkdown/docs/reference/bindings/http.mdmarkdown/docs/reference/bindings/ibmmq.mdmarkdown/docs/reference/bindings/jms.mdmarkdown/docs/reference/bindings/kafka.mdmarkdown/docs/reference/bindings/mercure.mdmarkdown/docs/reference/bindings/mqtt.mdmarkdown/docs/reference/bindings/mqtt5.mdmarkdown/docs/reference/bindings/nats.mdmarkdown/docs/reference/bindings/pulsar.mdmarkdown/docs/reference/bindings/redis.mdmarkdown/docs/reference/bindings/ros2.mdmarkdown/docs/reference/bindings/scripts.mdmarkdown/docs/reference/bindings/solace.mdmarkdown/docs/reference/bindings/sqs.mdmarkdown/docs/reference/bindings/stomp.mdmarkdown/docs/reference/bindings/websockets.md
| ```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 | ||
| ``` |
There was a problem hiding this comment.
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.
| ```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 | ||
| ``` |
There was a problem hiding this comment.
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.
| 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: |
There was a problem hiding this comment.
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.
| description: A user has signed up for our service | ||
| operationId: sendMessage | ||
| description: send messages to the topic |
There was a problem hiding this comment.
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.
| binding: | ||
| sns: | ||
| consumers: | ||
| - protocol: sqs | ||
| endpoint: | ||
| name: myQueue | ||
| rawMessageDelivery: false |
There was a problem hiding this comment.
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.
| 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" |
There was a problem hiding this comment.
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.
| 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.
| channel: | ||
| $ref: '#/channels/address' | ||
| messages: | ||
| - $ref: '#/channels/address/messages/personEvent' |
There was a problem hiding this comment.
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.
| ## 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 |
There was a problem hiding this comment.
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.
| #### 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. | | ||
|
|
There was a problem hiding this comment.
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.
| 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 |
There was a problem hiding this comment.
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.
| 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).
|
@princerajpoot20 @thulieblack the workflow is failing with, giving the error below: |
|
|
This will continue to fail. Can someone manually fork this PR and fix the issue? |
@anshgoyalevil I can try. |
|
@anshgoyalevil |
|
yes @animeshk923 |
|
@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. 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 |
Thank you for letting this known @princerajpoot20. I tested the deployments in #5269, and I'll do the required changes in the |
|
Opened PR with the fixes: asyncapi/bindings#294 |
|
I have reviewed and merged your PR in the binding repo. Great work @animeshk923! |
|
Great work @animeshk923 |
my pleasure! |



Updated bindings documentation is available and this PR introduces update to bindings folder on the website
Summary by CodeRabbit
Documentation
Chores