From 2e5fcbac1bfbd1728442e7f58545fad92bd16ca9 Mon Sep 17 00:00:00 2001 From: Ankcorn Date: Tue, 14 Nov 2023 10:12:10 +0000 Subject: [PATCH] api folder --- api/index.md | 142 +++++++++++++++++++ assets/images/illustrations/integrations.png | Bin 0 -> 38034 bytes 2 files changed, 142 insertions(+) create mode 100644 api/index.md create mode 100644 assets/images/illustrations/integrations.png diff --git a/api/index.md b/api/index.md new file mode 100644 index 000000000..8630b8fca --- /dev/null +++ b/api/index.md @@ -0,0 +1,142 @@ +--- +label: API Integration +order: -10 +icon: globe +--- + +# API Integration + +Integrate with Baselime to provide an exceptional observability experience for your customers out of the box. + +### Step 1: Creating an Integration + +To create an OAuth Integration get in touch with the Baselime Team by emailing [boris@baselime.io](mailto:boris@baselime.io). Or by signing in to the [Baselime Console](https://console.baselime.io) and going to the `/integrations` page. + +The following information is required + +| Field | Description | +| ----------- | ----------------------------------------------------------------- | +| name | The name of the integration | +| description | A detailed description of the integration | +| logo | A URL pointing to your logo. | +| redirect | The URL to redirect users after completing the integration setup. | + + +Once you have created the Integration you will receive a Client ID and Client Secret + +Test the integration at `https://console.baselime.io/integrations/`. + +![A Baselime Integration](../assets/images/illustrations/integrations.png) + +Once the user has Authorized your application they will be redirected to your redirect with the temporary authorization code in the query string parameters. + +`https://www.example.com/get?code=4fa87ba8cc7f30e91ad2ab1ad21c1b3e` + +!!! +The code is valid for 3 minutes. +!!! + +### Step 2: Exchanging the code for an Access Token and Refresh Token + +Use the temporary authorisation code to retrieve a short-lived access token for first-time access. When it's retrieved, a long-lived refresh token is also returned. The refresh token is used to generate a new access token. + +#### Exchanging the code for an access token and refresh token + +### Endpoint + +- **Method**: `POST` +- **URL**: `https://api.baselime.cc/oauth/token` + +### Request + +#### Headers + +- **Content-Type**: `application/json` + +#### Body + +```json # :icon-code: +{ + "grantType": "authorization_code", + "clientId": "", + "clientSecret": "", + "redirect": "", + "code": "" +} +``` +- **grantType** (string): Type of grant, e.g., "authorization_code". +- **clientId** (string): Client ID for authentication. +- **clientSecret** (string): Client secret for authentication. +- **redirect** (string): Redirect URL. +- **code** (string): Authorization code. + +### Response + +#### HTTP Status: `200 OK` + +```json # :icon-code: +{ + "accessToken": "0eg45oih65ihj4gjiojerjoi3g45j0g4", + "refreshToken": "435huo4wwwwwhu9j4398653g9woeirjgq3984ig5whrek5ejh9jg9wehgw", + "expiresIn": 86400, + "tokenType": "Bearer" +} +``` +- **accessToken**: JWT access token. +- **tokenType**: Type of token, e.g., "Bearer". +- **expiresIn**: Token expiration time in seconds. +- **refreshToken**: Refresh token for obtaining a new access token. + + +### Step 3: Exchanging the Refresh Token for an Access Token + +The access token grants access for 24 hours. If you will need access for longer than that you should use the refresh token to generate a new access token. The refresh token does not expire unless access is revoked. + +#### Exchanging the code for an access token and refresh token + +### Endpoint + +- **Method**: `POST` +- **URL**: `https://api.baselime.cc/oauth/token` + +### Request + +#### Headers + +- **Content-Type**: `application/json` + +#### Body + +```json # :icon-code: +{ + "grantType": "refresh_token", + "clientId": "", + "clientSecret": "", + "redirect": "", + "refreshToken": "" +} +``` +- **grantType** (string): Type of grant, e.g., "refresh_token". +- **clientId** (string): Client ID for authentication. +- **clientSecret** (string): Client secret for authentication. +- **redirect** (string): Redirect URL. +- **refreshToken** (string): Refresh Token. + +### Response + +#### HTTP Status: `200 OK` + +```json # :icon-code: +{ + "accessToken": "0eg45oih65ihj4gjiojerjoi3g45j0g4", + "expiresIn": 86400, + "tokenType": "Bearer" +} +``` +- **accessToken**: JWT access token. +- **tokenType**: Type of token, e.g., "Bearer". +- **expiresIn**: Token expiration time in seconds. + + +### Step 4: List users environments + diff --git a/assets/images/illustrations/integrations.png b/assets/images/illustrations/integrations.png new file mode 100644 index 0000000000000000000000000000000000000000..066a884efd20886b1c0dde8936a8e2a2dd8e8de6 GIT binary patch literal 38034 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