Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
derberg opened this issue Oct 12, 2023 · 4 comments · May be fixed by #1011
Open

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

derberg opened this issue Oct 12, 2023 · 4 comments · May be fixed by #1011
Labels
area/typescript Specify what technical area given issue relates to. Its goal is to ease filtering good first issues. bug Something isn't working good first issue Good for newcomers keep-open

Comments

@derberg
Copy link
Member

derberg commented Oct 12, 2023

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

@derberg derberg added the bug Something isn't working label Oct 12, 2023
@jonaslagoni
Copy link
Member

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
Copy link
Member

/gfi typescript

@asyncapi-bot asyncapi-bot added area/typescript Specify what technical area given issue relates to. Its goal is to ease filtering good first issues. good first issue Good for newcomers labels Nov 9, 2023
@smoya
Copy link
Member

smoya commented Dec 4, 2023

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:

if (parameters.length === 0) return;

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

Copy link

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

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 ❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/typescript Specify what technical area given issue relates to. Its goal is to ease filtering good first issues. bug Something isn't working good first issue Good for newcomers keep-open
Projects
None yet
4 participants