From 6cdc232ed30062208f869ee0ef8ddb34ccd1e219 Mon Sep 17 00:00:00 2001 From: sgayangi Date: Wed, 13 Nov 2024 14:27:55 +0530 Subject: [PATCH] Fix the links in API management section --- en/docs/administration/distributed-tracing.md | 18 +- .../apk-as-gateway-in-apim-overview.md | 2 +- .../control-plane-configuration.md | 6 +- en/docs/control-plane/overview.md | 6 +- .../overview.md | 4 +- .../header-modifier-via-crs.md | 4 +- .../header-modifier-via-rest-api.md | 3 +- .../header-modifier-filters/overview.md | 9 +- .../interceptors/interceptors-overview.md | 6 +- .../mirror-request-via-crs.md | 2 +- .../redirect-request-via-crs.md | 4 +- .../ai/create-ai-api-using-crs.md | 3 +- .../create-graphql-api-using-rest-api.md | 2 +- ...eate-grpc-api-with-multiple-proto-files.md | 2 +- .../add-new-rate-limiting-policies-via-crs.md | 12 +- ...new-rate-limiting-policies-via-rest-api.md | 28 +- .../rate-limiting/custom-rate-limiting.md | 4 +- .../rate-limiting-policy-overview.md | 4 +- .../api-definition-endpoint.md | 20 +- .../api-properties/api-properties.md | 7 +- .../api-scopes/api-scopes.md | 28 +- .../api-versions/create-an-api-version.md | 204 +++++++++++++++ .../api-versions/create-an-api-versions.md | 160 ------------ .../api-versions/default-version.md | 242 ++++++++++++------ .../semver-based-intelligent-routing.md | 11 +- en/docs/reachout/community.md | 4 +- .../enterprise-apim-apk-agent-install.md | 2 +- en/docs/setup/enterprise-apk-install.md | 2 +- .../identity-platform/idp/asgardeo-idp.md | 14 +- .../setup/identity-platform/idp/auth0-idp.md | 24 +- .../listeners/configure-gateway-listeners.md | 4 +- en/mkdocs.yml | 2 +- 32 files changed, 486 insertions(+), 357 deletions(-) create mode 100644 en/docs/develop-and-deploy-api/api-versions/create-an-api-version.md delete mode 100644 en/docs/develop-and-deploy-api/api-versions/create-an-api-versions.md diff --git a/en/docs/administration/distributed-tracing.md b/en/docs/administration/distributed-tracing.md index adb8054ac..d7966eb92 100644 --- a/en/docs/administration/distributed-tracing.md +++ b/en/docs/administration/distributed-tracing.md @@ -11,7 +11,7 @@ Supported distributed tracing systems, ## Configure Distributed Tracing -To set up distributed tracing, start by following the instructions outlined in [Customize Configurations](../setup/Customize-Configurations.md). These instructions will guide you through the process of acquiring the `values.yaml` file, which you will then use to tailor the tracing configurations to your specific needs. +To set up distributed tracing, start by following the instructions outlined in Customize Configurations. These instructions will guide you through the process of acquiring the `values.yaml` file, which you will then use to tailor the tracing configurations to your specific needs. !!! note If you are trying out tracing capabilities of APK and do not have an actual deployment of Jaeger or Zipkin, you can start APK together with Jaeger/Zipkin by applying the below kubernetes artifacts to your cluster. @@ -182,7 +182,7 @@ When using **Jaeger** for tracing, the format is same as for **Zipkin** to publi maxPathLength: "256" ``` -2. Follow the [quick start]({{base_path}}/en/latest/get-started/quick-start-guide/) guide and invoke backend. +2. Follow the quick start guide and invoke backend. 3. Open Jaeger UI to view the traces. Navigate to `http://jaeger.example.com` You will be able to browse through the request traces and expand each trace to view complete trace details. @@ -208,7 +208,7 @@ Follow these steps to configure WSO2 APK with Zipkin. maxPathLength: "256" ``` -2. Follow the [quick start]({{base_path}}/en/latest/get-started/quick-start-guide/) guide and invoke backend. +2. Follow the quick start guide and invoke backend. 3. Invoke the newly create API and open Zipkin UI to view the traces. Navigate to `http://zipkin.example.com` 4. Filter traces by `tagQuery=otel.library.name=APK` query. @@ -253,11 +253,11 @@ Follow these steps to configure WSO2 APK with Azure Application Insights. maximumTracesPerSecond: "2" ``` -3. Follow the [quick start]({{base_path}}/en/latest/get-started/quick-start-guide/) guide and invoke backend. -4. Now open "Azure Application Insights" Trasaction search window and select `Dependency` for `Event types` filter +3. Follow the quick start guide and invoke backend. +4. Now open "Azure Application Insights" Transaction search window and select `Dependency` for `Event types` filter [![Azure Trace Filter](../assets/img/distributed-tracing/trace-azure-filter.png)](../assets/img/distributed-tracing/trace-azure-filter.png) -You will be able to see all traces. Detailed trace view will look like below. +You will be able to see all traces. The detailed trace view will look like the following image. [![Azure Trace](../assets/img/distributed-tracing/trace-azure.png)](../assets/img/distributed-tracing/trace-azure.png) @@ -267,7 +267,7 @@ You will be able to see all traces. Detailed trace view will look like below. #### Configure APK to publish OTLP traces to a Jaeger backend -1. The kubernetes artifacts you have applied at the beginning already contain the required configuration for APK to publish OTLP traces. Add the following configuration to `values.yaml`'s `wso2.apk.dp.gatewayRuntime` section. +1. The Kubernetes artifacts you have applied at the beginning already contains the required configuration for APK to publish OTLP traces. Add the following configuration to `values.yaml`'s `wso2.apk.dp.gatewayRuntime` section. ```yaml tracing: @@ -283,7 +283,7 @@ You will be able to see all traces. Detailed trace view will look like below. connectionTimeout: "20" ``` -2. Follow the [quick start]({{base_path}}/en/latest/get-started/quick-start-guide/) guide and invoke backend. +2. Follow the quick start guide and invoke backend. 3. Open Jaeger UI to view the traces. Navigate to `http://CLUSTER_IP:16686` You will be able to browse through the request traces and expand each trace to view complete trace details. @@ -324,7 +324,7 @@ You will be able to browse through the request traces and expand each trace to v connectionTimeout: "20" ``` -3. Follow the [quick start]({{base_path}}/en/latest/get-started/quick-start-guide/) guide and invoke backend. +3. Follow the quick start guide and invoke backend. 4. Go to New Relic Tracing dashboard to view the traces. You will be able to browse through the request traces and expand each trace to view complete trace details. diff --git a/en/docs/control-plane/apk-as-gateway-in-apim/apk-as-gateway-in-apim-overview.md b/en/docs/control-plane/apk-as-gateway-in-apim/apk-as-gateway-in-apim-overview.md index 0c5bd8396..38d4d5c2e 100644 --- a/en/docs/control-plane/apk-as-gateway-in-apim/apk-as-gateway-in-apim-overview.md +++ b/en/docs/control-plane/apk-as-gateway-in-apim/apk-as-gateway-in-apim-overview.md @@ -17,7 +17,7 @@ Following diagram depicts the architecture of how the WSO2 APIM Control Plane co The APIM APK Agent is a component that connects the WSO2 API Manager (APIM) control plane with the WSO2 APK Gateway. The APIM APK Agent is responsible for the following tasks: -- Recieve JMS Events which relates to API,Application,Subscription management from the APIM Control Plane. +- Recieve JMS Events which relates to API, Application, Subscription management from the APIM Control Plane. - Convert the data which is recieved from the APIM Control Plane to the APK Gateway understandable format which are K8s Custom Resources. - Apply the generated Custom Resources to the K8s cluster to deploy API to APK Gateway. diff --git a/en/docs/control-plane/control-plane-configuration.md b/en/docs/control-plane/control-plane-configuration.md index 27e5814d0..47ae6c160 100644 --- a/en/docs/control-plane/control-plane-configuration.md +++ b/en/docs/control-plane/control-plane-configuration.md @@ -3,9 +3,9 @@ ## Configuring API Manager Control Plane with APK Gateway using APIM-APK Agent ### Prerequisites -- API Manager 4.3 (Please refer APIM [installation guide](https://apim.docs.wso2.com/en/latest/install-and-setup/install/installation-prerequisites/) for more information) -- APK 1.2.0 (Please refer APK [installation guide](https://apk.docs.wso2.com/en/latest/install-and-setup/installation-prerequisites/) for more information) -- APIM-APK Agent 1.2.0 (Please refer APIM-APK Agent [installation guide](https://apk.docs.wso2.com/en/latest/install-and-setup/install/installation-prerequisites/) for more information) +- API Manager 4.3 (Please refer APIM installation guide for more information) +- APK 1.2.0 (Please refer APK installation guide for more information) +- APIM-APK Agent 1.2.0 (Please refer APIM-APK Agent installation guide for more information) #### Resources Requirements - RAM: 10GB diff --git a/en/docs/control-plane/overview.md b/en/docs/control-plane/overview.md index 29bc6a426..9e2645350 100644 --- a/en/docs/control-plane/overview.md +++ b/en/docs/control-plane/overview.md @@ -17,7 +17,7 @@ Following diagram depicts the architecture of how the WSO2 APIM Control Plane co The APIM APK Agent is a component that connects the WSO2 API Manager (APIM) control plane with the WSO2 APK Gateway. The APIM APK Agent is responsible for the following tasks: -- Recieve JMS Events which relates to API,Application,Subscription management from the APIM Control Plane. +- Recieve JMS Events which relates to API, Application, Subscription management from the APIM Control Plane. - Convert the data which is recieved from the APIM Control Plane to the APK Gateway understandable format which are K8s Custom Resources. - Apply the generated Custom Resources to the K8s cluster to deploy API to APK Gateway. @@ -30,10 +30,10 @@ The APIM APK Agent is a component that connects the WSO2 API Manager (APIM) cont - API Marketplace: Provide a marketplace for discovering and consuming APIs. - Integration with WSO2 APK Gateway: Integrate with the APK Gateway for deploying APIs and managing traffic. -You can refer the [Control Plane API Management Overview](../control-plane/api-management/control-plane-api-management-overview.md) for more details on the supported and unsupported features. +You can refer the Control Plane API Management Overview for more details on the supported and unsupported features. ## Next Steps -You can refer the [Quick Start Guide](../get-started/quick-start-guide-with-cp.md) regards to trying out API Manager Control Plane with APK Gateway using APIM-APK Agent. +You can refer the Quick Start Guide regards to trying out API Manager Control Plane with APK Gateway using APIM-APK Agent. \ No newline at end of file diff --git a/en/docs/create-api/create-and-attach-api-policies/backend-jwt-token-manipulation/overview.md b/en/docs/create-api/create-and-attach-api-policies/backend-jwt-token-manipulation/overview.md index 2fa469871..a2135e13a 100644 --- a/en/docs/create-api/create-and-attach-api-policies/backend-jwt-token-manipulation/overview.md +++ b/en/docs/create-api/create-and-attach-api-policies/backend-jwt-token-manipulation/overview.md @@ -52,5 +52,5 @@ The above JSON Web Token (JWT) contains the following information. You can configure backend JWT in two ways. -1. [Using the APK Conf file](./backend-jwt-token-manipulation-via-rest-api.md). -2. [Using CRs](./backend-jwt-token-manipulation-via-crs.md). +1. Using the APK Conf file +2. Using CRs diff --git a/en/docs/create-api/create-and-attach-api-policies/header-modifier-filters/header-modifier-via-crs.md b/en/docs/create-api/create-and-attach-api-policies/header-modifier-filters/header-modifier-via-crs.md index 195c1988d..13d4462d6 100644 --- a/en/docs/create-api/create-and-attach-api-policies/header-modifier-filters/header-modifier-via-crs.md +++ b/en/docs/create-api/create-and-attach-api-policies/header-modifier-filters/header-modifier-via-crs.md @@ -4,9 +4,9 @@ This functionality enables the addition, modification, and removal of request an ### Step 1 - Get the CRs for the relevant API configuration -Here, you can follow the steps in [Develop and Deploy a REST API via CRs](../../create-and-deploy-apis/rest/create-rest-api-using-crs.md) documentation and create the CRs to deploy an API from scratch. +Here, you can follow the steps in Develop and Deploy a REST API via CRs documentation and create the CRs to deploy an API from scratch. -Alternatively, you can generate the CRs for a given apk-conf file using the steps as detailed in [this section]({{base_path}}/en/latest/api-management-overview/tools-for-api-development/#option-2-generate-k8s-custom-resources-using-config-generator-tool-and-deploy-the-api-using-kubernetes-client) +Alternatively, you can generate the CRs for a given apk-conf file using the steps as detailed in this section. ### Step 2 - Add the header modification filters to the HTTPRoute CR diff --git a/en/docs/create-api/create-and-attach-api-policies/header-modifier-filters/header-modifier-via-rest-api.md b/en/docs/create-api/create-and-attach-api-policies/header-modifier-filters/header-modifier-via-rest-api.md index 01cf99c85..3416eba6d 100644 --- a/en/docs/create-api/create-and-attach-api-policies/header-modifier-filters/header-modifier-via-rest-api.md +++ b/en/docs/create-api/create-and-attach-api-policies/header-modifier-filters/header-modifier-via-rest-api.md @@ -94,6 +94,7 @@ operations: ``` Similarly, you can do the following to both request and response headers. + 1. Add headers 2. Update existing headers 3. Remove headers @@ -118,7 +119,7 @@ curl --location 'https://default.gw.wso2.com:9095/employees/1.0/employee' \ --header 'Authorization: Bearer ``` -Since this guide uses the [httpbin service](https://httpbin.org/anything) which echoes the request and all of its headers, when you invoke the API, you will see the header "Test-Request-Header" with the value "Test-Value". +Since this guide uses the httpbin service which echoes the request and all of its headers, when you invoke the API, you will see the header "Test-Request-Header" with the value "Test-Value". ### Sample Configurations diff --git a/en/docs/create-api/create-and-attach-api-policies/header-modifier-filters/overview.md b/en/docs/create-api/create-and-attach-api-policies/header-modifier-filters/overview.md index d5595302c..22867fc91 100644 --- a/en/docs/create-api/create-and-attach-api-policies/header-modifier-filters/overview.md +++ b/en/docs/create-api/create-and-attach-api-policies/header-modifier-filters/overview.md @@ -2,7 +2,7 @@ The header modification functionality allows the addition, modification, and removal of headers in both requests and responses. This capability is useful for enhancing control and flexibility in API interactions, ensuring that specific requirements for incoming requests and outgoing responses are consistently met. This functionality is configured using the HTTPRoute filters `RequestHeaderModifier` and `ResponseHeaderModifier` filters, which specify how headers should be manipulated at various stages of the request and response lifecycle. -Header modification can also be achieved using interceptors, as detailed in [this section](../interceptors/interceptors-overview.md). In a scenario where both interceptors and header modification policies are used, **the header modification filters will be applied after the interceptor.** For example. consider the following scenario. +Header modification can also be achieved using interceptors, as detailed in this section. In a scenario where both interceptors and header modification policies are used, **the header modification filters will be applied after the interceptor.** For example, consider the following scenario. Assume the GET /employee route is configured with the following. @@ -11,4 +11,9 @@ Assume the GET /employee route is configured with the following. In this scenario, the interceptor headers will be added **first**, followed by the headers from the header modification policy. -You can also remove headers added by an interceptor using a header modification policy. Additionally, if you have configured a [mirror policy](../mirror-request-filters/overview.md) for this route, the modified headers will be sent in the mirrored request as well. \ No newline at end of file +You can also remove headers added by an interceptor using a header modification policy. Additionally, if you have configured a [mirror policy](../mirror-request-filters/overview.md) for this route, the modified headers will be sent in the mirrored request as well. + +Header modification using HTTPRoute filters can be achieved in the APK in two ways. + +1. Using the APK Conf file +2. Using CRs diff --git a/en/docs/create-api/create-and-attach-api-policies/interceptors/interceptors-overview.md b/en/docs/create-api/create-and-attach-api-policies/interceptors/interceptors-overview.md index 44f76baa9..69bfb1d19 100644 --- a/en/docs/create-api/create-and-attach-api-policies/interceptors/interceptors-overview.md +++ b/en/docs/create-api/create-and-attach-api-policies/interceptors/interceptors-overview.md @@ -92,6 +92,6 @@ Configuring an interceptor requires the following two steps. 2. For reference, a sample interceptor service for data conversion between application/json and application/xml data types with interceptor policy CRs can be found here: [request-response-mediation-interceptors](https://github.com/wso2/apk/tree/main/samples/request-response-mediation-interceptors) 3. Create `APIPolicy` with interceptor configuration and attach it to your `API`. - - - [Attach Interceptor APIPolicy via REST API](../interceptors-via-rest-api) - - [Attach Interceptor APIPolicy via CR](../interceptors-via-crs) + - Using the APK Conf file + - Using CRs + diff --git a/en/docs/create-api/create-and-attach-api-policies/mirror-request-filters/mirror-request-via-crs.md b/en/docs/create-api/create-and-attach-api-policies/mirror-request-filters/mirror-request-via-crs.md index d65a71838..0f770d09f 100644 --- a/en/docs/create-api/create-and-attach-api-policies/mirror-request-filters/mirror-request-via-crs.md +++ b/en/docs/create-api/create-and-attach-api-policies/mirror-request-filters/mirror-request-via-crs.md @@ -6,7 +6,7 @@ This functionality enables request mirroring, where a request can be duplicated Here, you can follow the steps in Develop and Deploy a REST API via CRs documentation and create the CRs to deploy an API from scratch. -Alternatively, you can generate the CRs for a given apk-conf file using the steps as detailed in this section. +Alternatively, you can generate the CRs for a given apk-conf file using the steps as detailed in this section. ### Step 2 - Add the header modification filters to the HTTPRoute CR diff --git a/en/docs/create-api/create-and-attach-api-policies/redirect-request-filters/redirect-request-via-crs.md b/en/docs/create-api/create-and-attach-api-policies/redirect-request-filters/redirect-request-via-crs.md index 53bb93248..fb5f2c692 100644 --- a/en/docs/create-api/create-and-attach-api-policies/redirect-request-filters/redirect-request-via-crs.md +++ b/en/docs/create-api/create-and-attach-api-policies/redirect-request-filters/redirect-request-via-crs.md @@ -4,9 +4,9 @@ Request redirection allows you to send clients to a different URL. This can be u ### Step 1 - Get the CRs for the relevant API configuration -Here, you can follow the steps in [Develop and Deploy a REST API via CRs](../../create-and-deploy-apis/rest/create-rest-api-using-crs.md) documentation and create the CRs to deploy an API from scratch. +Here, you can follow the steps in Develop and Deploy a REST API via CRs documentation and create the CRs to deploy an API from scratch. -Alternatively, you can generate the CRs for a given apk-conf file using the steps as detailed in [this section]({{base_path}}/en/latest/api-management-overview/tools-for-api-development/#option-2-generate-k8s-custom-resources-using-config-generator-tool-and-deploy-the-api-using-kubernetes-client) +Alternatively, you can generate the CRs for a given apk-conf file using the steps as detailed in this section. ### Step 2 - Add the request redirection filters to the HTTPRoute CR diff --git a/en/docs/create-api/create-and-deploy-apis/ai/create-ai-api-using-crs.md b/en/docs/create-api/create-and-deploy-apis/ai/create-ai-api-using-crs.md index 310ee7705..01f5dcc03 100644 --- a/en/docs/create-api/create-and-deploy-apis/ai/create-ai-api-using-crs.md +++ b/en/docs/create-api/create-and-deploy-apis/ai/create-ai-api-using-crs.md @@ -1,11 +1,12 @@ This approach requires five CRs. + - API CR - HTTPRoute CR - Backend CR - APIPolicy CR - Secret CR -Let's create an AI API with following steps: +Let's create an AI API with the following steps: - [Create API CR](#create-api-cr) - [Create HTTPRoute CR](#create-httproute-cr) diff --git a/en/docs/create-api/create-and-deploy-apis/graphql/create-graphql-api-using-rest-api.md b/en/docs/create-api/create-and-deploy-apis/graphql/create-graphql-api-using-rest-api.md index 056d1502d..26a95e300 100644 --- a/en/docs/create-api/create-and-deploy-apis/graphql/create-graphql-api-using-rest-api.md +++ b/en/docs/create-api/create-and-deploy-apis/graphql/create-graphql-api-using-rest-api.md @@ -168,7 +168,7 @@ Follow the instructions below to design a GraphQL API. scopes: [] ``` -4. To invoke the system APIs such as for deploying, we need a valid access token issued by an identity provider (IdP). Follow the ["Generate Access Token"](../../../develop-and-deploy-api/security/generate-access-token.md) documentation to generate an access token. +4. To deploy the API, we need a valid access token issued by an identity provider (IdP). Follow the Generate Access Token documentation to generate an access token. 5. After generating the token, you can deploy the GraphQL API with the command diff --git a/en/docs/create-api/create-and-deploy-apis/grpc/create-grpc-api-with-multiple-proto-files.md b/en/docs/create-api/create-and-deploy-apis/grpc/create-grpc-api-with-multiple-proto-files.md index 8ccb6d896..7033fab9f 100644 --- a/en/docs/create-api/create-and-deploy-apis/grpc/create-grpc-api-with-multiple-proto-files.md +++ b/en/docs/create-api/create-and-deploy-apis/grpc/create-grpc-api-with-multiple-proto-files.md @@ -135,7 +135,7 @@ Your apk-conf file will now be as follows. ### Step 4 - Deploy the API -To deploy the API, we need a valid access token issued by an identity provider (IdP). Follow the Generate Access Token documentation to generate an access +To deploy the API, we need a valid access token issued by an identity provider (IdP). Follow the Generate Access Token documentation to generate an access token. After generating the token, you can deploy the gRPC API with the following command. diff --git a/en/docs/create-api/rate-limiting/add-new-rate-limiting-policies-via-crs.md b/en/docs/create-api/rate-limiting/add-new-rate-limiting-policies-via-crs.md index fa5569561..f73c59d43 100644 --- a/en/docs/create-api/rate-limiting/add-new-rate-limiting-policies-via-crs.md +++ b/en/docs/create-api/rate-limiting/add-new-rate-limiting-policies-via-crs.md @@ -2,7 +2,7 @@ !!! Tip - To get familiar with the concept of Rate Limiting, see [Rate Limiting Overview](./rate-limiting-policy-overview.md). + To get familiar with the concept of Rate Limiting, see Rate Limiting Overview. You need to define the API Policies as separate Custom Resources (CRs) when creating an API using the Kubernetes Command Line Interface (kubctl). Let's get familiar with the [API-level](#api-level) and [Operation-level](#operation-level) configurations and the [configurations definitions](#configuration-definitions) that you will use to add Rate Limiting Policies.. @@ -90,7 +90,7 @@ The following are the configurations that you need when defining Rate Limiting P - spec + spec This defines the configuration related to the Rate Limiting Policy.
The configuration will vary based on whether you are creating an API-Level or Operation-Level Rate Limiting Policy. @@ -201,8 +201,8 @@ Follow the instructions below to add an API-level Rate Limiting Policy to an API !!! note "Before you begin" - - Install the [prerequisites](../../../setup/prerequisites) that are required to run WSO2 APK. - - [Start WSO2 APK](../../../get-started/quick-start-guide/#step-1-start-wso2-apk). + - Install the prerequisites that are required to run WSO2 APK. + - Start WSO2 APK. **Step 1 - Define the CRs** @@ -241,8 +241,8 @@ Follow the instructions below to add an Operation-level Rate Limiting Policy to !!! note "Before you begin" - - Install the [prerequisites](../../../setup/prerequisites) that are required to run WSO2 APK. - - [Start WSO2 APK](../../../get-started/quick-start-guide/#step-1-start-wso2-apk). + - Install the prerequisites that are required to run WSO2 APK. + - Start WSO2 APK. **Step 1 - Define the CRs** diff --git a/en/docs/create-api/rate-limiting/add-new-rate-limiting-policies-via-rest-api.md b/en/docs/create-api/rate-limiting/add-new-rate-limiting-policies-via-rest-api.md index d5c526012..a4e20052b 100644 --- a/en/docs/create-api/rate-limiting/add-new-rate-limiting-policies-via-rest-api.md +++ b/en/docs/create-api/rate-limiting/add-new-rate-limiting-policies-via-rest-api.md @@ -2,9 +2,9 @@ !!! Tip - To get familiar with the concept of Rate Limiting, see [Rate Limiting Overview](./rate-limiting-policy-overview.md). + To get familiar with the concept of Rate Limiting, see Rate Limiting Overview. -You need to define the Rate Limiting Policies in the API payload when creating an API using the REST API Interface. You can define either API-level or Operation-level Rate Limiting Policies. Let's get familiar with the [API-level](#api-level) and [Operation-level (Resource-Level)](#operation-level-resource-level-rate-limiting) configurations and the [configuration definitions](#configuration-definitions). +You need to define the Rate Limiting Policies in the API payload when creating an API using the REST API Interface. You can define either API-level or Operation-level Rate Limiting Policies. Let's get familiar with the [API-level](#api-level-rate-limiting) and [Operation-level (Resource-Level)](#operation-level-resource-level-rate-limiting) configurations and the [configuration definitions](#configuration-definitions). ## API-Level Rate Limiting @@ -111,14 +111,12 @@ Follow the instructions below to add an API-level Rate Limiting Policy to an API !!! note "Before you begin" - - Install the [prerequisites](../../../setup/prerequisites) that are required to run WSO2 APK. - - [Start WSO2 APK](../../../get-started/quick-start-guide/#step-1-start-wso2-apk). + - Install the prerequisites that are required to run WSO2 APK. + - Start WSO2 APK. ### Retrieve existing API configuration. -Here, you can use the apk-conf file which is created in [Create an API](../../get-started/quick-start-guide.md) documentation and save this content into a file named `EmployeeServiceV2.apk-conf`. - -Sample content before the modification is shown below. +Here, you can use the following apk-conf file and save it into a file named `EmployeeServiceV2.apk-conf`. ``` name: "EmployeeServiceAPI" @@ -191,9 +189,9 @@ Sample content after the modification is shown below. scopes: [] ``` -### Generate an access token to deploy API. +### Generate an access token to deploy API -To invoke the system APIs to deploy your own API, we need a valid access token issued by an identity provider (IdP). Follow the [Generate Access Token](../../develop-and-deploy-api/security/generate-access-token.md) documentation to generate an access token. +To invoke the system APIs such as for deploying, we need a valid access token issued by an identity provider (IdP). Follow the Generate Access Token documentation to generate an access token. ### Deploy the API with API level rate limit policy. @@ -206,7 +204,7 @@ Use the values provided in the table below in the body of your request. | apkConfiguration | `EmployeeServiceV2.apk-conf` file | | definitionFile | `EmployeeServiceDefinition.json` file | -1. Set the access token in the Authorization header as a bearer token. This is the access token received by following the steps under ["Generate an access token to invoke APIs"](../../get-started/quick-start-guide.md#generate-an-access-token-to-invoke-apis) section. +1. Set the access token in the Authorization header as a bearer token. This is the access token received by following the steps under the Generate an Access Token section. 2. Execute the API deployment request. You will receive a successful response with an Id for the API. === "Request" @@ -275,8 +273,8 @@ Follow the instructions below to add an Resource-level Rate Limiting Policy to a !!! note "Before you begin" - - Install the [prerequisites](../../../setup/prerequisites) that are required to run WSO2 APK. - - [Start WSO2 APK](../../../get-started/quick-start-guide/#step-1-start-wso2-apk). + - Install the prerequisites that are required to run WSO2 APK. + - Start WSO2 APK. ### Retrieve existing API configuration. @@ -355,9 +353,9 @@ Sample content after the modification is shown below. scopes: [] ``` -### Generate an access token to deploy API. +### Generate an access token to deploy API -To invoke the system APIs such as for deploying, we need a valid access token issued by an identity provider (IdP). Follow the ["Generate Access Token"](../../develop-and-deploy-api/security/generate-access-token.md) documentation to generate an access token. +To invoke the system APIs such as for deploying, we need a valid access token issued by an identity provider (IdP). Follow the Generate Access Token documentation to generate an access token. ### Deploy the API with resource level rate limit policy. @@ -370,7 +368,7 @@ Use the values provided in the table below in the body of your request. | apkConfiguration | `EmployeeServiceV3.apk-conf` file | | definitionFile | `EmployeeServiceDefinition.json` file | -1. Set the access token in the Authorization header as a bearer token. This is the access token received by following the steps under ["Generate an access token to invoke APIs"](../../get-started/quick-start-guide.md#generate-an-access-token-to-invoke-apis) section. +1. Set the access token in the Authorization header as a bearer token. This is the access token received by following the steps under the Generate an Access Token section. 2. Execute the API deployment request. You will receive a successful response with an Id for the API. === "Request" diff --git a/en/docs/create-api/rate-limiting/custom-rate-limiting.md b/en/docs/create-api/rate-limiting/custom-rate-limiting.md index 00875e949..3107526d8 100644 --- a/en/docs/create-api/rate-limiting/custom-rate-limiting.md +++ b/en/docs/create-api/rate-limiting/custom-rate-limiting.md @@ -3,7 +3,7 @@ Custom Rate Limiting is only supported via CRs -If you encounter a situation where Simple Rate Limiting is insufficient, Custom Rate Limiting is the solution you should consider. With Custom Rate Limiting, you can create numerous custom rate limit keys and establish them through your own unique logic, which is executed against the request. You can set the custom rate limit keys using interceptor policies, and we recommend using a [Gateway level Interceptor Service Policy](../../create-and-attach-api-policies/interceptors/interceptors-via-crs/#configuring-gateway-level-interceptors) for this purpose. +If you encounter a situation where Simple Rate Limiting is insufficient, Custom Rate Limiting is the solution you should consider. With Custom Rate Limiting, you can create numerous custom rate limit keys and establish them through your own unique logic, which is executed against the request. You can set the custom rate limit keys using interceptor policies, and we recommend using a Gateway level Interceptor Service Policy for this purpose. To illustrate, suppose users named "Alice and "Bob" have a typical limit of four requests per minute, which is the standard limit for all users in the system. However, "Bob" is also in the "Admin" group that allows all the users in the group of limit of twenty requests per minute. To handle this type of scenario, you must have two rate limit keys, such as `org_key` for user group and `user_key` for user. @@ -85,4 +85,4 @@ For example, when user "Bob" invokes a request at gateway, then the request inte When the user "Bob" consumes his user level limit of four requests per minute, then he can consume another four requests using Admin quota. Note that the quota is reduced from both rate limit keys `org_key` and `user_key` for a request invoked by a user. Therefore, "Bob" can consume a count in between zero and twenty per minute. This count can be zero, since some other users in the "Admin" group might also have consumed twenty requests in a minute. -For reference, a sample interceptor service with custom Rate Limiting policy CRs and interceptor policy CRs can be found here: [sample-interceptor-service](https://github.com/wso2/apk/tree/main/samples/custom-ratelimit-interceptor-service) +For reference, a sample interceptor service with custom Rate Limiting policy CRs and interceptor policy CRs can be found here: sample-interceptor-service diff --git a/en/docs/create-api/rate-limiting/rate-limiting-policy-overview.md b/en/docs/create-api/rate-limiting/rate-limiting-policy-overview.md index b1266b889..f1d58ac20 100644 --- a/en/docs/create-api/rate-limiting/rate-limiting-policy-overview.md +++ b/en/docs/create-api/rate-limiting/rate-limiting-policy-overview.md @@ -11,5 +11,5 @@ In addition to protecting the API, Rate Limiting can also help organizations man Overall, Rate Limiting is a crucial feature in API management that helps to ensure the availability, reliability, and security of APIs while also managing costs and maintaining fair access for all clients. ## What's Next? -- [Learn to add Rate Limiting Policies using the REST API Interface](../../create-api/rate-limiting/add-new-rate-limiting-policies-via-rest-api.md) -- [Learn to add Rate Limiting Policies using a Custom Resource (CR)](../../create-api/rate-limiting/add-new-rate-limiting-policies-via-crs.md) +- Learn to add Rate Limiting Policies using the REST API Interface +- Learn to add Rate Limiting Policies using a Custom Resource (CR) diff --git a/en/docs/develop-and-deploy-api/api-definition-endpoint/api-definition-endpoint.md b/en/docs/develop-and-deploy-api/api-definition-endpoint/api-definition-endpoint.md index f910fa25c..5cc2c6ed6 100644 --- a/en/docs/develop-and-deploy-api/api-definition-endpoint/api-definition-endpoint.md +++ b/en/docs/develop-and-deploy-api/api-definition-endpoint/api-definition-endpoint.md @@ -4,7 +4,7 @@ API Definition Endpoint is a way to retrieve the openapi definition. By default, ## Before you begin -You can use the apk-conf file which is created in [Create an API](../../get-started/quick-start-guide.md) documentation and save this content into a file named `EmployeeServiceEndpoints.apk-conf`. +You can use the apk-conf file which is created in Create an API documentation and save this content into a file named `EmployeeServiceEndpoints.apk-conf`. Sample content before the modification is shown below. @@ -37,23 +37,25 @@ Sample content before the modification is shown below. ``` ## Default API Definition Endpoint -By default, the API Definition Endpoint is available at the following path and you can execute following command to retrieve the Open API Definition for a particular API. +By default, the API Definition Endpoint is available at the path https://{host}:9095/{basepath}/{api-version}/api-definition + +You can execute following command to retrieve the Open API Definition for a particular API. -=== "Request" - ``` - curl --location 'https://:9095/test/3.14/api-definition' \ - --header 'Host: ' \ - --header 'Authorization: bearer ' - ``` === "Sample Request" ``` curl -k --location 'https://default.gw.wso2.com:9095/test/3.14/api-definition' \ --header 'Host: default.gw.wso2.com' \ --header 'Authorization: bearer eyJhbGciOiJSUzI1NiIsICJ0eXAiOiJKV1QiLCAia2lkIjoiZ2F0ZXdheV9jZXJ0aWZpY2F0ZV9hbGlhcyJ9.eyJpc3MiOiJodHRwczovL2lkcC5hbS53c28yLmNvbS90b2tlbiIsICJzdWIiOiI0NWYxYzVjOC1hOTJlLTExZWQtYWZhMS0wMjQyYWMxMjAwMDIiLCAiZXhwIjoxNjg4MTMxNDQ0LCAibmJmIjoxNjg4MTI3ODQ0LCAiaWF0IjoxNjg4MTI3ODQ0LCAianRpIjoiMDFlZTE3NDEtMDA0Ni0xOGE2LWFhMjEtYmQwYTk4ZjYzNzkwIiwgImNsaWVudElkIjoiNDVmMWM1YzgtYTkyZS0xMWVkLWFmYTEtMDI0MmFjMTIwMDAyIiwgInNjb3BlIjoiZGVmYXVsdCJ9.RfKQq2fUZKZFAyjimvsPD3cOzaVWazabmq7b1iKYacqIdNjkvO9CQmu7qdtrVNDmdZ_gHhWLXiGhN4UTSCXv_n1ArDnxTLFBroRS8dxuFBZoD9Mpj10vYFSDDhUfFqjgMqtpr30TpDMfee1wkqB6K757ZSjgCDa0hAbv555GkLdZtRsSgR3xWcxPBsIozqAMFDCWoUCbgTQuA5OiEhhpVco2zv4XLq2sz--VRoBieO12C69KnGRmoLuPtvOayInvrnV96Tbt9fR0fLS2l1nvAdFzVou0SIf9rMZLnURLVQQYE64GR14m-cFRYdUI9vTsFHZBl5w-uCLdzMMofzZaLQ' ``` +=== "Request Format" + ``` + curl --location 'https://:9095///api-definition' \ + --header 'Host: ' \ + --header 'Authorization: bearer ' + ``` !!!NOTE - In a default API, the default API Definition Endpoint is also available at the following path: `https://:9095/test/api-definition` + In a default API, the default API Definition Endpoint is also available at the following path: `https://:9095//api-definition` ## Customize API Definition Endpoint diff --git a/en/docs/develop-and-deploy-api/api-properties/api-properties.md b/en/docs/develop-and-deploy-api/api-properties/api-properties.md index 0847364cc..84cfce121 100644 --- a/en/docs/develop-and-deploy-api/api-properties/api-properties.md +++ b/en/docs/develop-and-deploy-api/api-properties/api-properties.md @@ -2,10 +2,9 @@ ## Before you begin -- [Create an API](../../get-started/quick-start-guide.md) +- Create an API - -You can use the apk-conf file which is created in [Create an API](../../get-started/quick-start-guide.md) documentation and save this content into a file named `EmployeeServiceEndpoints.apk-conf`. +You can use the apk-conf file which is created in Create an API documentation and save this content into a file named `EmployeeServiceEndpoints.apk-conf`. Sample content before the modification is shown below. @@ -75,4 +74,4 @@ Here, we have added a property named `enableStore` with the value `true`. ## Deploy APK configuration -Refer [Create an API](../../get-started/quick-start-guide.md) to deploy the API using APK configuration. \ No newline at end of file +Refer Create an API to deploy the API using APK configuration. \ No newline at end of file diff --git a/en/docs/develop-and-deploy-api/api-scopes/api-scopes.md b/en/docs/develop-and-deploy-api/api-scopes/api-scopes.md index f9dee9c13..f2810f79b 100644 --- a/en/docs/develop-and-deploy-api/api-scopes/api-scopes.md +++ b/en/docs/develop-and-deploy-api/api-scopes/api-scopes.md @@ -4,7 +4,7 @@ API Scopes are used to define the access level of an API resources. You can defi ## Before you begin -You can use the apk-conf file which is created in [Create an API](../../get-started/quick-start-guide.md) documentation and save this content into a file named `EmployeeServiceEndpoints.apk-conf`. +You can use the apk-conf file which is created in Create an API documentation and save this content into a file named `EmployeeServiceEndpoints.apk-conf`. Sample content before the modification is shown below. @@ -16,9 +16,9 @@ Sample content before the modification is shown below. defaultVersion: false endpointConfigurations: production: - endpoint: "https://run.mocky.io/v3/1327c339-354b-4080-8296-f6268365e67b" + endpoint: "http://employee-service:8080" operations: - - target: "/employee" + - target: "/employees" verb: "GET" secured: true scopes: [] @@ -36,12 +36,14 @@ Sample content before the modification is shown below. scopes: [] ``` ## Invoke API using access token without API Scopes -Refer [Invoke an API](../../get-started/quick-start-guide.md) to invoke the API. + +Before adding the scopes, let's deploy and invoke the API. +Refer the Quick Start Guide documentation to deploy and invoke the API. ## Adding API Scopes Update the APK configuration as the following to add API Scopes to relevant operations in apk-conf. -Here, we have added a property named `scopes` with the value `wso2` for `/employee` resource. +Here, we have added a property named `scopes` with the value `wso2` for `/employees` resource. ```yaml name: "EmployeeServiceAPI" @@ -51,9 +53,9 @@ Here, we have added a property named `scopes` with the value `wso2` for `/employ defaultVersion: false endpointConfigurations: production: - endpoint: "https://run.mocky.io/v3/1327c339-354b-4080-8296-f6268365e67b" + endpoint: "http://employee-service:8080" operations: - - target: "/employee" + - target: "/employees" verb: "GET" secured: true scopes: ["wso2"] @@ -73,19 +75,19 @@ Here, we have added a property named `scopes` with the value `wso2` for `/employ ## Deploy APK configuration -Refer [Create an API](../../get-started/quick-start-guide.md) to deploy the API using APK configuration. +Refer Create an API to deploy the API using the updated APK configuration. ## Invoke API using access token without API Scopes -Refer [Invoke an API](../../get-started/quick-start-guide.md) to invoke the API. Now, you will receive a 403 Forbidden response as the access token does not have the required scope. +Refer Invoke an API. Now, you will receive a 403 Forbidden response as the access token does not have the required scope. ## Invoke API using access token with API Scopes 1. Execute the following request to generate the access token with scope. Use the base64 encoded value of the colon separated client Id and client secret provided in the table below in the Authorization header of the request. We will be using the client credentials grant type with scopes to generate the token. - | Field | Value | - |-----------------|---------------------------------------------| - | Client ID | 45f1c5c8-a92e-11ed-afa1-0242ac120002 | - | Client Secret | 4fbd62ec-a92e-11ed-afa1-0242ac120002 | + | Field | Value | + | ------------- | ------------------------------------ | + | Client ID | 45f1c5c8-a92e-11ed-afa1-0242ac120002 | + | Client Secret | 4fbd62ec-a92e-11ed-afa1-0242ac120002 | === "Request" ``` diff --git a/en/docs/develop-and-deploy-api/api-versions/create-an-api-version.md b/en/docs/develop-and-deploy-api/api-versions/create-an-api-version.md new file mode 100644 index 000000000..86a746a63 --- /dev/null +++ b/en/docs/develop-and-deploy-api/api-versions/create-an-api-version.md @@ -0,0 +1,204 @@ +# Create an API Version + +This documentation explains how to create an API version in WSO2 APK. Follow the steps below to create an API version. + +## Before you begin + +- Create an API + +## Using APK configuration + +### Retrieve existing API configuration. +Here, you can use the apk-conf file which is created in Create an API documentation and save this content into a file named `EmployeeServiceDefaultVersion.apk-conf`. + +Sample content before the modification is shown below. +``` +name: "EmployeeServiceAPI" +basePath: "/employees-info" +version: "3.14" +type: "REST" +defaultVersion: false +endpointConfigurations: + production: + endpoint: "http://employee-service:8080" +operations: +- target: "/employees + verb: "GET" + secured: true + scopes: [] +- target: "/employee" + verb: "POST" + secured: true + scopes: [] +- target: "/employee/{employeeId}" + verb: "PUT" + secured: true + scopes: [] +- target: "/employee/{employeeId}" + verb: "DELETE" + secured: true + scopes: [] +``` + +### Update the API configuration with the new version. + + + + + + + + + + + +
ParameterDescription
version: "3.14"
Change the version parameter to "4.0"
+ + Sample content after the modification is shown below. + +``` +id: "header-modifier-api" +name: "EmployeeServiceAPI" +basePath: "/employees-info" +version: "4.0" +type: "REST" +defaultVersion: false +endpointConfigurations: + production: + endpoint: "http://employee-service:8080" +operations: +- target: "/employees" + verb: "GET" + secured: false + scopes: [] +- target: "/employee" + verb: "POST" + secured: true + scopes: [] +- target: "/employee/{employeeId}" + verb: "PUT" + secured: true + scopes: [] +- target: "/employee/{employeeId}" + verb: "DELETE" + secured: true + scopes: [] +``` + +Here, you can do any other related changes to the API configuration as well. + +### Generate an access token to deploy and invoke an API + +To deploy and invoke the system APIs, we need a valid access token issued by an identity provider (IdP). Follow the Generate Access Token documentation to generate an access token. + +### Deploy the new version API. + +You now have the API Definition (`EmployeeServiceDefinition.json`) and the updated apk-conf file (`EmployeeService.apk-conf`) corresponding to the API. We can use these files to deploy the new API in APK. + +Use the values provided in the table below in the body of your request. + + | Field | Value | Required | + | ---------------- | ------------------------------------- | ---------------- | + | apkConfiguration | `EmployeeService.apk-conf` file | :material-check: | + | definitionFile | `EmployeeServiceDefinition.json` file | :material-check: | + +1. Set the access token in the Authorization header as a bearer token. This is the access token received by following the steps under the Generate an Access Token section above. +2. Execute the API deployment request. You will receive a successful response with an Id for the API. + + === "Request" + + ``` + curl --location 'https://:9095/api/deployer/1.2.0/apis/deploy' \ + --header 'Host: ' \ + --header 'Authorization: bearer ' \ + --form 'apkConfiguration=@"path/to/EmployeeService.apk-conf"' \ + --form 'definitionFile=@"path/to/EmployeeServiceDefinition.json"' + ``` + + === "Sample Request" + + ``` + curl -k --location 'https://api.am.wso2.com:9095/api/deployer/1.2.0/apis/deploy' \ + --header 'Host: api.am.wso2.com' \ + --header 'Authorization: bearer eyJhbGciOiJSUzI1NiIsICJ0eXAiOiJKV1QiLCAia2lkIjoiZ2F0ZXdheV9jZXJ0aWZpY2F0ZV9hbGlhcyJ9.eyJpc3MiOiJodHRwczovL2lkcC5hbS53c28yLmNvbS90b2tlbiIsICJzdWIiOiI0NWYxYzVjOC1hOTJlLTExZWQtYWZhMS0wMjQyYWMxMjAwMDIiLCAiZXhwIjoxNjg4MTMxNDQ0LCAibmJmIjoxNjg4MTI3ODQ0LCAiaWF0IjoxNjg4MTI3ODQ0LCAianRpIjoiMDFlZTE3NDEtMDA0Ni0xOGE2LWFhMjEtYmQwYTk4ZjYzNzkwIiwgImNsaWVudElkIjoiNDVmMWM1YzgtYTkyZS0xMWVkLWFmYTEtMDI0MmFjMTIwMDAyIiwgInNjb3BlIjoiZGVmYXVsdCJ9.RfKQq2fUZKZFAyjimvsPD3cOzaVWazabmq7b1iKYacqIdNjkvO9CQmu7qdtrVNDmdZ_gHhWLXiGhN4UTSCXv_n1ArDnxTLFBroRS8dxuFBZoD9Mpj10vYFSDDhUfFqjgMqtpr30TpDMfee1wkqB6K757ZSjgCDa0hAbv555GkLdZtRsSgR3xWcxPBsIozqAMFDCWoUCbgTQuA5OiEhhpVco2zv4XLq2sz--VRoBieO12C69KnGRmoLuPtvOayInvrnV96Tbt9fR0fLS2l1nvAdFzVou0SIf9rMZLnURLVQQYE64GR14m-cFRYdUI9vTsFHZBl5w-uCLdzMMofzZaLQ' \ + --form 'apkConfiguration=@"/Users/user/EmployeeService.apk-conf"' \ + --form 'definitionFile=@"/Users/user/EmployeeServiceDefinition.json"' + ``` + + === "Sample Response" + + ``` + --- + id: "a70e538aeaab278437dc4c3199dbaf6fcb7df2d9" + name: "EmployeeServiceAPI" + basePath: "/employees-info" + version: "4.0" + type: "REST" + defaultVersion: false + endpointConfigurations: + production: + endpoint: "https://run.mocky.io/v3/1327c339-354b-4080-8296-f6268365e67b" + operations: + - target: "/employee" + verb: "GET" + secured: true + scopes: [] + - target: "/employee" + verb: "POST" + secured: true + scopes: [] + - target: "/employee/{employeeId}" + verb: "PUT" + secured: true + scopes: [] + - target: "/employee/{employeeId}" + verb: "DELETE" + secured: true + scopes: [] + ``` + +By now, you have deployed the new version of the API. You can invoke the new version of the API using the access token generated in the previous step. + +Now, let’s get the list of employees by invoking the `/employees` resource in the `EmployeeServiceAPI` by invoking the new version of the API. + +Execute the following request to invoke the API. You can use the access token generated above as the `Authorization` header in this request. + + +=== "Sample Request" + ``` + curl -k --location 'https://default.gw.wso2.com:9095/employees-info/4.0/employees' \ + --header 'Host: default.gw.wso2.com' \ + --header 'Authorization: bearer eyJhbGciOiJSUzI1NiIsICJ0eXAiOiJKV1QiLCAia2lkIjoiZ2F0ZXdheV9jZXJ0aWZpY2F0ZV9hbGlhcyJ9.eyJpc3MiOiJodHRwczovL2lkcC5hbS53c28yLmNvbS90b2tlbiIsICJzdWIiOiI0NWYxYzVjOC1hOTJlLTExZWQtYWZhMS0wMjQyYWMxMjAwMDIiLCAiZXhwIjoxNjg4MTMxNDQ0LCAibmJmIjoxNjg4MTI3ODQ0LCAiaWF0IjoxNjg4MTI3ODQ0LCAianRpIjoiMDFlZTE3NDEtMDA0Ni0xOGE2LWFhMjEtYmQwYTk4ZjYzNzkwIiwgImNsaWVudElkIjoiNDVmMWM1YzgtYTkyZS0xMWVkLWFmYTEtMDI0MmFjMTIwMDAyIiwgInNjb3BlIjoiZGVmYXVsdCJ9.RfKQq2fUZKZFAyjimvsPD3cOzaVWazabmq7b1iKYacqIdNjkvO9CQmu7qdtrVNDmdZ_gHhWLXiGhN4UTSCXv_n1ArDnxTLFBroRS8dxuFBZoD9Mpj10vYFSDDhUfFqjgMqtpr30TpDMfee1wkqB6K757ZSjgCDa0hAbv555GkLdZtRsSgR3xWcxPBsIozqAMFDCWoUCbgTQuA5OiEhhpVco2zv4XLq2sz--VRoBieO12C69KnGRmoLuPtvOayInvrnV96Tbt9fR0fLS2l1nvAdFzVou0SIf9rMZLnURLVQQYE64GR14m-cFRYdUI9vTsFHZBl5w-uCLdzMMofzZaLQ' + ``` + +=== "Sample Response" + ``` + [ + { + "id": "1234123", + "name": "Mrs. Heily Feyers", + "department": "IT" + }, + { + "id": "23451234", + "name": "Mr. Brendon MacSmith", + "department": "Sales" + }, + { + "id": "34561234", + "name": "Mr. Peter Queenslander", + "department": "IT" + }, + { + "id": "45671243", + "name": "Miss. Liza MacAdams", + "department": "Finance" + } + ] + ``` +=== "Request Format" + ``` + curl --location 'https://:9095//4.0/employees' \ + --header 'Host: ' \ + --header 'Authorization: bearer ' + ``` diff --git a/en/docs/develop-and-deploy-api/api-versions/create-an-api-versions.md b/en/docs/develop-and-deploy-api/api-versions/create-an-api-versions.md deleted file mode 100644 index 3d6c7c47f..000000000 --- a/en/docs/develop-and-deploy-api/api-versions/create-an-api-versions.md +++ /dev/null @@ -1,160 +0,0 @@ -# Create an API Version - -This documentation explains how to create an API version in WSO2 APK. Follow the steps below to create an API version. - -## Before you begin - -- [Create an API](../../get-started/quick-start-guide.md) - -## Create an API version - -### Retrieve existing API configuration. -Here, you can use the apk-conf file which is created in [Create an API](../../get-started/quick-start-guide.md) documentation and save this content into a file named `EmployeeServiceV2.apk-conf`. - -Sample content before the modification is shown below. - ``` - name: "EmployeeServiceAPI" - basePath: "/test" - version: "3.14" - type: "REST" - defaultVersion: false - endpointConfigurations: - production: - endpoint: "https://run.mocky.io/v3/1327c339-354b-4080-8296-f6268365e67b" - operations: - - target: "/employee" - verb: "GET" - secured: true - scopes: [] - - target: "/employee" - verb: "POST" - secured: true - scopes: [] - - target: "/employee/{employeeId}" - verb: "PUT" - secured: true - scopes: [] - - target: "/employee/{employeeId}" - verb: "DELETE" - secured: true - scopes: [] - ``` - -### Update the API configuration with the new version. - - - - - - - - - - - -
ParameterDescription
version: "3.14"
Change the version parameter to "4.0"
- - Sample content after the modification is shown below. - ``` - name: "EmployeeServiceAPI" - basePath: "/test" - version: "4.0" - type: "REST" - defaultVersion: false - endpointConfigurations: - production: - endpoint: "https://run.mocky.io/v3/1327c339-354b-4080-8296-f6268365e67b" - operations: - - target: "/employee" - verb: "GET" - secured: true - scopes: [] - - target: "/employee" - verb: "POST" - secured: true - scopes: [] - - target: "/employee/{employeeId}" - verb: "PUT" - secured: true - scopes: [] - - target: "/employee/{employeeId}" - verb: "DELETE" - secured: true - scopes: [] - ``` - -Here, you can do any other related changes to the API configuration as well. - - -### Generate an access token to deploy and invoke an API - -To deploy and invoke the system APIs, we need a valid access token issued by an identity provider (IdP). Follow the ["Generate Access Token"](../../develop-and-deploy-api/security/generate-access-token.md) documentation to generate an access token. - -### Deploy the new version API. - -You now have the API Definition (`EmployeeServiceDefinition.json`) and the updated apk-conf file (`EmployeeServiceV2.apk-conf`) corresponding to the API. We can use these files to deploy the new API in APK. - -Use the values provided in the table below in the body of your request. - - | Field | Value | Required| - |---------------------------------------|---------------------------------------------|---------------------------------------------| - | apkConfiguration | `EmployeeServiceV2.apk-conf` file |:material-check:| - | definitionFile | `EmployeeServiceDefinition.json` file |:material-check:| - -1. Set the access token in the Authorization header as a bearer token. This is the access token received by following the steps under ["Generate an access token to deploy and invoke an API"](#generate-an-access-token-to-deploy-and-invoke-an-api) section above. -2. Execute the API deployment request. You will receive a successful response with an Id for the API. - - === "Request" - - ``` - curl --location 'https://:9095/api/deployer/1.2.0/apis/deploy' \ - --header 'Host: ' \ - --header 'Authorization: bearer ' \ - --form 'apkConfiguration=@"path/to/EmployeeServiceV2.apk-conf"' \ - --form 'definitionFile=@"path/to/EmployeeServiceDefinition.json"' - ``` - - === "Sample Request" - - ``` - curl -k --location 'https://api.am.wso2.com:9095/api/deployer/1.2.0/apis/deploy' \ - --header 'Host: api.am.wso2.com' \ - --header 'Authorization: bearer eyJhbGciOiJSUzI1NiIsICJ0eXAiOiJKV1QiLCAia2lkIjoiZ2F0ZXdheV9jZXJ0aWZpY2F0ZV9hbGlhcyJ9.eyJpc3MiOiJodHRwczovL2lkcC5hbS53c28yLmNvbS90b2tlbiIsICJzdWIiOiI0NWYxYzVjOC1hOTJlLTExZWQtYWZhMS0wMjQyYWMxMjAwMDIiLCAiZXhwIjoxNjg4MTMxNDQ0LCAibmJmIjoxNjg4MTI3ODQ0LCAiaWF0IjoxNjg4MTI3ODQ0LCAianRpIjoiMDFlZTE3NDEtMDA0Ni0xOGE2LWFhMjEtYmQwYTk4ZjYzNzkwIiwgImNsaWVudElkIjoiNDVmMWM1YzgtYTkyZS0xMWVkLWFmYTEtMDI0MmFjMTIwMDAyIiwgInNjb3BlIjoiZGVmYXVsdCJ9.RfKQq2fUZKZFAyjimvsPD3cOzaVWazabmq7b1iKYacqIdNjkvO9CQmu7qdtrVNDmdZ_gHhWLXiGhN4UTSCXv_n1ArDnxTLFBroRS8dxuFBZoD9Mpj10vYFSDDhUfFqjgMqtpr30TpDMfee1wkqB6K757ZSjgCDa0hAbv555GkLdZtRsSgR3xWcxPBsIozqAMFDCWoUCbgTQuA5OiEhhpVco2zv4XLq2sz--VRoBieO12C69KnGRmoLuPtvOayInvrnV96Tbt9fR0fLS2l1nvAdFzVou0SIf9rMZLnURLVQQYE64GR14m-cFRYdUI9vTsFHZBl5w-uCLdzMMofzZaLQ' \ - --form 'apkConfiguration=@"/Users/user/EmployeeServiceV2.apk-conf"' \ - --form 'definitionFile=@"/Users/user/EmployeeServiceDefinition.json"' - ``` - - === "Sample Response" - - ``` - --- - id: "a70e538aeaab278437dc4c3199dbaf6fcb7df2d9" - name: "EmployeeServiceAPI" - basePath: "/test" - version: "4.0" - type: "REST" - defaultVersion: false - endpointConfigurations: - production: - endpoint: "https://run.mocky.io/v3/1327c339-354b-4080-8296-f6268365e67b" - operations: - - target: "/employee" - verb: "GET" - secured: true - scopes: [] - - target: "/employee" - verb: "POST" - secured: true - scopes: [] - - target: "/employee/{employeeId}" - verb: "PUT" - secured: true - scopes: [] - - target: "/employee/{employeeId}" - verb: "DELETE" - secured: true - scopes: [] - ``` - -By now, you have deployed the new version of the API. You can invoke the new version of the API using the access token generated in the previous step. - diff --git a/en/docs/develop-and-deploy-api/api-versions/default-version.md b/en/docs/develop-and-deploy-api/api-versions/default-version.md index 86b3f3f48..2cfcd19b8 100644 --- a/en/docs/develop-and-deploy-api/api-versions/default-version.md +++ b/en/docs/develop-and-deploy-api/api-versions/default-version.md @@ -4,41 +4,41 @@ This documentation explains how to make an API version the default version in WS ## Before you begin -- [Create an API](../../get-started/quick-start-guide.md) +- Create an API ## Using APK configuration ### Retrieve existing API configuration. -Here, you can use the apk-conf file which is created in [Create an API](../../get-started/quick-start-guide.md) documentation and save this content into a file named `EmployeeServiceDefaultVersion.apk-conf`. +Here, you can use the apk-conf file which is created in Create an API documentation and save this content into a file named `EmployeeServiceDefaultVersion.apk-conf`. Sample content before the modification is shown below. - ``` - name: "EmployeeServiceAPI" - basePath: "/test" - version: "3.14" - type: "REST" - defaultVersion: false - endpointConfigurations: - production: - endpoint: "https://run.mocky.io/v3/1327c339-354b-4080-8296-f6268365e67b" - operations: - - target: "/employee" - verb: "GET" - secured: true - scopes: [] - - target: "/employee" - verb: "POST" - secured: true - scopes: [] - - target: "/employee/{employeeId}" - verb: "PUT" - secured: true - scopes: [] - - target: "/employee/{employeeId}" - verb: "DELETE" - secured: true - scopes: [] - ``` +``` +name: "EmployeeServiceAPI" +basePath: "/employees-info" +version: "3.14" +type: "REST" +defaultVersion: false +endpointConfigurations: + production: + endpoint: "http://employee-service:8080" +operations: +- target: "/employees + verb: "GET" + secured: true + scopes: [] +- target: "/employee" + verb: "POST" + secured: true + scopes: [] +- target: "/employee/{employeeId}" + verb: "PUT" + secured: true + scopes: [] +- target: "/employee/{employeeId}" + verb: "DELETE" + secured: true + scopes: [] +``` ### Change the 'defaultVersion' configuration. @@ -55,39 +55,39 @@ Sample content before the modification is shown below.
Sample content after the modification is shown below. - ``` - name: "EmployeeServiceAPI" - basePath: "/test" - version: "4.0" - type: "REST" - defaultVersion: true - endpointConfigurations: - production: - endpoint: "https://run.mocky.io/v3/1327c339-354b-4080-8296-f6268365e67b" - operations: - - target: "/employee" - verb: "GET" - secured: true - scopes: [] - - target: "/employee" - verb: "POST" - secured: true - scopes: [] - - target: "/employee/{employeeId}" - verb: "PUT" - secured: true - scopes: [] - - target: "/employee/{employeeId}" - verb: "DELETE" - secured: true - scopes: [] - ``` +``` +name: "EmployeeServiceAPI" +basePath: "/employees-info" +version: "3.14" +type: "REST" +defaultVersion: true +endpointConfigurations: + production: + endpoint: "http://employee-service:8080" +operations: +- target: "/employees + verb: "GET" + secured: true + scopes: [] +- target: "/employee" + verb: "POST" + secured: true + scopes: [] +- target: "/employee/{employeeId}" + verb: "PUT" + secured: true + scopes: [] +- target: "/employee/{employeeId}" + verb: "DELETE" + secured: true + scopes: [] +``` Here, you can do any other related changes to the API configuration as well. ### Generate an access token to deploy and invoke an API -To deploy and invoke the system APIs, we need a valid access token issued by an identity provider (IdP). Follow the ["Generate Access Token"](../../develop-and-deploy-api/security/generate-access-token.md) documentation to generate an access token. +To deploy and invoke the system APIs, we need a valid access token issued by an identity provider (IdP). Follow the Generate Access Token documentation to generate an access token. ### Deploy the default version API. @@ -96,12 +96,12 @@ You now have the API Definition (`EmployeeServiceDefinition.json`) and the updat Use the values provided in the table below in the body of your request. - | Field | Value | Required| - |---------------------------------------|---------------------------------------------|---------------------------------------------| - | apkConfiguration | `EmployeeServiceDefaultVersion.apk-conf` file |:material-check:| - | definitionFile | `EmployeeServiceDefinition.json` file |:material-check:| + | Field | Value | Required | + | ---------------- | --------------------------------------------- | ---------------- | + | apkConfiguration | `EmployeeServiceDefaultVersion.apk-conf` file | :material-check: | + | definitionFile | `EmployeeServiceDefinition.json` file | :material-check: | -1. Set the access token in the Authorization header as a bearer token. This is the access token received by following the steps under ["Generate an access token to deploy and invoke an API"](#generate-an-access-token-to-deploy-and-invoke-an-api) section above. +1. Set the access token in the Authorization header as a bearer token. This is the access token received by following the steps under [Generate an access token to deploy and invoke an API](#generate-an-access-token-to-deploy-and-invoke-an-api) section above. 2. Execute the API deployment request. You will receive a successful response with an Id for the API. === "Request" @@ -125,40 +125,120 @@ Use the values provided in the table below in the body of your request. ``` === "Sample Response" - ``` - --- - id: "a70e538aeaab278437dc4c3199dbaf6fcb7df2d9" - name: "EmployeeServiceAPI" - basePath: "/test" - version: "4.0" - type: "REST" - defaultVersion: true - endpointConfigurations: - production: - endpoint: "https://run.mocky.io/v3/1327c339-354b-4080-8296-f6268365e67b" - operations: - - target: "/employee" + name: "EmployeeServiceAPI" + basePath: "/employees-info" + version: "3.14" + type: "REST" + defaultVersion: true + endpointConfigurations: + production: + endpoint: "http://employee-service:8080" + operations: + - target: "/employees verb: "GET" secured: true scopes: [] - - target: "/employee" + - target: "/employee" verb: "POST" secured: true scopes: [] - - target: "/employee/{employeeId}" + - target: "/employee/{employeeId}" verb: "PUT" secured: true scopes: [] - - target: "/employee/{employeeId}" + - target: "/employee/{employeeId}" verb: "DELETE" secured: true scopes: [] ``` - + By now, you have deployed the default version of the API. You can invoke the API using URLs both with and without the versions. Please try out the following URLs, and you will receive the same response: -- https://localhost:9095/test/4.0/employee/ -- https://localhost:9095/test/employee/ +- https://default.gw.wso2.com:9095/employees-info/3.14/employees/ +- https://default.gw.wso2.com:9095/employees-info/employees/ + +Let's first send a request to the URL with the API version in it. + +=== "Sample Request" + ``` + curl -k --location 'https://default.gw.wso2.com:9095/employees-info/3.14/employees' \ + --header 'Host: default.gw.wso2.com' \ + --header 'Authorization: bearer eyJhbGciOiJSUzI1NiIsICJ0eXAiOiJKV1QiLCAia2lkIjoiZ2F0ZXdheV9jZXJ0aWZpY2F0ZV9hbGlhcyJ9.eyJpc3MiOiJodHRwczovL2lkcC5hbS53c28yLmNvbS90b2tlbiIsICJzdWIiOiI0NWYxYzVjOC1hOTJlLTExZWQtYWZhMS0wMjQyYWMxMjAwMDIiLCAiZXhwIjoxNjg4MTMxNDQ0LCAibmJmIjoxNjg4MTI3ODQ0LCAiaWF0IjoxNjg4MTI3ODQ0LCAianRpIjoiMDFlZTE3NDEtMDA0Ni0xOGE2LWFhMjEtYmQwYTk4ZjYzNzkwIiwgImNsaWVudElkIjoiNDVmMWM1YzgtYTkyZS0xMWVkLWFmYTEtMDI0MmFjMTIwMDAyIiwgInNjb3BlIjoiZGVmYXVsdCJ9.RfKQq2fUZKZFAyjimvsPD3cOzaVWazabmq7b1iKYacqIdNjkvO9CQmu7qdtrVNDmdZ_gHhWLXiGhN4UTSCXv_n1ArDnxTLFBroRS8dxuFBZoD9Mpj10vYFSDDhUfFqjgMqtpr30TpDMfee1wkqB6K757ZSjgCDa0hAbv555GkLdZtRsSgR3xWcxPBsIozqAMFDCWoUCbgTQuA5OiEhhpVco2zv4XLq2sz--VRoBieO12C69KnGRmoLuPtvOayInvrnV96Tbt9fR0fLS2l1nvAdFzVou0SIf9rMZLnURLVQQYE64GR14m-cFRYdUI9vTsFHZBl5w-uCLdzMMofzZaLQ' + ``` +=== "Sample Response" + ``` + [ + { + "id": "1234123", + "name": "Mrs. Heily Feyers", + "department": "IT" + }, + { + "id": "23451234", + "name": "Mr. Brendon MacSmith", + "department": "Sales" + }, + { + "id": "34561234", + "name": "Mr. Peter Queenslander", + "department": "IT" + }, + { + "id": "45671243", + "name": "Miss. Liza MacAdams", + "department": "Finance" + } + ] + ``` +=== "Request Format" + ``` + curl --location 'https://:9095//3.14/employees' \ + --header 'Host: ' \ + --header 'Authorization: bearer ' + ``` + +Now, let's send a request to the URL **without** the API version in it. + +=== "Sample Request" + ``` + curl -k --location 'https://default.gw.wso2.com:9095/employees-info/employees' \ + --header 'Host: default.gw.wso2.com' \ + --header 'Authorization: bearer eyJhbGciOiJSUzI1NiIsICJ0eXAiOiJKV1QiLCAia2lkIjoiZ2F0ZXdheV9jZXJ0aWZpY2F0ZV9hbGlhcyJ9.eyJpc3MiOiJodHRwczovL2lkcC5hbS53c28yLmNvbS90b2tlbiIsICJzdWIiOiI0NWYxYzVjOC1hOTJlLTExZWQtYWZhMS0wMjQyYWMxMjAwMDIiLCAiZXhwIjoxNjg4MTMxNDQ0LCAibmJmIjoxNjg4MTI3ODQ0LCAiaWF0IjoxNjg4MTI3ODQ0LCAianRpIjoiMDFlZTE3NDEtMDA0Ni0xOGE2LWFhMjEtYmQwYTk4ZjYzNzkwIiwgImNsaWVudElkIjoiNDVmMWM1YzgtYTkyZS0xMWVkLWFmYTEtMDI0MmFjMTIwMDAyIiwgInNjb3BlIjoiZGVmYXVsdCJ9.RfKQq2fUZKZFAyjimvsPD3cOzaVWazabmq7b1iKYacqIdNjkvO9CQmu7qdtrVNDmdZ_gHhWLXiGhN4UTSCXv_n1ArDnxTLFBroRS8dxuFBZoD9Mpj10vYFSDDhUfFqjgMqtpr30TpDMfee1wkqB6K757ZSjgCDa0hAbv555GkLdZtRsSgR3xWcxPBsIozqAMFDCWoUCbgTQuA5OiEhhpVco2zv4XLq2sz--VRoBieO12C69KnGRmoLuPtvOayInvrnV96Tbt9fR0fLS2l1nvAdFzVou0SIf9rMZLnURLVQQYE64GR14m-cFRYdUI9vTsFHZBl5w-uCLdzMMofzZaLQ' + ``` + +=== "Sample Response" + ``` + [ + { + "id": "1234123", + "name": "Mrs. Heily Feyers", + "department": "IT" + }, + { + "id": "23451234", + "name": "Mr. Brendon MacSmith", + "department": "Sales" + }, + { + "id": "34561234", + "name": "Mr. Peter Queenslander", + "department": "IT" + }, + { + "id": "45671243", + "name": "Miss. Liza MacAdams", + "department": "Finance" + } + ] + ``` +=== "Request Format" + ``` + curl --location 'https://:9095//employees' \ + --header 'Host: ' \ + --header 'Authorization: bearer ' + ``` + +As you can see, both requests return the same response. Both of these requests are directed to the same backend and utilize the same API policies. For example, if you set up a rate limit for a particular operation, the rate limit will be applied for both invocations, and the same rate limit counter will be used. diff --git a/en/docs/develop-and-deploy-api/api-versions/semver-based-intelligent-routing.md b/en/docs/develop-and-deploy-api/api-versions/semver-based-intelligent-routing.md index ca004c7de..a328a9bc0 100644 --- a/en/docs/develop-and-deploy-api/api-versions/semver-based-intelligent-routing.md +++ b/en/docs/develop-and-deploy-api/api-versions/semver-based-intelligent-routing.md @@ -3,11 +3,12 @@ When working with APIs, it is important to have an effective API versioning mechanism. APK follows a versioning mechanism based on Semantic Versioning (SemVer) but only includes the major version and minor version with the prefix v. For example, v1.2. You can follow the approach given below when you version APIs: + - Increment the major version when you make incompatible API changes. - Increment the minor version when you add functionality in a backward-compatible manner. !!! info "What is Semantic Versioning?" - Semantic Versioning (SemVer) is a specification that defines how to assign and increment version numbers for software products, including APIs. For more information, see [Semantic Versioning specification](https://semver.org/#semantic-versioning-specification-semver). + Semantic Versioning (SemVer) is a specification that defines how to assign and increment version numbers for software products, including APIs. For more information, refer the Semantic Versioning Specification. In compliance with SemVer, changes that don't introduce breaking or additive modifications to the API are categorized as patch updates. However, from the perspective of API consumers, these changes should ideally not disrupt their API clients. Typically, API consumers are most concerned with major API version alterations, but there might be instances where minor version changes are communicated to them. Hence, API versions are only required to specify major and minor versions. @@ -19,15 +20,15 @@ When the Intelligent Routing feature is enabled in APK: Consider a scenario where the following APIs are deployed with varying versions: | API Name | API Version | API Context | -| --------------------- | ----------- |----------------| -| Employee Service v1 | v1.0 | /emp-info/v1.0 | -| Employee Service v1.1 | v1.1 | /emp-info/v1.1 | +| --------------------- | ----------- | -------------- | +| Employee Service v1 | v1.0 | /emp-info/v1.0 | +| Employee Service v1.1 | v1.1 | /emp-info/v1.1 | The API invocations yield the subsequent responses: - https://default.gw.wso2.com:9095/emp-info/v1.0/employee → Routed to Employee Service 1 - https://default.gw.wso2.com:9095/emp-info/v1.1/employee → Routed to Employee Service 2 -- https://default.gw.wso2.com:9095/emp-info/v1/employee → Routed to the latest version of the Employee Service, v1.1 +- https://default.gw.wso2.com:9095/emp-info/v1/employee → Routed to the latest version of the Employee Service, v1.1 ## Try Intelligent Routing in APK diff --git a/en/docs/reachout/community.md b/en/docs/reachout/community.md index a9ac0000f..24fc119ad 100644 --- a/en/docs/reachout/community.md +++ b/en/docs/reachout/community.md @@ -2,5 +2,5 @@ If you're using the WSO2 APK platform and need help, don't hesitate to reach out to the community for assistance. Two great resources for getting help are the WSO2 Collectives forum and the WSO2 Discord server. Both of these resources provide a platform for developers and users to ask questions, share knowledge, and get support from the community. Whether you're experiencing a technical issue, have a question about a feature, or just need some guidance on using the platform, there are plenty of people in the community who are happy to help. By reaching out to these resources, you can tap into the collective expertise of the community and get the help you need to succeed with the APK platform. So don't be afraid to ask for help - the WSO2 community is here to support you. -- [Discord](https://discord.com/invite/Xa5VubmThw?utm_source=wso2-dev&utm_medium=link&utm_campaign=wso2-dev_link_from-dev-homepage_221002) -- [Stack Overflow](https://stackoverflow.com/collectives/wso2) +- Discord +- Stack Overflow diff --git a/en/docs/setup/enterprise-apim-apk-agent-install.md b/en/docs/setup/enterprise-apim-apk-agent-install.md index f00f0a01d..aeea5885a 100644 --- a/en/docs/setup/enterprise-apim-apk-agent-install.md +++ b/en/docs/setup/enterprise-apim-apk-agent-install.md @@ -2,7 +2,7 @@ ## Before you begin... -Install the [prerequisites](../../setup/prerequisites) that are required to run WSO2 API Platform For Kubernetes. +Install the prerequisites that are required to run WSO2 APK. ## Start WSO2 API Platform For Kubernetes Enterprise Version diff --git a/en/docs/setup/enterprise-apk-install.md b/en/docs/setup/enterprise-apk-install.md index 63e0dfffe..c41bd0e56 100644 --- a/en/docs/setup/enterprise-apk-install.md +++ b/en/docs/setup/enterprise-apk-install.md @@ -2,7 +2,7 @@ ## Before you begin... -Install the [prerequisites](../../setup/prerequisites) that are required to run WSO2 API Platform For Kubernetes. +Install the prerequisites that are required to run WSO2 APK. ## Start WSO2 API Platform For Kubernetes Enterprise Version diff --git a/en/docs/setup/identity-platform/idp/asgardeo-idp.md b/en/docs/setup/identity-platform/idp/asgardeo-idp.md index 794c6ee6c..af2fae90d 100644 --- a/en/docs/setup/identity-platform/idp/asgardeo-idp.md +++ b/en/docs/setup/identity-platform/idp/asgardeo-idp.md @@ -4,26 +4,26 @@ Follow the instructions below to use Asgardeo as the Identity Provider (IdP) to ## Step 1 - Create root Organization -[Create an organization in Asgardeo](https://wso2.com/asgardeo/docs/guides/organization-management/manage-organizations/#create-a-new-organization). +Create an organization in Asgardeo ## Step 2 - Create a Sub-Organization. -[Create a sub-organization in Asgardeo](https://wso2.com/asgardeo/docs/guides/organization-management/manage-organizations/#build-an-organizational-hierarchy) within the organization that you created. +Create a sub organization in Asgardeo within the organization that you created. ## Step 3 - Create a user -[Create a user within the sub-organization](https://wso2.com/asgardeo/docs/guides/users/manage-customers/#onboard-a-user) that you created. +Create a user within the sub-organization that you created. ## Step 4 - Create an application -1. [Create an application](https://wso2.com/asgardeo/docs/guides/applications/register-oidc-web-app/#register-the-app) within the main organization that you created in Step 1. +1. Create an application within the main organization that you created in Step 1. 2. Click on the newly created application. 3. Click on the **Info** tab to view the IDP related configurations. All the IDP related configurations are listed under **Service Endpoints**. -4. [Share application with sub-organizations](https://wso2.com/asgardeo/docs/guides/organization-management/share-applications/). - +4. Share the application with sub-organizations + ## Step 5 - Add a new token issuer for the IDP 1. Access the endpoints that correspond to the application, which is available in the asgradeo portal. @@ -107,7 +107,7 @@ Follow the instructions below to use Asgardeo as the Identity Provider (IdP) to ## Step 5 - Update the Helm Chart - 1. Follow the instructions outlined in [Customize Configurations](../../Customize-Configurations.md). These instructions will guide you through the process of acquiring the `values.yaml` file. Open the `values.yaml` file. + 1. Follow the instructions outlined in the customize configurations documentation. These instructions will guide you through the process of acquiring the `values.yaml` file. Open the `values.yaml` file. 2. Update the IDP related configurations in the `idp` section. 3. Create a K8s Secret with retrieved `clientId` and `clientSecret` from Step 4 with name `apk-idp-secret`. ``` diff --git a/en/docs/setup/identity-platform/idp/auth0-idp.md b/en/docs/setup/identity-platform/idp/auth0-idp.md index 32584cf38..96b3a9641 100644 --- a/en/docs/setup/identity-platform/idp/auth0-idp.md +++ b/en/docs/setup/identity-platform/idp/auth0-idp.md @@ -4,26 +4,26 @@ Follow the instructions below to use Auth0 as the Identity Provider (IdP) to aut ## Step 1 - Create an Organization -[Create an organization in Auth0](https://auth0.com/docs/manage-users/organizations/configure-organizations/create-organizations). +Create an organization in Auth0. For testing purposes let's create an organization named `org1`. ## Step 2 - Create a user -If you have not created the user already, [create a user](https://auth0.com/docs/manage-users/user-accounts/create-users). +If you have not created the user already, create a user. ## Step 3 - Assign the user to the organization -[Assign the member to the Organization](https://auth0.com/docs/manage-users/organizations/configure-organizations/assign-members), which you created in Step 1. +Assign the member to the Organization, which you created in Step 1. ## Step 4 - Enable a connection -[Add a connection for your organization](https://auth0.com/docs/manage-users/organizations/configure-organizations/enable-connections) as Username-Password-Authentication. +Add a connection for your organization as Username-Password-Authentication. ## Step 5 - Create an application -1. [Create an application](https://auth0.com/docs/get-started/auth0-overview/create-applications). - +1. Create an application. + Let's create an application as `My App`. 2. Configure the application. @@ -32,10 +32,9 @@ If you have not created the user already, [create a user](https://auth0.com/docs - Define the type of users that will log in to this application - `Individuals` -## Step 5 - Add a custom claim for the organization - -You need to add a [custom claim](https://auth0.com/docs/secure/tokens/json-web-tokens/create-custom-claims) to the tokens to identify the organization. +## Step 6 - Add a custom claim for the organization +You need to add a custom claim to the tokens to identify the organization. 1. Create a custom action for the login flow. @@ -55,15 +54,12 @@ You need to add a [custom claim](https://auth0.com/docs/secure/tokens/json-web-t | `org1 (claim value)` | A value to identify the organization. You can add any identifier for the organization like organization name. | -1. Apply the custom action to the Post Login flow. +2. Apply the custom action to the Post Login flow. - Go to **Actions > Flows > Login > Custom** and select the created action `addOrgclaim` and drop that to the flow. - - ## Step 6 - Add a new token issuer for the IDP -1. [Access the endpoints that correspond to the application](https://auth0.com/docs/get-started/applications/application-settings#endpoints), which is available in the **Advanced Settings** section. - +1. Access the endpoints that correspond to the application, which is available in the **Advanced Settings** section. 2. Create two file named `idp-system-token-issuer.yaml` and `idp-org-token-issuer.yaml` add the following content to it. diff --git a/en/docs/setup/listeners/configure-gateway-listeners.md b/en/docs/setup/listeners/configure-gateway-listeners.md index 45895fc00..fc69df759 100644 --- a/en/docs/setup/listeners/configure-gateway-listeners.md +++ b/en/docs/setup/listeners/configure-gateway-listeners.md @@ -11,11 +11,11 @@ This section is a step-by-step guide to add or configure existing listeners the ## Before you begin... -Install the [prerequisites](../prerequisites.md) that are required to run WSO2 API Platform For Kubernetes. +Install the prerequisites that are required to run WSO2 APK. ## Step 1 - Start WSO2 API Platform For Kubernetes -[Start the APK deployment ](../../get-started/quick-start-guide.md). +Start the APK deployment. ## Step 2 - Adding a new listener diff --git a/en/mkdocs.yml b/en/mkdocs.yml index 6a63584a2..143ffe686 100644 --- a/en/mkdocs.yml +++ b/en/mkdocs.yml @@ -159,7 +159,7 @@ nav: - OAuth2: develop-and-deploy-api/security/authentication/enable-api-security/oauth2.md - Mutual SSL: develop-and-deploy-api/security/authentication/enable-api-security/mtls.md - API Versions: - - Create an API Version: develop-and-deploy-api/api-versions/create-an-api-versions.md + - Create an API Version: develop-and-deploy-api/api-versions/create-an-api-version.md - Default Version: develop-and-deploy-api/api-versions/default-version.md - Semantic Versioning Based Intelligent Routing: develop-and-deploy-api/api-versions/semver-based-intelligent-routing.md #- Backward Compatibility: develop-and-deploy-api/api-versions/backward-compatibility.md