asyncapi / parser-js

AsyncAPI parser for Javascript (browser-compatible too).
Apache License 2.0
119 stars 97 forks source link

Parser do not validate and throw error when `parameters` are provided but address is null #875

Open derberg opened 1 year ago

derberg commented 1 year ago

Like in the subject.

Document:

asyncapi: 3.0.0
info:
  title: Account Service
  version: 1.0.0
  description: This service is in charge of processing user signups
channels:
  userSignedup:
    address: user/signedup
    parameters:
      test:
        description: I should get an error that I provide a parameter but there are no parameters in the address, or basically address in `null`
    messages:
      UserSignedUp:
        $ref: '#/components/messages/UserSignedUp'
operations:
  sendUserSignedup:
    action: send
    channel:
      $ref: '#/channels/userSignedup'
    messages:
      - $ref: '#/channels/userSignedup/messages/UserSignedUp'
components:
  messages:
    UserSignedUp:
      payload:
        type: object
        properties:
          displayName:
            type: string
            description: Name of the user
          email:
            type: string
            format: email
            description: Email of the user

it should not be a valid document and I should get an error saying that I have parameters but there are no parameters in the address

jonaslagoni commented 12 months ago

We need to adapt the spectral rules to solve this issue. Here is how:

This issue is marked as good first issue, but it's a medium difficulty!

Remember to target the next-major-spec branch.

jonaslagoni commented 12 months ago

/gfi typescript

smoya commented 11 months ago

We need to adapt the spectral rules to solve this issue. Here is how:

Note that the linked rule only applies for channels with parameters in their address. Otherwise, it just skips it. See the following code that executes for the channel address: https://github.com/asyncapi/parser-js/blob/0a765c1ed46af605707d9e37f71d76192b950602/src/ruleset/v2/functions/channelParameters.ts#L25

We need to additionally make it fail in case there are parameters defined for such a channel but they are not added into the address. This is the usecase @derberg shared.

Remember to target the next-major-spec branch.

This is not anymore a requirement since all v3-related stuff has been merged now to master.

cc @Min2who

github-actions[bot] commented 5 months ago

This issue has been automatically marked as stale because it has not had recent activity :sleeping:

It will be closed in 120 days if no further activity occurs. To unstale this issue, add a comment with a detailed explanation.

There can be many reasons why some specific issue has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model.

Let us figure out together how to push this issue forward. Connect with us through one of many communication channels we established here.

Thank you for your patience :heart: