From 268d79d4c5637b117baf7187ecf67626bfd31aac Mon Sep 17 00:00:00 2001 From: Rishi <52498617+kaushik-rishi@users.noreply.github.com> Date: Tue, 25 Jul 2023 15:50:45 +0530 Subject: [PATCH 1/5] ci: update release workflow (#939) --- .github/workflows/release.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8252eadd..34ce3e2d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,11 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repo - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Setup Node.js - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 + with: + node-version: 18 - name: Add plugin for conventional commits - run: npm install conventional-changelog-conventionalcommits + run: npm install --save-dev conventional-changelog-conventionalcommits@5.0.0 - name: Release to GitHub env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} From 121ea2b09af6ef57b3cd0c01baeb28f0f869e87c Mon Sep 17 00:00:00 2001 From: Lukasz Gornicki Date: Fri, 11 Aug 2023 12:43:16 +0200 Subject: [PATCH 2/5] ci: upgrade GH workflows and fix markdown linting (#958) --- .github/workflows/lint.yml | 9 +- .github/workflows/new-spec-release.yml | 14 +-- .github/workflows/update-spec.yaml | 6 +- .markdownlint.yaml | 9 ++ CONTRIBUTING.md | 8 ++ mlc_config.json | 19 --- spec/asyncapi.md | 164 +++++++++---------------- 7 files changed, 89 insertions(+), 140 deletions(-) create mode 100644 .markdownlint.yaml delete mode 100644 mlc_config.json diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 0fab4bd2..2b23e7fb 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,15 +1,16 @@ -name: Lint +name: Lint specification markdown file on: pull_request: types: [opened, reopened, synchronize, ready_for_review] + paths: + - 'spec/asyncapi.md' jobs: lint: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Run linter - run: npx mdv spec/*.md - + run: docker run -v $PWD:/workdir ghcr.io/igorshubovych/markdownlint-cli:v0.35.0 "spec/asyncapi.md" \ No newline at end of file diff --git a/.github/workflows/new-spec-release.yml b/.github/workflows/new-spec-release.yml index eadf1fda..11c59cd0 100644 --- a/.github/workflows/new-spec-release.yml +++ b/.github/workflows/new-spec-release.yml @@ -13,12 +13,12 @@ jobs: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} steps: - name: Checkout Current repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: path: spec ref: ${{ github.event.release.target_commitish }} - name: Checkout Another repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: repository: asyncapi/website path: website @@ -32,7 +32,7 @@ jobs: run: | git checkout -b spec-release-${{github.event.release.tag_name}} - name: Check for previous spec file and remove it - uses: actions/github-script@v3 + uses: actions/github-script@v6 with: github-token: ${{ env.GITHUB_TOKEN }} script: | @@ -53,14 +53,14 @@ jobs: run: | cp ../spec/spec/asyncapi.md ./pages/docs/reference/specification/${{github.event.release.tag_name}}.md - name: Remove Table of Contents from Spec - uses: actions/github-script@v4 + uses: actions/github-script@v6 with: github-token: ${{ env.GITHUB_TOKEN }} script: | const script = require('./spec/.github/scripts/remove-toc'); script(`${{github.event.release.tag_name}}`); - name: Change the redirect file to point to latest spec - uses: actions/github-script@v3 + uses: actions/github-script@v6 if: ${{github.event.release.prerelease == false}} with: github-token: ${{ env.GITHUB_TOKEN }} @@ -90,7 +90,7 @@ jobs: fs.writeFileSync("./website/public/_redirects", newRedirect); - name: Remove previous pre-release redirects in case of a new release - uses: actions/github-script@v3 + uses: actions/github-script@v6 with: github-token: ${{ env.GITHUB_TOKEN }} script: | @@ -125,7 +125,7 @@ jobs: fs.writeFileSync("./website/public/_redirects", newRedirect); - name: Change the redirect file to point to specs - uses: actions/github-script@v3 + uses: actions/github-script@v6 with: github-token: ${{ env.GITHUB_TOKEN }} script: | diff --git a/.github/workflows/update-spec.yaml b/.github/workflows/update-spec.yaml index d5ad7aa1..49b2481b 100644 --- a/.github/workflows/update-spec.yaml +++ b/.github/workflows/update-spec.yaml @@ -15,11 +15,11 @@ jobs: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} steps: - name: Checkout Current repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: path: spec - name: Checkout Another repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: repository: asyncapi/website path: website @@ -43,7 +43,7 @@ jobs: run: | cp ../spec/spec/asyncapi.md ./pages/docs/reference/specification/${{ steps.latest_version.outputs.latest_tag }}.md - name: Remove Table of Contents from Spec - uses: actions/github-script@v4 + uses: actions/github-script@v6 with: github-token: ${{ env.GITHUB_TOKEN }} script: | diff --git a/.markdownlint.yaml b/.markdownlint.yaml new file mode 100644 index 00000000..7b77ce97 --- /dev/null +++ b/.markdownlint.yaml @@ -0,0 +1,9 @@ +# MD013/line-length - Line length +# We should keep it disabled as this line length limit do not maeke sense really +MD013: false +# MD033/no-inline-html - Inline HTML +# We use HTML links in deadings all over the place. Probably this is why links in GitHub do not work, but that requires investingation if we can remove them really +MD033: false +# MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content +# For now hard to say how that should be fixed as we have such duplicates like Fixed Fields all over the place +MD024: false \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c82242d8..d096c5f4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -243,6 +243,14 @@ A pull request can be merged if all the following conditions are met: * There is, at least, a mininum of 3 approvals from the [repository code owners](./CODEOWNERS). * Sufficient time has passed to let all code owners review the pull request. As of now, it should be a minimum of 1 week. If all code owners have already approved a pull request, it's ok not to wait for this period of time. +## Linting specification document + +Always make sure that the specification markdown file has no markdown-related errors. + +Instead of waiting for GitHub Actions workflow to check markdown file, you can do it locally by calling the following docker command: +```bash +docker run -v $PWD:/workdir ghcr.io/igorshubovych/markdownlint-cli:v0.35.0 "spec/asyncapi.md" +``` ## References This document was adapted from the [GraphQL Specification Contribution Guide](https://github.com/graphql/graphql-spec/blob/main/CONTRIBUTING.md). \ No newline at end of file diff --git a/mlc_config.json b/mlc_config.json deleted file mode 100644 index 01833db7..00000000 --- a/mlc_config.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "ignorePatterns": [ - { - "pattern": "^https://github.com/asyncapi/spec/tree/BRANCH_NAME" - }, - { - "pattern": "^https://github.com/asyncapi/spec-json-schemas/tree/BRANCH_NAME" - }, - { - "pattern": "^https://github.com/asyncapi/parser-js/tree/BRANCH_NAME" - }, - { - "pattern": "^https://github.com/asyncapi/website/pull/PULLREQUEST" - }, - { - "pattern": "^https://github.com/asyncapi/spec/blob/.*.md$" - } - ] -} diff --git a/spec/asyncapi.md b/spec/asyncapi.md index 1fb6c8bd..26bbd7f3 100644 --- a/spec/asyncapi.md +++ b/spec/asyncapi.md @@ -1,10 +1,10 @@ # AsyncAPI Specification -#### Disclaimer +## Disclaimer Part of this content has been taken from the great work done by the folks at the [OpenAPI Initiative](https://openapis.org). Mainly because **it's a great work** and we want to keep as much compatibility as possible with the [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification). -#### Version 2.6.0 +## Version 2.6.0 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt). @@ -86,29 +86,37 @@ It means that the [application](#definitionsApplication) allows [consumers](#def ## Definitions -#### Server +### Server + A server MAY be a message broker that is capable of sending and/or receiving between a [producer](#definitionsProducer) and [consumer](#definitionsConsumer). A server MAY be a service with WebSocket API that enables message-driven communication between browser-to-server or server-to-server. -#### Application -An application is any kind of computer program or a group of them. It MUST be a [producer](#definitionsProducer), a [consumer](#definitionsConsumer) or both. An application MAY be a microservice, IoT device (sensor), mainframe process, etc. An application MAY be written in any number of different programming languages as long as they support the selected [protocol](#definitionsProtocol). An application MUST also use a protocol supported by the [server](#definitionsServer) in order to connect and exchange [messages](#definitionsMessage). +### Application + +An application is any kind of computer program or a group of them. It MUST be a [producer](#definitionsProducer), a [consumer](#definitionsConsumer) or both. An application MAY be a microservice, IoT device (sensor), mainframe process, etc. An application MAY be written in any number of different programming languages as long as they support the selected [protocol](#definitionsProtocol). An application MUST also use a protocol supported by the [server](#definitionsServer) in order to connect and exchange [messages](#definitionsMessage). + +### Producer -#### Producer A producer is a type of application, connected to a [server](#definitionsServer), that is creating [messages](#definitionsMessage) and addressing them to [channels](#definitionsChannel). A producer MAY be publishing to multiple channels depending on the [server](#definitionsServer), protocol, and use-case pattern. -#### Consumer +### Consumer + A consumer is a type of application, connected to a [server](#definitionsServer) via a supported [protocol](#definitionsProtocol), that is consuming [messages](#definitionsMessage) from [channels](#definitionsChannel). A consumer MAY be consuming from multiple channels depending on the [server](#definitionsServer), protocol, and the use-case pattern. -#### Message -A message is the mechanism by which information is exchanged via a channel between [servers](#definitionsServer) and applications. A message MUST contain a payload and MAY also contain headers. The headers MAY be subdivided into [protocol](#definitionsProtocol)-defined headers and header properties defined by the application which can act as supporting metadata. The payload contains the data, defined by the application, which MUST be serialized into a format (JSON, XML, Avro, binary, etc.). Since a message is a generic mechanism, it can support multiple interaction patterns such as event, command, request, or response. +### Message + +A message is the mechanism by which information is exchanged via a channel between [servers](#definitionsServer) and applications. A message MUST contain a payload and MAY also contain headers. The headers MAY be subdivided into [protocol](#definitionsProtocol)-defined headers and header properties defined by the application which can act as supporting metadata. The payload contains the data, defined by the application, which MUST be serialized into a format (JSON, XML, Avro, binary, etc.). Since a message is a generic mechanism, it can support multiple interaction patterns such as event, command, request, or response. + +### Channel -#### Channel A channel is an addressable component, made available by the [server](#definitionsServer), for the organization of [messages](#definitionsMessage). [Producer](#definitionsProducer) applications send messages to channels and [consumer](#definitionsConsumer) applications consume messages from channels. [Servers](#definitionsServer) MAY support many channel instances, allowing messages with different content to be addressed to different channels. Depending on the [server](#definitionsServer) implementation, the channel MAY be included in the message via protocol-defined headers. -#### Protocol +### Protocol + A protocol is the mechanism (wireline protocol or API) by which [messages](#definitionsMessage) are exchanged between the application and the [channel](#definitionsChannel). Example protocols include, but are not limited to, AMQP, HTTP, JMS, Kafka, Anypoint MQ, MQTT, Solace, STOMP, Mercure, WebSocket, Google Pub/Sub, Pulsar. -#### Bindings -A "binding" (or "protocol binding") is a mechanism to define protocol-specific information. Therefore, a protocol binding MUST define protocol-specific information only. +### Bindings + +A "binding" (or "protocol binding") is a mechanism to define protocol-specific information. Therefore, a protocol binding MUST define protocol-specific information only. ## Specification @@ -170,7 +178,6 @@ Field Name | Type | Description tags | [Tags Object](#tagsObject) | A list of tags used by the specification with additional metadata. Each tag name in the list MUST be unique. externalDocs | [External Documentation Object](#externalDocumentationObject) | Additional external documentation. - This object MAY be extended with [Specification Extensions](#specificationExtensions). #### AsyncAPI Version String @@ -189,7 +196,7 @@ This field represents a unique universal identifier of the [application](#defini It is RECOMMENDED to use a [URN](https://tools.ietf.org/html/rfc8141) to globally and uniquely identify the application during long periods of time, even after it becomes unavailable or ceases to exist. -###### Examples +##### Examples ```json { @@ -229,7 +236,7 @@ Field Name | Type | Description This object MAY be extended with [Specification Extensions](#specificationExtensions). -##### Info Object Example: +##### Info Object Example ```json { @@ -277,7 +284,7 @@ Field Name | Type | Description This object MAY be extended with [Specification Extensions](#specificationExtensions). -##### Contact Object Example: +##### Contact Object Example ```json { @@ -306,7 +313,7 @@ Field Name | Type | Description This object MAY be extended with [Specification Extensions](#specificationExtensions). -##### License Object Example: +##### License Object Example ```json { @@ -351,7 +358,6 @@ production: protocolVersion: '1.0.0' ``` - #### Server Object An object representing a message broker, a server or any other kind of computer program capable of sending and/or receiving data. This object is used to capture details such as URIs, protocols and security configuration. Variable substitution can be used so that some details, for example usernames and passwords, can be injected by code generation tools. @@ -515,7 +521,6 @@ servers: default: v2 ``` - #### Server Variable Object An object representing a Server Variable for server URL template substitution. @@ -531,10 +536,6 @@ Field Name | Type | Description This object MAY be extended with [Specification Extensions](#specificationExtensions). - - - - #### Default Content Type A string representing the default content type to use when encoding/decoding a message's payload. The value MUST be a specific media type (e.g. `application/json`). This value MUST be used by schema parsers when the [contentType](#messageObjectContentType) property is omitted. @@ -553,11 +554,6 @@ In case a message can't be encoded/decoded using this value, schema parsers MUST defaultContentType: application/json ``` - - - - - #### Channels Object Holds the relative paths to the individual channel and their operations. Channel paths are relative to servers. @@ -591,9 +587,6 @@ user/signedup: $ref: "#/components/messages/userSignedUp" ``` - - - #### Channel Item Object Describes the operations available on a single channel. @@ -602,7 +595,7 @@ Describes the operations available on a single channel. Field Name | Type | Description ---|:---:|--- -$ref | `string` | Allows for a referenced definition of this channel item. The referenced structure MUST be in the form of a [Channel Item Object](#channelItemObject). In case a Channel Item Object field appears both in the defined object and the referenced object, the behavior is *undefined*. Resolution is done as defined by the [JSON Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03).

**Deprecated:** Usage of the `$ref` property has been deprecated. +$ref | `string` | Allows for a referenced definition of this channel item. The referenced structure MUST be in the form of a [Channel Item Object](#channelItemObject). In case a Channel Item Object field appears both in the defined object and the referenced object, the behavior is _undefined_. Resolution is done as defined by the [JSON Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03).

**Deprecated:** Usage of the `$ref` property has been deprecated. description | `string` | An optional description of this channel item. [CommonMark syntax](https://spec.commonmark.org/) can be used for rich text representation. servers | [`string`] | The servers on which this channel is available, specified as an optional unordered list of names (string keys) of [Server Objects](#serverObject) defined in the [Servers Object](#serversObject) (a map). If `servers` is absent or empty then this channel must be available on all servers defined in the [Servers Object](#serversObject). subscribe | [Operation Object](#operationObject) | A definition of the SUBSCRIBE operation, which defines the messages produced by the application and sent to the channel. @@ -688,7 +681,6 @@ subscribe: - $ref: '#/components/messages/login' ``` - Using explicit by-name references to the servers on which the channel is available: ```json @@ -724,10 +716,6 @@ bindings: is: queue ``` - - - - #### Operation Object Describes a publish or a subscribe operation. This provides a place to document how and why messages are sent and received. @@ -836,9 +824,6 @@ traits: - $ref: "#/components/operationTraits/kafka" ``` - - - #### Operation Trait Object Describes a trait that MAY be applied to an [Operation Object](#operationObject). This object MAY contain any property from the [Operation Object](#operationObject), except `message` and `traits`. @@ -877,9 +862,6 @@ bindings: ack: false ``` - - - #### Parameters Object Describes a map of parameters included in a channel name. @@ -926,10 +908,6 @@ user/{userId}/signup: $ref: "#/components/messages/userSignedUp" ``` - - - - #### Parameter Object Describes a parameter included in a channel name. @@ -980,9 +958,6 @@ user/{userId}/signup: $ref: "#/components/messages/userSignedUp" ``` - - - #### Server Bindings Object Map describing protocol-specific definitions for a server. @@ -1013,8 +988,6 @@ Field Name | Type | Description This object MAY be extended with [Specification Extensions](#specificationExtensions). - - #### Channel Bindings Object Map describing protocol-specific definitions for a channel. @@ -1045,8 +1018,6 @@ Field Name | Type | Description This object MAY be extended with [Specification Extensions](#specificationExtensions). - - #### Operation Bindings Object Map describing protocol-specific definitions for an operation. @@ -1077,9 +1048,6 @@ Field Name | Type | Description This object MAY be extended with [Specification Extensions](#specificationExtensions). - - - #### Message Bindings Object Map describing protocol-specific definitions for a message. @@ -1110,12 +1078,6 @@ Field Name | Type | Description This object MAY be extended with [Specification Extensions](#specificationExtensions). - - - - - - #### Message Object Describes a message received on a given channel and operation. @@ -1149,17 +1111,16 @@ The following table contains a set of values that every implementation MUST supp Name | Allowed values | Notes ---|:---:|--- [AsyncAPI 2.6.0 Schema Object](#schemaObject) | `application/vnd.aai.asyncapi;version=2.6.0`, `application/vnd.aai.asyncapi+json;version=2.6.0`, `application/vnd.aai.asyncapi+yaml;version=2.6.0` | This is the default when a `schemaFormat` is not provided. -[JSON Schema Draft 07](https://json-schema.org/specification-links.html#draft-7) | `application/schema+json;version=draft-07`, `application/schema+yaml;version=draft-07` | +[JSON Schema Draft 07](https://json-schema.org/specification-links.html#draft-7) | `application/schema+json;version=draft-07`, `application/schema+yaml;version=draft-07` | The following table contains a set of values that every implementation is RECOMMENDED to support. Name | Allowed values | Notes ---|:---:|--- [Avro 1.9.0 schema](https://avro.apache.org/docs/1.9.0/spec.html#schemas) | `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` | -[OpenAPI 3.0.0 Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#schemaObject) | `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` | +[OpenAPI 3.0.0 Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#schemaObject) | `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` | [RAML 1.0 data type](https://github.com/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md/) | `application/raml+yaml;version=1.0` | - ##### Message Object Example ```json @@ -1308,12 +1269,6 @@ payload: $ref: 'path/to/user-create.avsc/#UserCreate' ``` - - - - - - #### Message Trait Object Describes a trait that MAY be applied to a [Message Object](#messageObject). This object MAY contain any property from the [Message Object](#messageObject), except `payload` and `traits`. @@ -1356,13 +1311,13 @@ contentType: application/json #### Message Example Object -Message Example Object represents an example of a [Message Object](#messageObject) and MUST contain either **headers** and/or **payload** fields. +Message Example Object represents an example of a [Message Object](#messageObject) and MUST contain either **headers** and/or **payload** fields. ##### Fixed Fields Field Name | Type | Description ---|:---:|--- -headers | `Map[string, any]` | The value of this field MUST validate against the [Message Object's headers](#messageObjectHeaders) field. +headers | `Map[string, any]` | The value of this field MUST validate against the [Message Object's headers](#messageObjectHeaders) field. payload | `any` | The value of this field MUST validate against the [Message Object's payload](#messageObjectPayload) field. name | `string` | A machine-friendly name. summary | `string` | A short summary of what the example is about. @@ -1412,6 +1367,7 @@ A Tags object is a list of Tag Objects. Allows adding meta data to a single tag. ##### Fixed Fields + Field Name | Type | Description ---|:---:|--- name | `string` | **REQUIRED.** The name of the tag. @@ -1424,8 +1380,8 @@ This object MAY be extended with [Specification Extensions](#specificationExtens ```json { - "name": "user", - "description": "User-related messages" + "name": "user", + "description": "User-related messages" } ``` @@ -1434,12 +1390,6 @@ name: user description: User-related messages ``` - - - - - - #### External Documentation Object Allows referencing an external resource for extended documentation. @@ -1476,6 +1426,7 @@ The Reference Object is defined by [JSON Reference](https://tools.ietf.org/html/ For this specification, reference resolution is done as defined by the JSON Reference specification and not by the JSON Schema specification. ##### Fixed Fields + Field Name | Type | Description ---|:---:|--- $ref | `string` | **REQUIRED.** The reference string. @@ -1502,10 +1453,10 @@ All objects defined within the components object will have no effect on the API ##### Fixed Fields Field Name | Type | Description ----|:---|--- +---|:---|--- schemas | Map[`string`, [Schema Object](#schemaObject) \| [Reference Object](#referenceObject)] | An object to hold reusable [Schema Objects](#schemaObject). servers | Map[`string`, [Server Object](#serverObject) \| [Reference Object](#referenceObject)] | An object to hold reusable [Server Objects](#serverObject). - serverVariables | Map[`string`, [Server Variable Object](#serverVariableObject) \| [Reference Object](#referenceObject)] | An object to hold reusable [Server Variable Objects](#serverVariableObject). + serverVariables | Map[`string`, [Server Variable Object](#serverVariableObject) \| [Reference Object](#referenceObject)] | An object to hold reusable [Server Variable Objects](#serverVariableObject). channels | Map[`string`, [Channel Item Object](#channelItemObject)] | An object to hold reusable [Channel Item Objects](#channelItemObject). messages | Map[`string`, [Message Object](#messageObject) \| [Reference Object](#referenceObject)] | An object to hold reusable [Message Objects](#messageObject). securitySchemes| Map[`string`, [Security Scheme Object](#securitySchemeObject) \| [Reference Object](#referenceObject)] | An object to hold reusable [Security Scheme Objects](#securitySchemeObject). @@ -1524,7 +1475,7 @@ All the fixed fields declared above are objects that MUST use keys that match th Field Name Examples: -``` +```plaintext User User_1 User_Name @@ -1805,6 +1756,7 @@ Alternatively, any time a Schema Object can be used, a [Reference Object](#refer In addition to the JSON Schema fields, the following AsyncAPI vocabulary fields MAY be used for further schema documentation: ##### Fixed Fields + Field Name | Type | Description ---|:---:|--- discriminator | `string` | Adds support for polymorphism. The discriminator is the schema property name that is used to differentiate between other schema that inherit this schema. The property name used MUST be defined at this schema and it MUST be in the `required` property list. When used, the value MUST be the name of this schema or any schema that inherits it. See [Composition and Inheritance](#schemaComposition) for more details. @@ -1816,7 +1768,7 @@ This object MAY be extended with [Specification Extensions](#specificationExtens ###### Composition and Inheritance (Polymorphism) The AsyncAPI Specification allows combining and extending model definitions using the `allOf` property of JSON Schema, in effect offering model composition. -`allOf` takes in an array of object definitions that are validated *independently* but together compose a single object. +`allOf` takes in an array of object definitions that are validated _independently_ but together compose a single object. While composition offers model extensibility, it does not imply a hierarchy between the models. To support polymorphism, AsyncAPI Specification adds the support of the `discriminator` field. @@ -1827,7 +1779,7 @@ There are two ways to define the value of a discriminator for an inheriting inst - Use the schema's name. - Override the schema's name by overriding the property with a new value. If exists, this takes precedence over the schema's name. -As such, inline schema definitions, which do not have a given id, *cannot* be used in polymorphism. +As such, inline schema definitions, which do not have a given id, _cannot_ be used in polymorphism. ##### Schema Object Examples @@ -2212,25 +2164,22 @@ schemas: - color ``` - - - - #### Security Scheme Object Defines a security scheme that can be used by the operations. Supported schemes are: -* User/Password. -* API key (either as user or as password). -* X.509 certificate. -* End-to-end encryption (either symmetric or asymmetric). -* HTTP authentication. -* HTTP API key. -* OAuth2's common flows (Implicit, Resource Owner Protected Credentials, Client Credentials and Authorization Code) as defined in [RFC6749](https://tools.ietf.org/html/rfc6749). -* [OpenID Connect Discovery](https://tools.ietf.org/html/draft-ietf-oauth-discovery-06). -* SASL (Simple Authentication and Security Layer) as defined in [RFC4422](https://tools.ietf.org/html/rfc4422). +- User/Password. +- API key (either as user or as password). +- X.509 certificate. +- End-to-end encryption (either symmetric or asymmetric). +- HTTP authentication. +- HTTP API key. +- OAuth2's common flows (Implicit, Resource Owner Protected Credentials, Client Credentials and Authorization Code) as defined in [RFC6749](https://tools.ietf.org/html/rfc6749). +- [OpenID Connect Discovery](https://tools.ietf.org/html/draft-ietf-oauth-discovery-06). +- SASL (Simple Authentication and Security Layer) as defined in [RFC4422](https://tools.ietf.org/html/rfc4422). ##### Fixed Fields + Field Name | Type | Applies To | Description ---|:---:|---|--- type | `string` | Any | **REQUIRED**. The type of the security scheme. Valid values are `"userPassword"`, `"apiKey"`, `"X509"`, `"symmetricEncryption"`, `"asymmetricEncryption"`, `"httpApiKey"`, `"http"`, `"oauth2"`, `"openIdConnect"`, `"plain"`, `"scramSha256"`, `"scramSha512"`, and `"gssapi"`. @@ -2386,6 +2335,7 @@ type: scramSha512 Allows configuration of the supported OAuth Flows. ##### Fixed Fields + Field Name | Type | Description ---|:---:|--- implicit| [OAuth Flow Object](#oauthFlowObject) | Configuration for the OAuth Implicit flow. @@ -2400,6 +2350,7 @@ This object MAY be extended with [Specification Extensions](#specificationExtens Configuration details for a supported OAuth Flow ##### Fixed Fields + Field Name | Type | Applies To | Description ---|:---:|---|--- authorizationUrl | `string` | `oauth2` (`"implicit"`, `"authorizationCode"`) | **REQUIRED**. The authorization URL to be used for this flow. This MUST be in the form of an absolute URL. @@ -2508,11 +2459,11 @@ petstore_auth: ### Correlation ID Object -An object that specifies an identifier at design time that can used for message tracing and correlation. +An object that specifies an identifier at design time that can used for message tracing and correlation. For specifying and computing the location of a Correlation ID, a [runtime expression](#runtimeExpression) is used. -##### Fixed Fields +#### Fixed Fields Field Name | Type | Description ---|:---|--- @@ -2521,7 +2472,7 @@ location | `string` | **REQUIRED.** A [runtime expression](#runtimeExpression) t This object MAY be extended with [Specification Extensions](#specificationExtensions). -##### Examples +#### Examples ```json { @@ -2542,7 +2493,7 @@ This mechanism is used by [Correlation ID Object](#correlationIdObject). The runtime expression is defined by the following [ABNF](https://tools.ietf.org/html/rfc5234) syntax: -``` +```plaintext expression = ( "$message" "." source ) source = ( header-reference | payload-reference ) header-reference = "header" ["#" fragment] @@ -2552,7 +2503,7 @@ The runtime expression is defined by the following [ABNF](https://tools.ietf.org The table below provides examples of runtime expressions and examples of their use in a value: -##### Examples +#### Examples Source Location | Example expression | Notes ---|:---|:---| @@ -2584,7 +2535,6 @@ Tools that do not recognize a specific `format` MAY default back to the `type` a The formats defined by the AsyncAPI Specification are: - Common Name | `type` | [`format`](#dataTypeFormat) | Comments ----------- | ------ | -------- | -------- integer | `integer` | `int32` | signed 32 bits From ca429e60126ff5635d9deca05061a9cd1122ef39 Mon Sep 17 00:00:00 2001 From: Darren Dsouza <130863032+DarrenDsouza7273@users.noreply.github.com> Date: Tue, 29 Aug 2023 20:47:55 +0530 Subject: [PATCH 3/5] docs: add bronze sponsors (#964) --- README.md | 13 +++++++++++++ assets/ably.png | Bin 0 -> 19105 bytes assets/rviewer.png | Bin 0 -> 34837 bytes 3 files changed, 13 insertions(+) create mode 100644 assets/ably.png create mode 100644 assets/rviewer.png diff --git a/README.md b/README.md index c198d686..3fd00027 100644 --- a/README.md +++ b/README.md @@ -134,6 +134,19 @@ Check out the [examples](https://github.com/asyncapi/asyncapi/blob/master/exampl

+### Bronze + +

+ + + ably.png logo + +      + + rviewer.png logo + +      +

## Contributors diff --git a/assets/ably.png b/assets/ably.png new file mode 100644 index 0000000000000000000000000000000000000000..b451373d2414a8afcd553a370ed3224084c8241c GIT binary patch literal 19105 zcmXtfbyySZ_xHx=M!Hiz{26EL9WNC1E`zmlxfdmrFQn^V2fq9@gD#q^y8 zC&ynSH$|eK()d_I${(3_fCP)hQz(ViTDmOJ^azCk{BNNkgxDakv*|Ms00nk^5m!Lm z*BUC1#^=>?r4#uMj!KCn)RykH`cNx7)Jh=4vjJ#Iy<1-LKbgkbXwNzoFY%Y)34FTt zJ-V6_bf~lub8wRGtc3(`A7e8@|Ck|1qB`0v5ifg-SnWQ1InCbw@%MW@8_x3JQ&@Gr z_dO-WZBCj_(+mvyOJkkBp3y7&oU*7r!732DKNOGam!`(QgR7ChF|bjcbCTKdr?2R1 zu$k2{m6fon*)3)K{nsdLy%rO6;wDvRDrs_T0>o@VI( zon&8TAHMq|o3pg0pKr+$e*3HWLZf)*r0{VmLX=jFju3D!?~ZS83cPc$bK*+c&sO75 ztW7~pl!IQI{;|agx!VE7#4ZLPwH6@a2{6{(bzpC>otWU|RPdpLTo9Z0I|{NDpMJ`5 zNmttnzt)i2`D@v}?zCIzN&c)(4zI~=8{qFbNz}q5#h1Jkd#^$o$)FJrHFkeD|DPgi zZeN6^DLKoDenoc^pB0Y6+e_V4LAu2`ubO7t+H^Nn-CzeSh|rW|&JSX|3_V^>LeM@y z{$pJn-zkDDFoJCOpXBu%2v9coHadL0%wQ&17Hxvd&o@_s?g)tKmU(i)lcdehQ~MI; z9CCL>-*DDgYUDf0FJAp_r>P>Fr?-R(xPbl>yhB_8&wHDWST0)VP5q z?>(~29D)qqn9Y-K+c=vPg@(@WZuvU6uS1^|q(l;V5i4#pdC{^6G2KR<_Y9E!K)*~Q z#Qu-D@64ExHxLPLul|LVc6c70gNp?yD=Mz>KC2j|2W?^~xXF=QH2UJsN1S&Vs+U5_ zicfu)?SPY)hLBC9coxf3%vO_^muHr(Ndf-w*-OX7bpE_VUMyt`rnCo?cBesX3}zcG zRIqgUmouyuO6!BRv~)P`=|XY`<|g(;*J-fsdU^%;#ZO0fnsXG8 zELUGNIHOz3aJ(MzHc&$k{Q2eF$hrco&9#jAel$?a24RYAjVI$n%#|@6T94$ULMXy)ys{AYgz6_n8+jnEjFxgm^|Y@OVDaOa45 z#R-8jjtAs>N?E&e7VHBfVG6SZvK|jA%vuZHkd!tt#D@Z>vm#QZA&!%Kp6Tj!yomGHAD97ZRz8Gd)Ax;@@M?+nJAUf4RqU-h#6a`8 z?`b+;q*=*hsbtuYFk!L!M}S<_F>O0MqkppIXT}77j)4UZuebV%%Uwpk?~q+>VXvM? z(=Z56L@2$@89@D0`gAM#mmte<}KrpNYz141UjOhGA1aMN#@s_i-8&V9d7F zcZR8lhj_z}UoCMNf>OBeg*&LaFPKUh{cTaNWtQnka4e73nKk|mS z6QP;xRZh`0|084kLI!~Uj1x<{f`$i+MHX(UNcg&dUEzp@3RT%mhYiS2cgJ2#Zf<4vJA ztqnQz*rLTuxjFq5kTa(>S8SCTiZCRujs(&rKpV(TzoO(MV$j!5*8uTf@Td^x*D#BP zFN^F}=9b+Sr&d!TGV?8@%tGDJ`sz3R9RE5g;AP?S`}_L@`78!(|B=etPtcDSXaO=% z2S7R0q*zHM1H6Zw^l6+6^URPsbtN&38z}y=Fm|BD*Kp8J&EVS+|-mKeOHL>;KuBlY71yk-@!d$pH|1 z(KHDWx}(Kfk1?VtAvx?wA3my

LU)`NQ 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 literal 0 HcmV?d00001 diff --git a/assets/rviewer.png b/assets/rviewer.png new file mode 100644 index 0000000000000000000000000000000000000000..28c4979cd73b875e6e0c418fffabf0bd66ce0689 GIT binary patch literal 34837 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 literal 0 HcmV?d00001 From 10ffb4636b45f2a5d7fbc866dda1e13db3a9c283 Mon Sep 17 00:00:00 2001 From: Lorna Jane Mitchell Date: Wed, 6 Sep 2023 17:06:40 +0100 Subject: [PATCH 4/5] chore: fix header format in gitter example (#965) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fran Méndez --- examples/gitter-streaming.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/examples/gitter-streaming.yml b/examples/gitter-streaming.yml index 444bc9b8..b1dd57b2 100644 --- a/examples/gitter-streaming.yml +++ b/examples/gitter-streaming.yml @@ -160,5 +160,9 @@ components: streamingHeaders: http: headers: - 'Transfer-Encoding': 'chunked' - Trailer: '\r\n' + type: object + properties: + 'Transfer-Encoding': + const: 'chunked' + Trailer: + const: '\r\n' From a4ac4e7d846f08918cbfd4d670b8e20848dbf835 Mon Sep 17 00:00:00 2001 From: Darren Dsouza <130863032+DarrenDsouza7273@users.noreply.github.com> Date: Wed, 27 Sep 2023 22:56:59 +0530 Subject: [PATCH 5/5] chore: add swix as the new silver sponsor (#974) --- README.md | 8 ++++---- assets/swix.png | Bin 0 -> 52944 bytes 2 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 assets/swix.png diff --git a/README.md b/README.md index 3fd00027..f3b7d84b 100644 --- a/README.md +++ b/README.md @@ -102,10 +102,6 @@ Check out the [examples](https://github.com/asyncapi/asyncapi/blob/master/exampl IBM logo      - - IQVIA logo - -      Postman logo @@ -131,6 +127,10 @@ Check out the [examples](https://github.com/asyncapi/asyncapi/blob/master/exampl Bump.sh logo      + + swix logo + +     

diff --git a/assets/swix.png b/assets/swix.png new file mode 100644 index 0000000000000000000000000000000000000000..88325e9dd97bcce6a7791f81dfd6c50e895a8967 GIT binary patch literal 52944 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

-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%0D%vqyU=GpmgYc1D; zvf>GERC%sTdr07|7%DKTJ+qS<+nva{Ii3wmunzK6<&6bC68<8U6}cjT&n>jK_qTqe~My*-KBy z38^mVqsCLZew8T1@J3c24ySL#-klR>L@!+C!)!qvQ;nXMO>?YEU3jv!8^TO%@K$3j zRi$OEq(((6`gU7iX`0WPGi$_*PY)>uZY*bG99$H$<-1vTadf{TgnO%=U#PrH?@=4P z{MqI2=E;rOTZI}4<5TX5(vyRp6G4}cl`mjkzB8XO;CcIQU;+gLCW5Jh#y+b2P8IK1|49~wk{KX$|by93BMPNKRP!w zq}4FA?W@F4OwfJrb2Jtfa=PpCC=tjTvm1^itc&`uxq|&2O!7OoDh(@Z0dvG`IA4|X z;VTcj6KTTCFP<%sMO7=WT$FXTs&D@_SFe3|P+>?{VP<8u^r6<}iMGI-r#s%6IG&v| zDNW)+9~Pfd6+=+7a$_^b77;}k|xqC`Gs`2_3qj$F`sjM=ZooH0z9+A9MLI`{{Q zm#5s7bvajFcaxE&*dC*eJo-+UM=)?d?`}=2s8vCXd)K0O%7@yH4ZNQY>LS|5tSAF3(%Oq~{TlVxgAd-i-Ac7@)kFKbQk*itFX63L z#Bv(7zOI4Yc^#&;Oz3WhihI%B#RyZpYO+qSG2S9NT31yNE&FY7FjC7_ZeKcKXhL^0 zb=vzyvDQD;CjJJhj|P__q=@&mqDJ2v|8337*pijh>L$svHgu-jplqvX$ouvo0~QY4 z-qVO3eaB6-V1OaJ#xm=WJ^kwq^vkywdribP9&?v z^l;lJBoXS5J(=+WL-Gl)RsgU{2FZ(pDQ3Cz95wzvxpNQjGnl&$Ls8kPxOEEozvcwR z;mh`bi4rp2vze!`t|$^zPaTS7N98(-#{=z85uKb#?}Y=A4tgT zu5t2l(;Sh=)mx8_g*kXIEOD0*LirLfhPSL%v(;Iw;BSsJnN2N9FDCiXxv8N>d;L2t zPTqcvwH2Ka5b+>^EIXSvj4cv=in$K~W5Qb-3$l>kPOD_K8bvpaaf_a>zfW|-GUtQz z_b%7a=sFA$W>CozS)4H&!y6;X6q=8sgXe|tOG1YgDwMRsY3GtIvCPlMoaXOqWKJwh zYgay%$6wiw-`UlH5nDA&j>w$8PII4+!GI{0-nAE}9I8My)tmh>!9f9v2`joF&6S~| z(0^2mGq)!MYF+@V!>N--L3DK2^x;YKF=#fhWS^|wYFniS2uVHc^!8RA8`AY!WXtF1 z-MtLOhd&@bx6%Bjcwk%d4WH%^D{n;`ovtW+354)X7F3$HNfP_qNkhSw48^<<2WNzQ zGgRB$w`OMv6&HT8i!dT~{8UNbDw`U#TVrLqK69zpvP{e@IB;YoahFPnko9jCDxsrT zJxi25hij4FLCZL?<##%wEL8auDk4H2NAb1Q@G@r!GQJ!&*qea9nW-m|puFGo_eljkjI)qAAxfqgN9(4L5t z!17==7|zUurNB*kfVv7VQZwT(o?5oAL~J4}+S;32$tNDtFI(`fTTJAu?m9ep^JM;v zdmM{5-Fg~@JMsm7hE!5LVruwo${9@zkn{WJlNa-{cR4M)H=9DF z^}|PUm!wRajmj)yhJ0ccv;K&6VaIE5FN^aW(O%=Jhq^wJ;xv0&dX35__NIo1t8I#F zkUffoB4(@O<5YADEq(|He^4R*Cs$j>;%UeCuLUy`Lp6XOb4;sEUvlc+>A|3Cb8=JY za)&~QFr2<6m%5xc+Q)m;c6siqiNO{ILRzVH+qEW#qWIL$EP+x?-M2>Nz@{n5>6v>$ zh?oGR92Is^R{V&Ph(Km@3BThzDDB`S`H)v_hTi1;?PNMztDtUCw$|S;>DsHOg#Q_` zzPi62j_$DE^qi|%+@(3v4f0+T;MmC222O(}ZvEDaHxiEROrh@Ys^2s<_~wHVEAvfu zmcvbtfq_k1gAGbySK!0bb}uV5(Oi?CGKsY?*?ekg6;zl@_1`L@08uiq7>v% zf~8dIGuEHb>t@Yx0>HSz+*ekeu&TEXF81||NdY*f}0jP)|lY8Ell6Wi5{y5ZZ2Lts|pTEFuG>fdo!33^+w zKvn|r^_g(p(_Ry@n0?het|wHI6LB*~2loh(kp9}LUT*x}FG%1s!N0T|DbI2W+o+pt zOIW-Nq#ZbogiP%e2LhFcTBw(5>=~B00IjUP#E%GVrFt(fq&Ot`*_v*G66ppFzqnTI zZ78gVR}00ouFfWTDRI%=cE7Bp3au&~4){+MxuC&FYNyvOLhioMP`lWij1(}3@MTu< z8^XFO=2vm9bGSN*XA@k!j7v~#7uT{e`@C}=_+-g1H)*@|hmlM$vYl9g}# z!N%o>MH9>D;E$I|{e^m&RIU~-ia=2r;8&Aib9btO)-J;ZK)D6tZzc*&54iD|5dW3g z`p!@u8Qsb;gu!gEgZowK7ng`#X)1V<|I>Uf265?0RI7yOo4F|{Z%_ZpUj}@tpc3+S zr$#(JBo{xv4QQsGBO|-yHrLONn@ryySW=t&r5Ov`h~=^9|R!Gf*#~ zHhBl}pE2jBxO8I8HRZtDL^oTxU~X4ln?i)@>iC+JNkK(w=l3e)498j}m|N2!(k9&f z|Nq|3QP|a98De2Xt66FSYRgCpA-6~&bu_62ntMb6YxfkS#BTw2p138!v0o^;q zkPNvtr@eI_e0IBKe1@^2t(93QZ7cp5{S@pSWq*ShTAXW#+)skx$UQ*v@y#%Hw6(k= zsP^F(+;UPBNAxikCRlA5@X0RIv1F#1M^rlBENK4buDlz*e*zGj5vk1B+08(sq@9f$ zIl($GnA~Lz*qSuOG>+_zh%UsL^w}SB?)sa?$p2MHy#2y0e@QNSa{U?9a^~*D7KQ2TVe&K9RcA|1^ei{(fouRX=N;XgGd!_nfnbyPoU8 zS3Ja`ARP~GS-Rx>y}G`>SIw@BvMTQn`@lj8NQxehr!8Pb(f!wKjau4_GUvN!v?X)gC3SEEa!dQ=`zm*hP2Gzc>GS^3RWx{lCNSOG#KeyQ5ve z`dhy#tGNFsT1AkL(Zuv6ryovVg>*Mh0P9Tr-{$BT zih*($|EUPJ8CVW5rFKLcj{QL@cj~malpXD+=ppt%Q#|9hWQ=%Cq$^LrtyGmg-E(SL zwv0Hi+MhN~;h3W&wblmwD{9rgD-zWI#H3?f&tqq*P|MEJS6E)wsDi-FC$~`cj zS(1`kQw0~B7J$b8>y&OG=U~7@d%;#pYKyH4yMRgR$JR)cPIYmO05BJhSfhIr$3vo| zn(K)akYu#~=HUr&z6C*TN_wemD|!;a79*!ozKUhmqf+*@H{plzH;LV?R(>8=4mEd_ zB8VrDK9qBT-fJjAh*KP>aQd)W?MnWLy>PEToIw)G-;i~NENc}#9y>iPd*#QlQJ)LA z;D-N+;x{cWF(J|7snHO|_3fbiF?yV3peY+xczttsCD=5@(%G?}BKyVl((k9oYb_ik z(=lf`VAFP+=Lk0n3F&bw=0F>MVgP|4eSX7JzkpAUnS)R?jPQJ_fWS%n>?idscl=WU zSk({R!`(KE1ioUk0bjS;>&N(SjT`EZSjPQNh$tKc5n2+dBTopF literal 0 HcmV?d00001