diff --git a/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-sse-streaming-api.md b/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-sse-streaming-api.md index b404e47126..5f9a58b47f 100644 --- a/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-sse-streaming-api.md +++ b/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-sse-streaming-api.md @@ -110,31 +110,50 @@ Follow the instructions below to create the API using the basic flow. ### Step 2 - Configure the Topics -Topics of an SSE API are always **Subscribe only**, where the flow of events will be from the server (backend) to the client. By default, an SSE API will have a topic with the name `/*`. +Topics of a SSE API are always **Receive only**, where the flow of events will be from the server (backend) to the client. 1. Click **Topics** under **API Configurations** to navigate to the **Topics** page. -2. Modify the topics as follows and click **Save** to update them. +2. By default, the newly created SSE API will have a topic with the name `/*`. - 1. Optionally, click delete, as shown below, to delete an existing topic. + SSE API Topics Page - SSE API Delete Existing Topic +3. This default channel `/*` will have a default operation `receive_/*`. - 2. Select **sub** under **Types**, enter the **Topic Name**, and click **+** as shown below, to add a new topic. + SSE API Channel Operations - SSE API Add Topic +4. Modify the topics as follows and click **Save** to update them. - The newly added topic is displayed as follows. + 1. Optionally, click delete as shown below, to delete an existing topic or an operation. - SSE API Newly Added Topic + SSE API Delete Existing Topic + + 2. Select **receive** under **Types**, enter the **Address** of the channel to be created, enter the **Operation Name** to be added to the selected channel, and click **+** as shown below, to add a new topic. + + SSE API Add Topic + + The newly added topic is displayed as follows. Expand the topic to view the newly added operation. + + SSE API Newly Added Topic + + 3. You can also add a new operation to an existing topic by selecting the respective channel address from the dropdown. + + SSE API Add Operation + + Expand the topic to view the newly added operation. + + SSE API Newly Added Operation ### Step 3 - View the AsyncAPI Definition Click **AsyncAPI Definition** under **API Configurations**. +!!! note + The API definition will be generated in AsyncAPI V3.0.0. + The AsyncAPI definition of the streaming API, which you just created, appears. -SSE API AsyncAPI Definition +SSE API AsyncAPI Definition ### Step 4 - Configure the Runtime Configurations diff --git a/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-streaming-api-from-an-asyncapi-definition.md b/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-streaming-api-from-an-asyncapi-definition.md index 505a72262e..660f48b05c 100644 --- a/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-streaming-api-from-an-asyncapi-definition.md +++ b/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-streaming-api-from-an-asyncapi-definition.md @@ -29,15 +29,19 @@ Follow the instructions below to create a Streaming API using an AsyncAPI defini * **AsyncAPI URL** - If you select this option, you need to provide a URL. * **AsyncAPI File** - If you select this option, click **Browse File to Upload** and upload a file, which contains an AsyncAPI definition. -3. Select the way in which you are going to import the AsynAPI definition, and click **Next**. - - For this example, let's select **AsyncAPI URL**, provide the following URL, and click **Next**. +3. Select the way in which you are going to import the AsyncAPI definition, and click **Next**. - ```sh - https://raw.githubusercontent.com/asyncapi/spec/v2.0.0/examples/2.0.0/streetlights.yml - ``` +
+

Note

+

AsyncAPI import now supports both AsyncAPI v2.x and AsyncAPI v3.0 definitions.

+
+ + + For this example, let's select **AsyncAPI File**, upload the following file, and click **Next**. - Import Websocket Streaming API from AsyncAPI URL + [Download AsyncAPI V3 file]({{base_path}}/assets/attachments/103332601/streetlights_v3-def.yml) + + Import Websocket Streaming API from AsyncAPI File 4. Edit the Streaming API information and click **Create**. @@ -67,19 +71,25 @@ Follow the instructions below to create a Streaming API using an AsyncAPI defini Click **Topics** to navigate to the topics page. -[![AsyncAPI topics]({{base_path}}/assets/img/design/create-api/streaming-api/websocket-streaming-api-from-asyncapi-topics.png)]({{base_path}}/assets/img/design/create-api/streaming-api/websocket-streaming-api-from-asyncapi-topics.png) +[![AsyncAPI topics]({{base_path}}/assets/img/design/create-api/streaming-api/asyncv3-topics.png)]({{base_path}}/assets/img/design/create-api/streaming-api/asyncv3-topics.png) You will notice that the topics have been created automatically from the AsyncAPI definition specified in the provided URL. +[![AsyncAPI operations]({{base_path}}/assets/img/design/create-api/streaming-api/asyncv3-operations.png)]({{base_path}}/assets/img/design/create-api/streaming-api/asyncv3-operations.png) + +Expand each topic to view the operations which are automatically created for each channel, as defined in the specification. + ## Step 3 - View the AsyncAPI Definition Click **AsyncAPI Definition** under **API Configurations**. The AsyncAPI definition of the streaming API, which you just created, appears. - WebSocket API AsyncAPI Definition + WebSocket API AsyncAPI Definition + +Now, you have successfully created a Streaming API from an Async API Definition. -Now, you have successfully created a Streaming API from an Async API Definition. +If you have created the streaming API using an AsyncAPI v2.x definition, see [AsyncAPI v2.x for APIM 4.6.0](https://apim.docs.wso2.com/en/latest/api-design-manage/design/create-api/create-streaming-api/create-a-streaming-api-from-an-asyncapi-definition/). Next, publish the API, for more information, see [Publish an API]({{base_path}}/deploy-and-publish/publish-on-dev-portal/publish-an-api). diff --git a/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-websocket-streaming-api.md b/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-websocket-streaming-api.md index 47cb623d4f..cc9b790a55 100644 --- a/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-websocket-streaming-api.md +++ b/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-websocket-streaming-api.md @@ -129,44 +129,66 @@ Follow the instructions below to create a WebSocket API using the basic flow: ### Step 2 - Configure the Topics -Topics of a WebSocket API are always **Subscribe (sub) and Publish (pub)**, where the flow of events can be either from the server (backend) to the clients or from the client to the server. By default, the WebSocket API will have a topic with the name `/*`. +Topics of a WebSocket API represents the channels which support actions **Receive and Send**, where the flow of events can be either from the server (backend) to the clients or from the client to the server. 1. Click **Topics** under **API Configurations** and navigate to the **Topics** page. + +2. By default, the newly created WebSocket API will have a topic with the name `/*`. -2. Modify the topics as follows and click **Save** to update them. + WebSocket API Topics Page - 1. Optionally, click delete as shown below, to delete an existing topic. +3. This default channel `/*` will have two default operations `send_/*` and `receive_/*` and are listed inside the respective action of the channel. - WebSocket API Delete Topic + WebSocket API Channel Operations - 2. Select the **Types**, enter the **Topic Name**, and click **+** as shown below, to add a new topic. +4. Modify the topics as follows and click **Save** to update them. -
Topic Name/notifications
+ 1. Optionally, click delete as shown below, to delete an existing topic or an operation. - WebSocket API Add Topic + WebSocket API Delete Topic - The newly added topic is displayed as follows. + 2. Select a **Type**, enter the **Address** of the channel to be created, enter the **Operation Name** to be added to the selected channel, and click **+** as shown below, to add a new topic. - WebSocket API Newly Added Topic + + + +
Channel Address/notifications
Operation NamesendNotifications
- 3. Optionally, provide a URL Mapping to the topic. + WebSocket API Add Channel + + The newly added topic is displayed as follows. Expand the topic to view the newly added operation. + + WebSocket API Newly Added Topic + + 3. You can also add a new operation to an existing topic by selecting the respective channel address from the dropdown. + + WebSocket API Add Operation + + Expand the topic to view the newly added operation. + + WebSocket API Newly Added Operation + + 4. Optionally, provide a URL Mapping to the topic. The provided URL Mapping will be appended to the WebSocket endpoint URL that you provided when creating the API, and the traffic via this topic will be sent to the resulting URL. - Expand **both** PUB and SUB under the created topic, provide the same URL Mapping for both and click **Save**. + Expand **both** SEND and RECEIVE under the created topic, provide the same URL Mapping for both and click **Save**.
Description Chat room notifications
URL Mapping /notifications
- WebSocket API Topic URL Mapping + WebSocket API Topic URL Mapping ### Step 3 - View the AsyncAPI Definition Click **AsyncAPI Definition** under **API Configurations**. +!!! note + The API definition will be generated in AsyncAPI V3.0.0. + The AsyncAPI definition of the streaming API, which you just created, appears. - WebSocket API AsyncAPI Definition + WebSocket API AsyncAPI Definition ### Step 4 - Configure the Runtime Configurations diff --git a/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-websub-streaming-api.md b/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-websub-streaming-api.md index e8c599ce5d..4f1631c90f 100644 --- a/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-websub-streaming-api.md +++ b/en/docs/api-design-manage/design/create-api/create-streaming-api/create-a-websub-streaming-api.md @@ -73,33 +73,52 @@ Follow the instructions below to create a WebHook API using the basic flow: ### Step 2 - Configure the Topics -Topics of a WebSub/Webhook API are always **Subscribe only**. By default, a WebSub/Webhook API will have a topic with the name `_default`. +Topics of a WebSub/Webhook API are always **Receive only**. 1. Click **Topics** under **API Configurations** to navigate to the **Topics** page. -2. Modify the topics as follows and click **Save** to update them. +2. By default, the newly created WebSub/Webhook API will have a topic with the name `_default`. - 1. Optionally, click delete, as shown below, to delete an existing topic. + websub API Topics Page - WebSub API Delete Existing Topic +3. This default channel `_default` will have a default operation `receive__edfault`. - 2. Select **sub** under **Types**, enter the **Topic Name**, and click **+** as shown below, to add a new topic. + websub API Channel Operations - WebSub API Add Topic +4. Modify the topics as follows and click **Save** to update them. - The newly added topic is displayed as follows. + 1. Optionally, click delete as shown below, to delete an existing topic or an operation. - WebSub API Newly Added Topic + WebSub API Delete Existing Topic + + 2. Select **receive** under **Types**, enter the **Address** of the channel to be created, enter the **Operation Name** to be added to the selected channel, and click **+** as shown below, to add a new topic. + + WebSub API Add Topic + + The newly added topic is displayed as follows. Expand the topic to view the newly added operation. + + WebSub API Newly Added Topic Expand the created topic to view its **Callback URL**. You can use this when registering the topic with a WebHook provider (WebSub Provider). + 3. You can also add a new operation to an existing topic by selecting the respective channel address from the dropdown. + + WebSub API Add Operation + + Expand the topic to view the newly added operation. + + WebSub API Newly Added Operation + ### Step 3 - View the AsyncAPI Definition Click **AsyncAPI Definition** under **API Configurations**. +!!! note + The API definition will be generated in AsyncAPI V3.0.0. + The AsyncAPI definition of the streaming API, which you just created, appears. - WebHook API AsyncAPI Definition + WebHook API AsyncAPI Definition ### Step 4 - Configure the Runtime Configurations diff --git a/en/docs/api-developer-portal/invoke-apis/invoke-apis-using-tools/invoke-an-api-using-a-soap-client.md b/en/docs/api-developer-portal/invoke-apis/invoke-apis-using-tools/invoke-an-api-using-a-soap-client.md index e9d9952e65..073dade2f9 100644 --- a/en/docs/api-developer-portal/invoke-apis/invoke-apis-using-tools/invoke-an-api-using-a-soap-client.md +++ b/en/docs/api-developer-portal/invoke-apis/invoke-apis-using-tools/invoke-an-api-using-a-soap-client.md @@ -27,10 +27,15 @@ Let's invoke the `PhoneVerification` API using a SOAP client. [![Create new SOAP UI Project]({{base_path}}/assets/attachments/103332601/soap-ui-new-project.png)]({{base_path}}/assets/attachments/103332601/soap-ui-new-project.png) -8. Give your API's WSDL and click **OK**. - In this case, the WSDL is as follows: - - [![SOAP UI New Project Window]({{base_path}}/assets/attachments/103332601/soap-ui-project-wizard.png)]({{base_path}}/assets/attachments/103332601/soap-ui-project-wizard.png) +8. Give your API's WSDL and click **OK**. You have two ways to provide the WSDL; + + 1. Directly enter the WSDL URL which is + + [![SOAP UI New Project Window]({{base_path}}/assets/attachments/103332601/soap-ui-project-wizard.png)]({{base_path}}/assets/attachments/103332601/soap-ui-project-wizard.png) + + 2. If your SOAP API is created from a single WSDL and in published state, you can go to the Developer Portal, navigate to your API, and copy the WSDL URL from the Overview page. Please note that this generated WSDL URL will get expired in 15 minutes if the API has restricted visibility. + + [![SOAP API Overview]({{base_path}}/assets/attachments/103332601/wsdl-url.png)]({{base_path}}/assets/attachments/103332601/wsdl-url.png) 9. The WSDL defines two operations. Let's work with `CheckPhoneNumber`. Double click on `Request 1`. Then, click the **Header** tab and add an authorization header to your request by clicking on the add icon. diff --git a/en/docs/assets/attachments/103332601/asyncv3-def-view.png b/en/docs/assets/attachments/103332601/asyncv3-def-view.png new file mode 100644 index 0000000000..92c1c83d03 Binary files /dev/null and b/en/docs/assets/attachments/103332601/asyncv3-def-view.png differ diff --git a/en/docs/assets/attachments/103332601/asyncv3-file.png b/en/docs/assets/attachments/103332601/asyncv3-file.png new file mode 100644 index 0000000000..9fcb5efbc3 Binary files /dev/null and b/en/docs/assets/attachments/103332601/asyncv3-file.png differ diff --git a/en/docs/assets/attachments/103332601/asyncv3-topics-page.png b/en/docs/assets/attachments/103332601/asyncv3-topics-page.png new file mode 100644 index 0000000000..557e42423a Binary files /dev/null and b/en/docs/assets/attachments/103332601/asyncv3-topics-page.png differ diff --git a/en/docs/assets/attachments/103332601/streetlights_v3-def.yml b/en/docs/assets/attachments/103332601/streetlights_v3-def.yml new file mode 100644 index 0000000000..5ef6988733 --- /dev/null +++ b/en/docs/assets/attachments/103332601/streetlights_v3-def.yml @@ -0,0 +1,252 @@ +asyncapi: 3.0.0 +info: + title: Streetlights API + version: 1.0.0 + description: "The Smartylighting Streetlights API allows you to remotely manage the city lights.\n\n### Check out its awesome features:\n\n* Turn a specific streetlight on/off \U0001F303\n* Dim a specific streetlight \U0001F60E\n* Receive real-time information about environmental lighting conditions \U0001F4C8\n" + license: + name: Apache 2.0 + url: 'https://www.apache.org/licenses/LICENSE-2.0' +defaultContentType: application/json +servers: + production: + host: 'test.mosquitto.org:{port}' + protocol: mqtt + description: Test broker + variables: + port: + description: Secure connection (TLS) is available through port 8883. + default: '1883' + enum: + - '1883' + - '8883' + security: + - $ref: '#/components/securitySchemes/apiKey' + - type: oauth2 + description: Flows to support OAuth 2.0 + flows: + implicit: + authorizationUrl: 'https://authserver.example/auth' + availableScopes: + 'streetlights:on': Ability to switch lights on + 'streetlights:off': Ability to switch lights off + 'streetlights:dim': Ability to dim the lights + password: + tokenUrl: 'https://authserver.example/token' + availableScopes: + 'streetlights:on': Ability to switch lights on + 'streetlights:off': Ability to switch lights off + 'streetlights:dim': Ability to dim the lights + clientCredentials: + tokenUrl: 'https://authserver.example/token' + availableScopes: + 'streetlights:on': Ability to switch lights on + 'streetlights:off': Ability to switch lights off + 'streetlights:dim': Ability to dim the lights + authorizationCode: + authorizationUrl: 'https://authserver.example/auth' + tokenUrl: 'https://authserver.example/token' + refreshUrl: 'https://authserver.example/refresh' + availableScopes: + 'streetlights:on': Ability to switch lights on + 'streetlights:off': Ability to switch lights off + 'streetlights:dim': Ability to dim the lights + scopes: + - 'streetlights:on' + - 'streetlights:off' + - 'streetlights:dim' + - $ref: '#/components/securitySchemes/openIdConnectWellKnown' +channels: + measured: + address: 'smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured' + messages: + receiveLightMeasurement.message: + $ref: '#/components/messages/lightMeasured' + description: The topic on which measured values may be produced and consumed. + parameters: + streetlightId: + $ref: '#/components/parameters/streetlightId' + + turnon: + address: 'smartylighting/streetlights/1/0/action/{streetlightId}/turn/on' + messages: + turnOn.message: + $ref: '#/components/messages/turnOnOff' + parameters: + streetlightId: + $ref: '#/components/parameters/streetlightId' + + turnoff: + address: 'smartylighting/streetlights/1/0/action/{streetlightId}/turn/off' + messages: + turnOff.message: + $ref: '#/components/messages/turnOnOff' + parameters: + streetlightId: + $ref: '#/components/parameters/streetlightId' + + dim: + address: 'smartylighting/streetlights/1/0/action/{streetlightId}/dim' + messages: + dimLight.message: + $ref: '#/components/messages/dimLight' + parameters: + streetlightId: + $ref: '#/components/parameters/streetlightId' + +operations: + receiveLightMeasurement: + action: receive + channel: + $ref: '#/channels/measured' + summary: > + Inform about environmental lighting conditions of a particular streetlight. + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/channels/measured/messages/receiveLightMeasurement.message' + + turnOn: + action: send + channel: + $ref: '#/channels/turnon' + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/channels/turnon/messages/turnOn.message' + + turnOff: + action: send + channel: + $ref: '#/channels/turnoff' + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/channels/turnoff/messages/turnOff.message' + + dimLight: + action: send + channel: + $ref: '#/channels/dim' + traits: + - $ref: '#/components/operationTraits/kafka' + messages: + - $ref: '#/channels/dim/messages/dimLight.message' +components: + messages: + lightMeasured: + name: lightMeasured + title: Light measured + summary: >- + Inform about environmental lighting conditions of a particular + streetlight. + contentType: application/json + traits: + - $ref: '#/components/messageTraits/commonHeaders' + payload: + $ref: '#/components/schemas/lightMeasuredPayload' + turnOnOff: + name: turnOnOff + title: Turn on/off + summary: Command a particular streetlight to turn the lights on or off. + traits: + - $ref: '#/components/messageTraits/commonHeaders' + payload: + $ref: '#/components/schemas/turnOnOffPayload' + dimLight: + name: dimLight + title: Dim light + summary: Command a particular streetlight to dim the lights. + traits: + - $ref: '#/components/messageTraits/commonHeaders' + payload: + $ref: '#/components/schemas/dimLightPayload' + schemas: + lightMeasuredPayload: + type: object + properties: + lumens: + type: integer + minimum: 0 + description: Light intensity measured in lumens. + sentAt: + $ref: '#/components/schemas/sentAt' + turnOnOffPayload: + type: object + properties: + command: + type: string + enum: + - 'on' + - 'off' + description: Whether to turn on or off the light. + sentAt: + $ref: '#/components/schemas/sentAt' + dimLightPayload: + type: object + properties: + percentage: + type: integer + description: Percentage to which the light should be dimmed to. + minimum: 0 + maximum: 100 + sentAt: + $ref: '#/components/schemas/sentAt' + sentAt: + type: string + format: date-time + description: Date and time when the message was sent. + securitySchemes: + apiKey: + type: apiKey + in: user + description: Provide your API key as the user and leave the password empty. + supportedOauthFlows: + type: oauth2 + description: Flows to support OAuth 2.0 + flows: + implicit: + authorizationUrl: 'https://authserver.example/auth' + availableScopes: + 'streetlights:on': Ability to switch lights on + 'streetlights:off': Ability to switch lights off + 'streetlights:dim': Ability to dim the lights + password: + tokenUrl: 'https://authserver.example/token' + availableScopes: + 'streetlights:on': Ability to switch lights on + 'streetlights:off': Ability to switch lights off + 'streetlights:dim': Ability to dim the lights + clientCredentials: + tokenUrl: 'https://authserver.example/token' + availableScopes: + 'streetlights:on': Ability to switch lights on + 'streetlights:off': Ability to switch lights off + 'streetlights:dim': Ability to dim the lights + authorizationCode: + authorizationUrl: 'https://authserver.example/auth' + tokenUrl: 'https://authserver.example/token' + refreshUrl: 'https://authserver.example/refresh' + availableScopes: + 'streetlights:on': Ability to switch lights on + 'streetlights:off': Ability to switch lights off + 'streetlights:dim': Ability to dim the lights + openIdConnectWellKnown: + type: openIdConnect + openIdConnectUrl: 'https://authserver.example/.well-known' + parameters: + streetlightId: + description: The ID of the streetlight. + messageTraits: + commonHeaders: + headers: + type: object + properties: + my-app-header: + type: integer + minimum: 0 + maximum: 100 + operationTraits: + kafka: + bindings: + kafka: + clientId: my-app-id diff --git a/en/docs/assets/attachments/103332601/wsdl-url.png b/en/docs/assets/attachments/103332601/wsdl-url.png new file mode 100644 index 0000000000..f95d6e43a7 Binary files /dev/null and b/en/docs/assets/attachments/103332601/wsdl-url.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/asyncv3-operations.png b/en/docs/assets/img/design/create-api/streaming-api/asyncv3-operations.png new file mode 100644 index 0000000000..8dcd165258 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/asyncv3-operations.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/asyncv3-topics.png b/en/docs/assets/img/design/create-api/streaming-api/asyncv3-topics.png new file mode 100644 index 0000000000..a105c2aa9b Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/asyncv3-topics.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-add-operation.png b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-add-operation.png new file mode 100644 index 0000000000..1aca9a7cf9 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-add-operation.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-asyncapi.png b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-asyncapi.png new file mode 100644 index 0000000000..02e2770442 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-asyncapi.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-create-new-topic.png b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-create-new-topic.png new file mode 100644 index 0000000000..996d1a39e9 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-create-new-topic.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-delete-default-topic.png b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-delete-default-topic.png new file mode 100644 index 0000000000..5709366013 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-delete-default-topic.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-new-operation.png b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-new-operation.png new file mode 100644 index 0000000000..e9ffedf29a Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-new-operation.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-newly-added-topic.png b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-newly-added-topic.png new file mode 100644 index 0000000000..180079b291 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-newly-added-topic.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-operation.png b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-operation.png new file mode 100644 index 0000000000..4d6e4f0f0e Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-operation.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-topics.png b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-topics.png new file mode 100644 index 0000000000..aebac2c460 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/sse-api-v3-topics.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-add-channel.png b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-add-channel.png new file mode 100644 index 0000000000..093892ce52 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-add-channel.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-add-operation.png b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-add-operation.png new file mode 100644 index 0000000000..5868a76fc3 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-add-operation.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-asyncapi.png b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-asyncapi.png new file mode 100644 index 0000000000..0c1369c9a5 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-asyncapi.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-delete-topic-operation.png b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-delete-topic-operation.png new file mode 100644 index 0000000000..e7de136b89 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-delete-topic-operation.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-new-channel.png b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-new-channel.png new file mode 100644 index 0000000000..29e85127f8 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-new-channel.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-new-operation.png b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-new-operation.png new file mode 100644 index 0000000000..4bbf082dc9 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-new-operation.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-operation.png b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-operation.png new file mode 100644 index 0000000000..d26c006fec Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-operation.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-topics.png b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-topics.png new file mode 100644 index 0000000000..18ec8b41dd Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websocket-streaming-api-v3-topics.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-add-operation.png b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-add-operation.png new file mode 100644 index 0000000000..b9779774d5 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-add-operation.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-add-topic.png b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-add-topic.png new file mode 100644 index 0000000000..1043ab986a Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-add-topic.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-asyncapi.png b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-asyncapi.png new file mode 100644 index 0000000000..1069904d67 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-asyncapi.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-delete-topic.png b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-delete-topic.png new file mode 100644 index 0000000000..9629e6ca75 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-delete-topic.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-new-operation.png b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-new-operation.png new file mode 100644 index 0000000000..290c868af2 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-new-operation.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-newly-added-topic.png b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-newly-added-topic.png new file mode 100644 index 0000000000..7a7ee3ab7a Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-newly-added-topic.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-operation.png b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-operation.png new file mode 100644 index 0000000000..2381838f20 Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-operation.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-topics.png b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-topics.png new file mode 100644 index 0000000000..06ea03b04e Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/websub-api-v3-topics.png differ diff --git a/en/docs/assets/img/design/create-api/streaming-api/wesocket-streaming-api-v3-add-topic-url-mapping.png b/en/docs/assets/img/design/create-api/streaming-api/wesocket-streaming-api-v3-add-topic-url-mapping.png new file mode 100644 index 0000000000..8c73af1afd Binary files /dev/null and b/en/docs/assets/img/design/create-api/streaming-api/wesocket-streaming-api-v3-add-topic-url-mapping.png differ diff --git a/en/docs/assets/img/tutorials/streaming-api/enable-secret-generation-v3.png b/en/docs/assets/img/tutorials/streaming-api/enable-secret-generation-v3.png new file mode 100644 index 0000000000..a82a3fc09d Binary files /dev/null and b/en/docs/assets/img/tutorials/streaming-api/enable-secret-generation-v3.png differ diff --git a/en/docs/assets/img/tutorials/streaming-api/websocket-api-v3-add-topics.png b/en/docs/assets/img/tutorials/streaming-api/websocket-api-v3-add-topics.png new file mode 100644 index 0000000000..cfa8a09d84 Binary files /dev/null and b/en/docs/assets/img/tutorials/streaming-api/websocket-api-v3-add-topics.png differ diff --git a/en/docs/assets/img/tutorials/streaming-api/websocket-api-v3-topic-url-mapping.png b/en/docs/assets/img/tutorials/streaming-api/websocket-api-v3-topic-url-mapping.png new file mode 100644 index 0000000000..038636f699 Binary files /dev/null and b/en/docs/assets/img/tutorials/streaming-api/websocket-api-v3-topic-url-mapping.png differ diff --git a/en/docs/install-and-setup/setup/deployment-best-practices/production-deployment-guidelines.md b/en/docs/install-and-setup/setup/deployment-best-practices/production-deployment-guidelines.md index 9a9f9f3816..830d06e276 100644 --- a/en/docs/install-and-setup/setup/deployment-best-practices/production-deployment-guidelines.md +++ b/en/docs/install-and-setup/setup/deployment-best-practices/production-deployment-guidelines.md @@ -136,5 +136,13 @@ Given below is a checklist that will guide you to set up your production environ

Note: In distributed or high-availability deployments, all API-M instances must use the same symmetric encryption key. Ensure the identical key value is added to the deployment.toml of every node in the cluster to maintain the ability to decrypt registry resources across instances.

+ + WSDL URL generation in Developer Portal + +

Generate a random string and add it to the deployment.toml file. See Configure WSDL URL generation secret + for instructions.

+

Note: In distributed or high-availability deployments, all API-M instances must use the same secret key. Ensure the identical key value is added to the deployment.toml of every node in the cluster to maintain the ability to validate generated WSDL URLs across instances.

+ + diff --git a/en/docs/install-and-setup/setup/deployment-best-practices/security-guidelines-for-production-deployment.md b/en/docs/install-and-setup/setup/deployment-best-practices/security-guidelines-for-production-deployment.md index a4d25b9775..172f2a380a 100644 --- a/en/docs/install-and-setup/setup/deployment-best-practices/security-guidelines-for-production-deployment.md +++ b/en/docs/install-and-setup/setup/deployment-best-practices/security-guidelines-for-production-deployment.md @@ -354,6 +354,29 @@ You should generate a symmetric encryption key for internal encryption and add i

+ +

Configure WSDL URL generation secret

+ +

+If you are using the WSDL URL of a SOAP API generated using the Developer Portal, +configure a secret to secure the generated URLs. Add the following to +the deployment.toml file: +

+
+
+[apim.devportal]
+url_generation_secret = "your_secret"
+
+
+

+A randomly generated string of at least 32 characters is recommended. You can generate a strong secret using the following command: +

+
openssl rand -base64 32
+

+It is highly recommended to encrypt this secret using the secure vault. See Encrypting Passwords in Configuration Files for instructions. +

+ + diff --git a/en/docs/tutorials/streaming-api/create-and-publish-websocket-api.md b/en/docs/tutorials/streaming-api/create-and-publish-websocket-api.md index 92a089ae55..980fe63472 100644 --- a/en/docs/tutorials/streaming-api/create-and-publish-websocket-api.md +++ b/en/docs/tutorials/streaming-api/create-and-publish-websocket-api.md @@ -84,14 +84,17 @@ This will demonstrate a simple command line based chat room which has two channe 2. Delete the existing default topic, which has the name `/*`. - 3. Add the following topics one by one. - - Select **pub** and **sub** as the **Types**, enter the **Topic Name**, and click **+** to add each topic. + 3. Add the following operations one by one. - - /notifications - - /rooms/{roomID} + + + + + + +
Type Channel Address Operation
send/notificationssendNotifications
receive/notificationsreceiveNotifications
send/rooms/{roomID}sendMessages
receive/rooms/{roomID}receiveMessages
- Add Topics to WebSocket API + Add Topics to WebSocket API 4. Expand each topic, provide URL Mappings as follows, and click **Save**. @@ -103,7 +106,7 @@ This will demonstrate a simple command line based chat room which has two channe URL Mapping provided for a topic will be appended to the WebSocket endpoint URL, which was provided when creating the API, and the traffic via the topic will be sent to & received from the resulting URL. - [![Add URL Mappings to WebSocket API Topics]({{base_path}}/assets/img/tutorials/streaming-api/websocket-api-topic-url-mapping.png)]({{base_path}}/assets/img/tutorials/streaming-api/websocket-api-topic-url-mapping.png) + [![Add URL Mappings to WebSocket API Topics]({{base_path}}/assets/img/tutorials/streaming-api/websocket-api-v3-topic-url-mapping.png)]({{base_path}}/assets/img/tutorials/streaming-api/websocket-api-v3-topic-url-mapping.png) 6. Attach business plans to your WebSocket API. diff --git a/en/docs/tutorials/streaming-api/create-and-publish-websub-api.md b/en/docs/tutorials/streaming-api/create-and-publish-websub-api.md index 48fce479d8..6fec2937f1 100644 --- a/en/docs/tutorials/streaming-api/create-and-publish-websub-api.md +++ b/en/docs/tutorials/streaming-api/create-and-publish-websub-api.md @@ -61,13 +61,13 @@ The tutorial demonstrates a simple WebSub/WebHook API that monitors your GitHub 2. Click **Add Topic**, add a topic with the name **/issues**, click **Add**, and finally click **Save**. - [![Add Topics to WebSub API]({{base_path}}/assets/img/tutorials/streaming-api/websub-api-add-topic.png)]({{base_path}}/assets/img/tutorials/streaming-api/websub-api-add-topic.png) + [![Add Topics to WebSub API]({{base_path}}/assets/img/design/create-api/streaming-api/websub-api-v3-add-topic.png)]({{base_path}}/assets/img/design/create-api/streaming-api/websub-api-v3-add-topic.png) 6. Generate a secret. 1. Expand the **Subscription Configuration** section in the **Topics** page. - [![WebSub API Runtime Configurations]({{base_path}}/assets/img/tutorials/streaming-api/enable-secret-generation.png)]({{base_path}}/assets/img/tutorials/streaming-api/enable-secret-generation.png) + [![WebSub API Runtime Configurations]({{base_path}}/assets/img/tutorials/streaming-api/enable-secret-generation-v3.png)]({{base_path}}/assets/img/tutorials/streaming-api/enable-secret-generation-v3.png) 2. Click **Enable** to enable secret generation.