-
-
Notifications
You must be signed in to change notification settings - Fork 54
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
fix: wrong validation with AsyncAPI v3 in VS Code and JetBrains IDEs #495
Merged
Merged
Changes from 17 commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
0396524
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan 8af32be
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan 518e3e0
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan 78ce54d
Merge branch 'master' into fix/494
Pakisan b5f2139
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan 87a6097
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan 981c80d
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan 212cc82
Merge branch 'master' into fix/494
Pakisan e8ee4a2
Merge branch 'master' into fix/494
Pakisan b573b54
Update .gitignore
Pakisan 62c5193
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan 297e778
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan dddb3d3
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan a4c5ef0
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan acfb26e
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan 469431c
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan b45e610
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan 52b06c5
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan d34130d
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan a9a7d47
fix: AsyncAPI v3 shows warning in Studio and IntelliJ plugin when ref…
Pakisan eba77ed
Merge branch 'master' into fix/494
smoya File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,6 @@ | ||
node_modules | ||
.nyc_output | ||
.vscode | ||
coverage | ||
coverage | ||
|
||
.DS_Store |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,35 @@ | ||
{ | ||
"if": { | ||
"required": [ | ||
"schema" | ||
] | ||
}, | ||
"then": { | ||
"$ref": "http://asyncapi.com/definitions/3.0.0/multiFormatSchema.json" | ||
}, | ||
"else": { | ||
"$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" | ||
}, | ||
"description": "An object representing either a schema or a multiFormatSchema based on the existence of the 'schema' property. If the property 'schema' is present, use the multi-format schema. Use the default AsyncAPI Schema otherwise.", | ||
"$id": "http://asyncapi.com/definitions/3.0.0/anySchema.json", | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"$id": "http://asyncapi.com/definitions/3.0.0/anySchema.json" | ||
"type": "object", | ||
"description": "An object representing either a Reference, a Schema or a Multi Format Schema", | ||
"properties": { | ||
"schemaFormat": { | ||
"type": "string", | ||
"description": "Supported Schema format" | ||
}, | ||
"schema": { | ||
"type": "object", | ||
"description": "Schema definition" | ||
}, | ||
"$ref": { | ||
"type": "string", | ||
"description": "Reference to schema" | ||
} | ||
}, | ||
Pakisan marked this conversation as resolved.
Show resolved
Hide resolved
|
||
"oneOf": [ | ||
{ | ||
"description": "Because of $ref collision in Reference and AsyncAPI Schema(includes $ref from Json Schema)", | ||
"not": {"required": ["schemaFormat", "schema"]}, | ||
"$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" | ||
}, | ||
{ | ||
"type": "object", | ||
"required": ["schemaFormat", "schema"], | ||
"not": {"required": ["$ref"]}, | ||
"minProperties": 2, | ||
"maxProperties": 2, | ||
"$ref": "http://asyncapi.com/definitions/3.0.0/multiFormatSchema.json" | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,11 @@ | ||
{ | ||
"description": "The Multi Format Schema Object represents a schema definition. It differs from the Schema Object in that it supports multiple schema formats or languages (e.g., JSON Schema, Avro, etc.).", | ||
"type": "object", | ||
"patternProperties": { | ||
"^x-[\\w\\d\\.\\x2d_]+$": { | ||
"$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" | ||
} | ||
}, | ||
"if": { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If you want, feel free to remove this if/then as #507 does ✌️ |
||
"not": { | ||
"type": "object" | ||
|
@@ -9,13 +15,6 @@ | |
"$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" | ||
}, | ||
"else": { | ||
"type": "object", | ||
"additionalProperties": false, | ||
"patternProperties": { | ||
"^x-[\\w\\d\\.\\x2d_]+$": { | ||
"$ref": "http://asyncapi.com/definitions/3.0.0/specificationExtension.json" | ||
} | ||
}, | ||
"properties": { | ||
"schemaFormat": { | ||
"description": "A string containing the name of the schema format that is used to define the information. If schemaFormat is missing, it MUST default to application/vnd.aai.asyncapi+json;version={{asyncapi}} where {{asyncapi}} matches the AsyncAPI Version String. In such a case, this would make the Multi Format Schema Object equivalent to the Schema Object. When using Reference Object within the schema, the schemaFormat of the resource being referenced MUST match the schemaFormat of the schema that contains the initial reference. For example, if you reference Avro schema, then schemaFormat of referencing resource and the resource being reference MUST match.", | ||
|
@@ -37,21 +36,18 @@ | |
{ | ||
"description": "All the schema formats tools are RECOMMENDED to support", | ||
"enum": [ | ||
"application/vnd.oai.openapi;version=3.0.0", | ||
"application/vnd.oai.openapi+json;version=3.0.0", | ||
"application/vnd.oai.openapi;version=3.0.0", | ||
"application/vnd.oai.openapi+json;version=3.0.0", | ||
"application/vnd.oai.openapi+yaml;version=3.0.0", | ||
|
||
"application/vnd.apache.avro;version=1.9.0", | ||
"application/vnd.apache.avro+json;version=1.9.0", | ||
"application/vnd.apache.avro+yaml;version=1.9.0", | ||
|
||
"application/raml+yaml;version=1.0" | ||
] | ||
} | ||
] | ||
}, | ||
"schema": { | ||
"description": "Definition of the message payload. It can be of any type but defaults to Schema Object. It MUST match the schema format defined in schemaFormat, including the encoding type. E.g., Avro should be inlined as either a YAML or JSON object instead of as a string to be parsed as YAML or JSON. Non-JSON-based schemas (e.g., Protobuf or XSD) MUST be inlined as a string." | ||
} | ||
}, | ||
"allOf": [ | ||
|
@@ -67,14 +63,7 @@ | |
"then": { | ||
"properties": { | ||
"schema": { | ||
"oneOf": [ | ||
{ | ||
"$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" | ||
}, | ||
{ | ||
"$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" | ||
} | ||
] | ||
"$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" | ||
} | ||
} | ||
} | ||
|
@@ -119,14 +108,7 @@ | |
"then": { | ||
"properties": { | ||
"schema": { | ||
"oneOf": [ | ||
{ | ||
"$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" | ||
}, | ||
{ | ||
"$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" | ||
} | ||
] | ||
"$ref": "http://asyncapi.com/definitions/3.0.0/schema.json" | ||
} | ||
} | ||
} | ||
|
@@ -148,14 +130,7 @@ | |
"then": { | ||
"properties": { | ||
"schema": { | ||
"oneOf": [ | ||
{ | ||
"$ref": "http://asyncapi.com/definitions/3.0.0/Reference.json" | ||
}, | ||
{ | ||
"$ref": "http://json-schema.org/draft-07/schema" | ||
} | ||
] | ||
"$ref": "http://json-schema.org/draft-07/schema" | ||
} | ||
} | ||
} | ||
|
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I dont think these changes with
additionalProperties
is necessary, and on the other side, are you not allowed to have additional properties in Avro? 🤔There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As I remember Avro is allows only defined attributes. For example Record - https://avro.apache.org/docs/1.11.1/specification/#schema-record
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like additional properties is allowed on the different levels of Avro: https://asyncapi.slack.com/archives/C0230UAM6R3/p1712059889567579?thread_ts=1711713980.293369&cid=C0230UAM6R3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I removed restriction