Skip to content
1 change: 1 addition & 0 deletions en/devportal-theming/manage-keys.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
60 changes: 60 additions & 0 deletions en/docs/create-api-proxy/my-apis/graphql/import-api-contract.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Import API Contract

A GraphQL API proxy operates based on the GraphQL query language specification. GraphQL provides a flexible and efficient approach to API development by allowing clients to request exactly the data they need, nothing more and nothing less.

Unlike traditional REST APIs that require multiple endpoints for different resources, GraphQL uses a single endpoint and a type system to define the API's capabilities. This enables clients to compose complex queries that fetch related data in a single request, reducing over-fetching and under-fetching of data. GraphQL is ideal for applications that need flexible data fetching and efficient data aggregation.

In this guide, you will:

- Create a GraphQL API proxy.
- Configure and Deploy the API proxy.
- Test the API proxy to verify its functionality.

## Prerequisites

- If you're signing in to the Bijira Console for the first time, create an organization:
1. Go to [Bijira Console](https://console.bijira.dev/) and sign in using your preferred method.
2. Enter a unique organization name. For example, `Stark Industries`.
3. Read and accept the privacy policy and terms of use.
4. Click **Create**.

This creates the organization and opens the **Project Home** page of the default project created for you.

## Create an API Proxy

In this guide, you will use a sample URL to import a GraphQL schema definition and create a GraphQL API proxy.

1. Go to [Bijira Console](https://console.bijira.dev/) and sign in. This opens the project home page.
2. If you already have one or more components in your project, click + Create. Otherwise, proceed to the next step.
3. Select **Import API Contract**.
4. Select the API Type as **GraphQL**.
5. Select **URL** option and click **Try with Sample URL** to use the sample GraphQL schema URL.

6. Click **Next** and edit pre-defined values as needed. You can keep the default values for this sample.
7. Click **Create** to create the API Proxy. Wait for the setup to complete.

## Configure and Deploy the API Proxy

1. Navigate to the **Deploy** page of the API Proxy.
2. Select **Configure and Deploy** option from the **Deploy** dropdown and click it.
3. Select **External** as API Access Mode.
4. Click **Deploy**.

## Test the API Proxy

1. Navigate to the **Test --> Console** page of the API Proxy.
2. Use the GraphQL Console to test the API Proxy.

## Promote the API Proxy to Production and Publish the API proxy

1. Navigate to the **Deploy** page of the API Proxy.
2. Select **Promote to Production**.
3. In the left navigation menu, click **Lifecycle** under **Develop**. This takes you to the **Lifecycle** page.
4. Click **Publish**.
5. In the **Publish API** dialog, click **Confirm** to proceed with publishing the API. If you want to change the display name, make the necessary changes and then click **Confirm**. This sets the API lifecycle state to **Published**.

## API Proxy Behavior

This GraphQL API Proxy enables clients to query data using GraphQL queries and mutations. Clients can request exactly the fields they need, reducing bandwidth and improving performance. The API supports complex queries that fetch related data in a single request, making it efficient for applications with varying data requirements.


53 changes: 53 additions & 0 deletions en/docs/create-api-proxy/my-apis/graphql/start-with-endpoint.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Create API proxy from Start with Endpoint

A GraphQL API proxy operates based on the GraphQL query language specification. GraphQL provides a flexible and efficient approach to API development by allowing clients to request exactly the data they need, nothing more and nothing less.

Unlike traditional REST APIs that require multiple endpoints for different resources, GraphQL uses a single endpoint and a type system to define the API's capabilities. This enables clients to compose complex queries that fetch related data in a single request, reducing over-fetching and under-fetching of data. GraphQL is ideal for applications that need flexible data fetching, real-time subscriptions, and efficient data aggregation.

## Prerequisites

- If you're signing in to the Bijira Console for the first time, create an organization:
1. Go to [Bijira Console](https://console.bijira.dev/) and sign in using your preferred method.
2. Enter a unique organization name. For example, `Stark Industries`.
3. Read and accept the privacy policy and terms of use.
4. Click **Create**.

This creates the organization and opens the **Project Home** page of the default project created for you.

## Create an API Proxy

In this guide, you will create a GraphQL API proxy using an endpoint.

1. Go to [Bijira Console](https://console.bijira.dev/) and sign in. This opens the project home page.
2. If you already have one or more components in your project, click + Create. Otherwise, proceed to the next step.
3. Select **Start with Endpoint**.
4. Select the API Type as **GraphQL**.
5. Click **Try with Sample URL** to use the sample GraphQL endpoint URL.

6. Click outside the input field or press Tab to validate the endpoint. Bijira will automatically validate the endpoint and fetch the GraphQL schema through introspection. Wait for the validation to complete.

7. Click **Next**.
8. Edit the pre-defined values as needed. You can keep the default values for this sample.

9. Click **Create** to create the API Proxy. Wait for the setup to complete.

## Configure and Deploy the API Proxy

1. Navigate to the **Deploy** page of the API Proxy.
2. Select **Configure and Deploy** option from the **Deploy** dropdown and click it.
3. Select **External** as API Access Mode.
4. Click **Deploy**.

## Test the API Proxy

1. Navigate to the **Test --> Console** page of the API Proxy.
2. Use the GraphQL Console to test the API Proxy.

## Promote the API Proxy to Production and Publish the API proxy

1. Navigate to the **Deploy** page of the API Proxy.
2. Select **Promote to Production**.
3. In the left navigation menu, click **Lifecycle** under **Develop**. This takes you to the **Lifecycle** page.
4. Click **Publish**.
5. In the **Publish API** dialog, click **Confirm** to proceed with publishing the API. If you want to change the display name, make the necessary changes and then click **Confirm**. This sets the API lifecycle state to **Published**.

30 changes: 27 additions & 3 deletions en/docs/create-api-proxy/my-apis/http/import-api-from-github.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,30 @@ An API proxy acts as an intermediary between an existing API and Bijira, interce

2. Fork the [Bijira samples repository](https://github.com/wso2/bijira-samples), which contains the [sample proxy source](https://github.com/wso2/bijira-samples/tree/main/reading-list-api).

## Configure component.yaml

When creating an API proxy from a GitHub repository, you must include a `component.yaml` configuration file in your repository. This file must be located at `.choreo/component.yaml` within your API directory.

### Required Configuration

The `component.yaml` file for API proxies must include the following structure:

```yaml
proxy:
type: REST
schemaFilePath: openapi.yaml
```

### Configuration Fields

| **Field** | **Required** | **Description** |
|-----------|--------------|-----------------|
| `proxy.type` | Required | The type of API proxy. Supported values are: <br>- `REST` - For REST APIs (uses OpenAPI specification) <br>- `WS` - For WebSocket APIs (uses AsyncAPI specification) |
| `proxy.schemaFilePath` | Required | The path to your API specification file relative to the API directory. For REST APIs, this should point to your OpenAPI specification file (e.g., `openapi.yaml`). For WebSocket APIs, this should point to your AsyncAPI specification file (e.g., `asyncapi.yaml`). |

!!! note
The `component.yaml` file must be present in the `.choreo` directory within your API directory for Bijira to successfully build and deploy your API proxy from GitHub.

## Step 1: Create an API proxy

You can create an API proxy either by selecting the source from a GitHub repository, uploading an OpenAPI specification file, or providing an OpenAPI specification URL. This guide demonstrates how to create an API proxy using a GitHub repository as the source.
Expand Down Expand Up @@ -44,7 +68,7 @@ You can create an API proxy either by selecting the source from a GitHub reposit
| **API Directory** | /reading-list-api |


![Create API from Github](../../assets/img/create-api-proxy/import-from-github/api_from_github_select_repo.png)
![Create API from Github](../../../assets/img/create-api-proxy/import-from-github/api_from_github_select_repo.png)

!!! note
To select the relevant directory, click on the **Edit** action next to the **API Directory** input field. Then, enter `reading-list-api` as the directory name to quickly search and locate the correct directory.
Expand All @@ -70,14 +94,14 @@ You can create an API proxy either by selecting the source from a GitHub reposit
1. In the left navigation menu, click **Deploy**.
2. If the build is in progress, you can view the Build information.

![Create API from Github](../../assets/img/create-api-proxy/import-from-github/api_from_github_build_page.png)
![Create API from Github](../../../assets/img/create-api-proxy/import-from-github/api_from_github_build_page.png)


<!-- keep list -->
3. Once the build is completed, in the deploy navigation menu, in the **Build Area** card, click **Configure & Deploy**.
This opens the **Configure & Deploy** pane. <br><br>
4. Select **External** as the **API Access Mode** and click **Deploy**. The **Development** card indicates the **Deployment Status** as **Active** when the API proxy is successfully deployed.

![Create API from Github](../../assets/img/create-api-proxy/import-from-github/api_from_github_deploy_page.png)
![Create API from Github](../../../assets/img/create-api-proxy/import-from-github/api_from_github_deploy_page.png)

Now, you are ready to test the API proxy. You can test the API via the [OpenAPI Console](../../../test-api-proxy/openapi-console/) provided in Bijira
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ To establish secure communication between the Bijira Gateway and your backend, y

Mutual TLS authentication involves both the client and server validating each other’s certificates before establishing a connection. The following diagram depicts this scenario:

![Mutual TLS authentication](../assets/img/authentication-and-authorization/mutual-ssl-authentication.png)
![Mutual TLS authentication](../../assets/img/authentication-and-authorization/mutual-ssl-authentication.png)
Comment thread
coderabbitai[bot] marked this conversation as resolved.

## Configure mutual TLS to establish secure connectivity

Expand Down Expand Up @@ -46,17 +46,17 @@ Follow the step-by-step instructions below depending on how you want to establis
7. Click **Add Client Certificate**.
8. In the **Add Client Certificate Pair** dialog, select **Generate new key pair** and specify a value as the common name for the certificate pair. This value will be used to identify the certificate.

![Generate new key pair](../assets/img/authentication-and-authorization/generate-new-key-pair.png)
![Generate new key pair](../../assets/img/authentication-and-authorization/generate-new-key-pair.png)

9. Optionally, click **Show advanced options** to expand the section and specify appropriate values for each of the fields.
10. Click **Generate**. This generates the certificate and lists it under **Existing Certificates**.
11. Click the more options icon corresponding to the certificate and then click **View and Download**.

![View and download certificate](../assets/img/authentication-and-authorization/view-and-download.png)
![View and download certificate](../../assets/img/authentication-and-authorization/view-and-download.png)

This opens the certificate for you to view and download.

![Certificate details](../assets/img/authentication-and-authorization/certificate-details.png)
![Certificate details](../../assets/img/authentication-and-authorization/certificate-details.png)

12. To download the certificate in PEM format, click **Download**. You can add this certificate as a trusted certificate in the API backend server.

Expand All @@ -74,17 +74,17 @@ Follow the step-by-step instructions below depending on how you want to establis
7. Click **Add Client Certificate**.
8. In the **Add Client Certificate Pair** dialog, select **Use my own key pair**.

![Use own key pair](../assets/img/authentication-and-authorization/use-own-key-pair.png)
![Use own key pair](../../assets/img/authentication-and-authorization/use-own-key-pair.png)

9. Upload the private key and public certificate in PEM format or copy and paste the content of the private key and public certificate.
10. Click **Add**. This generates the certificate and lists it under **Existing Certificates**.
11. Click the more options icon corresponding to the certificate and then click **View and Download**.

![View and download certificate](../assets/img/authentication-and-authorization/view-and-download.png)
![View and download certificate](../../assets/img/authentication-and-authorization/view-and-download.png)

This opens the certificate for you to view and download.
This opens the certificate for you to view and download.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

Minor text formatting anomaly.

Line 85 contains "the certificate" with an extra space. Confirm whether this is intentional or an unintended artifact from the editing process.


🏁 Script executed:

#!/bin/bash
# Description: Check for double spaces and other formatting anomalies in the updated file.

# Search for double spaces in the file
grep -n "  " "en/docs/develop-api-proxy/authentication-and-authorization/secure-communication-between-the-bijira-gateway-and-your-backend-with-mutual-tls.md" | head -10

Length of output: 1332


I need to verify the exact content at line 85 to confirm the double space issue.


---

🏁 Script executed:

```shell
#!/bin/bash
# Display line 85 specifically
sed -n '85p' "en/docs/develop-api-proxy/authentication-and-authorization/secure-communication-between-the-bijira-gateway-and-your-backend-with-mutual-tls.md"

Length of output: 64


Fix double space in line 85.

Line 85 contains "the certificate" with an extra space. Update to "the certificate".

🤖 Prompt for AI Agents
In
en/docs/develop-api-proxy/authentication-and-authorization/secure-communication-between-the-bijira-gateway-and-your-backend-with-mutual-tls.md
around line 85, there is a double space in the phrase "the  certificate"; edit
that line to remove the extra space so it reads "the certificate" (i.e., replace
the two spaces with a single space).


![Certificate details](../assets/img/authentication-and-authorization/certificate-details.png)
![Certificate details](../../assets/img/authentication-and-authorization/certificate-details.png)

12. To download the certificate in PEM format, click **Download**. You can add this certificate as a trusted certificate in the API backend server.

Expand All @@ -97,7 +97,7 @@ To associate a certificate with the API, follow the steps given below:
1. On the **Endpoints** page, go to the **Existing Certificates** section.
2. Select the certificate you want to associate with the API.

![Associate certificate](../assets/img/authentication-and-authorization/associate-certificate.png)
![Associate certificate](../../assets/img/authentication-and-authorization/associate-certificate.png)

3. Click **Save**.

Expand All @@ -109,7 +109,7 @@ To deploy the API, follow the steps given below:
2. In the **Build Area** card, click **Configure & Deploy**.
3. Once the mediation application generation phase is complete, verify the endpoint URL populated for the environment and then click **Save & Deploy**.

Once the deployment is complete, you can [test the API](../test-api-proxy/openapi-console.md).
Once the deployment is complete, you can [test the API](../../../test-api-proxy/openapi-console).

## Change the certificate for the production environment

Expand Down
81 changes: 81 additions & 0 deletions en/docs/federation/api-discovery-aws.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Discover APIs from AWS API Gateway

Bijira allows you to discover APIs from AWS API Gateway and bring them under centralized governance.

---

## Prerequisites

Before you begin, ensure you have:

- An active AWS account with access to AWS API Gateway
- Appropriate permissions to create IAM users and manage API Gateway resources
- Admin access to your Bijira organization. (Only required for Step 1 and 2)

---

## Step 1: Configure User Credentials in AWS API Gateway

1. Login to your AWS account and navigate to Console Home. Search for "IAM" in the search bar.
2. Click on the IAM service. Navigate to Users under Access Management.
3. Create an IAM user in AWS with `AmazonAPIGatewayAdministrator` permission.
4. Obtain an Access Key and Secret Key for the IAM user created in the previous step. Select Third-party service as the use case.

!!! Warning
It is not recommended to enter root credentials of the AWS account. Instead, create a new IAM user with the required permissions and use the credentials of the IAM user. For more information see [Best practices for managing AWS access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#securing_access-keys).

---

## Step 2: Add an External Gateway in Bijira

Now that you have your AWS credentials ready, configure the external gateway connection in Bijira.

1. Navigate to **Organization Level** in Bijira.
2. Click **Add External Gateway**.

![Add External Gateway](../assets/img/gateway-federation/add-external-gateway.png)

3. Enter the gateway configuration details:
- **Gateway Name:** A descriptive name for this gateway (e.g., `Production AWS API Gateway`)
- **Region:** The AWS region where your API Gateway is deployed (e.g., `us-east-1`)
- **Stage:** The API Gateway stage to discover APIs from (e.g., `prod`, `dev`)
- **Access Key :** The Access Key from Step 1
- **Secret Key:** The Secret Key from Step 1
4. Click **Save**

![Add External Gateway Details](../assets/img/gateway-federation/add-external-gateway-form.png){ width="800" }

The external gateway is now connected to Bijira and ready for API discovery.

---

## Step 3: Discover APIs from the Gateway

Once the external gateway is configured, you can discover and federate APIs into Bijira.

1. Navigate to a **Project** in Bijira.
2. Click **Create** in the project overview.
3. Click on **Discover APIs**.

![Federate APIs](../assets/img/gateway-federation/federate-apis.png){ width="1000" }

3. Select the external gateway(s) from which you want to discover APIs and proceed with discovery.

4. Click **Discover APIs from Gateways**.
Comment on lines +58 to +64

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix duplicate step numbering.

There are two steps numbered "3" in this section. Line 58 starts "3. Click on Discover APIs" and line 62 starts "3. Select the external gateway(s)...". The second should be step 4.

📝 Proposed fix
 3. Click on **Discover APIs**.

      ![Federate APIs](../assets/img/gateway-federation/federate-apis.png){ width="1000" }

-3. Select the external gateway(s) from which you want to discover APIs and proceed with discovery.
+4. Select the external gateway(s) from which you want to discover APIs and proceed with discovery.

-4. Click **Discover APIs from Gateways**.
+5. Click **Discover APIs from Gateways**.

Also update subsequent step numbers (5→6, 6→7, 7→8).

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
3. Click on **Discover APIs**.
![Federate APIs](../assets/img/gateway-federation/federate-apis.png){ width="1000" }
3. Select the external gateway(s) from which you want to discover APIs and proceed with discovery.
4. Click **Discover APIs from Gateways**.
3. Click on **Discover APIs**.
![Federate APIs](../assets/img/gateway-federation/federate-apis.png){ width="1000" }
4. Select the external gateway(s) from which you want to discover APIs and proceed with discovery.
5. Click **Discover APIs from Gateways**.
🧰 Tools
🪛 LanguageTool

[style] ~62-~62: Consider using an alternative to strengthen your wording.
Context: ... the external gateway(s) from which you want to discover APIs and proceed with disco...

(WANT_KEEN)

🤖 Prompt for AI Agents
In `@en/docs/federation/api-discovery-aws.md` around lines 58 - 64, The numbered
list in the "Discover APIs" section has duplicate step numbers: change the
second "3. Select the external gateway(s)..." to "4." and increment all
following steps (previous 5→6, 6→7, 7→8) so the sequence after "Click on
**Discover APIs**" reads correctly; update the lines containing the texts "Click
on **Discover APIs**", "Select the external gateway(s) from which you want to
discover APIs and proceed with discovery.", and "Click **Discover APIs from
Gateways**." accordingly to maintain a consecutive numbering sequence.


![Select Gateways for API Discovery](../assets/img/gateway-federation/select-gateways.png){ width="1000" }


5. View the list of discovered APIs from the selected gateway(s).

![Select Gateways for API Discovery](../assets/img/gateway-federation/create-discovered-apis.png){ width="1000" }

!!! Note
Only [REST APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-rest-api.html) are supported for discovery from AWS API Gateway.

6. For each API, click **Create** next to the API name. This federates the API into the Bijira control plane.
- Repeat for all desired APIs.
- Navigate to the project **Overview** page to view all federated APIs.
7. You can view the federated API overview by navigating to the API overview page

![Select Gateways for API Discovery](../assets/img/gateway-federation/federated-api-overview.png){ width="900" }
Loading