Skip to content

Commit b006507

Browse files
committed
review fixes
1 parent 4f9b4ec commit b006507

File tree

11 files changed

+84
-119
lines changed

11 files changed

+84
-119
lines changed

β€Ždocs/.vitepress/config.mtsβ€Ž

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -652,15 +652,12 @@ export default withMermaid(defineConfig({
652652
{
653653
text: 'Build Plane App', collapsed: false, items: [
654654
{ text: 'Overview', link: '/dev-tools/build-plane-app/overview' },
655-
{ text: 'Create an OAuth Application', link: '/dev-tools/build-plane-app/create-oauth-application' },
656-
{ text: 'Choose Your Flow', link: '/dev-tools/build-plane-app/choose-token-flow' },
657-
{ text: 'Making API Requests', link: '/dev-tools/build-plane-app/making-api-requests' },
658-
{ text: 'Handling Webhooks', link: '/dev-tools/build-plane-app/webhooks' },
659-
{ text: 'Local Development', link: '/dev-tools/build-plane-app/local-development' },
660-
{ text: 'OAuth Scopes', link: '/dev-tools/build-plane-app/oauth-scopes' },
655+
{ text: 'Create an OAuth application', link: '/dev-tools/build-plane-app/create-oauth-application' },
656+
{ text: 'Choose token Flow', link: '/dev-tools/build-plane-app/choose-token-flow' },
657+
{ text: 'Handling webhooks', link: '/dev-tools/build-plane-app/webhooks' },
658+
{ text: 'OAuth scopes', link: '/dev-tools/build-plane-app/oauth-scopes' },
661659
{ text: 'SDKs', link: '/dev-tools/build-plane-app/sdks' },
662-
{ text: 'Complete Examples', link: '/dev-tools/build-plane-app/examples' },
663-
{ text: 'Next Steps', link: '/dev-tools/build-plane-app/next-steps' }
660+
{ text: 'Complete examples', link: '/dev-tools/build-plane-app/examples' }
664661
]
665662
},
666663
{

β€Ždocs/dev-tools/build-plane-app/choose-token-flow.mdβ€Ž

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
2-
title: Choose Your Flow
2+
title: Choose token flow
33
description: Decide between Bot Token and User Token flows and learn how to implement them.
44
---
55

6-
# Choose Your Flow
6+
# Choose token flow
77

88
Plane supports two OAuth flows:
99

@@ -18,7 +18,7 @@ Most integrations should use the **Bot Token flow**. Use User Token only when yo
1818

1919
---
2020

21-
## Bot Token Flow
21+
## Bot token flow
2222

2323
Use this flow for agents, webhook handlers, and automation that acts autonomously.
2424

@@ -38,7 +38,7 @@ sequenceDiagram
3838
YourApp->>YourApp: Store credentials
3939
```
4040

41-
### 1. Redirect to Authorization
41+
### 1. Redirect to authorization
4242

4343
When a user clicks "Install", redirect them to Plane's consent screen:
4444

@@ -49,7 +49,7 @@ GET https://api.plane.so/auth/o/authorize-app/
4949
&redirect_uri=https://your-app.com/callback
5050
```
5151

52-
### 2. Handle the Callback
52+
### 2. Handle the callback
5353

5454
After the user approves, Plane redirects to your Redirect URI with:
5555

@@ -58,7 +58,7 @@ After the user approves, Plane redirects to your Redirect URI with:
5858
| `app_installation_id` | Unique identifier for this installation |
5959
| `code` | Authorization code (not used in bot flow) |
6060

61-
### 3. Exchange for Bot Token
61+
### 3. Exchange for bot token
6262

6363
```
6464
POST https://api.plane.so/auth/o/token/
@@ -81,7 +81,7 @@ grant_type=client_credentials
8181
}
8282
```
8383

84-
### 4. Get Workspace Details
84+
### 4. Get workspace details
8585

8686
```
8787
GET https://api.plane.so/auth/o/app-installation/?id=APP_INSTALLATION_ID
@@ -107,7 +107,7 @@ Authorization: Bearer YOUR_BOT_TOKEN
107107

108108
Store the `workspace_detail.slug` for API calls and `app_installation_id` for token refresh.
109109

110-
### 5. Refresh Bot Token
110+
### 5. Refresh bot token
111111

112112
Bot tokens expire. Request a new one using the stored `app_installation_id`:
113113

@@ -123,7 +123,7 @@ grant_type=client_credentials
123123

124124
---
125125

126-
## User Token Flow
126+
## User token flow
127127

128128
Use this flow when your app needs to act on behalf of a specific user.
129129

@@ -143,7 +143,7 @@ sequenceDiagram
143143
YourApp->>YourApp: Store tokens for user
144144
```
145145

146-
### 1. Redirect to Authorization
146+
### 1. Redirect to authorization
147147

148148
```
149149
GET https://api.plane.so/auth/o/authorize-app/
@@ -158,7 +158,7 @@ GET https://api.plane.so/auth/o/authorize-app/
158158
Include a random `state` parameter to prevent CSRF attacks. Verify it matches when handling the callback.
159159
:::
160160

161-
### 2. Handle the Callback
161+
### 2. Handle the callback
162162

163163
After approval, Plane redirects to your Redirect URI with:
164164

@@ -167,7 +167,7 @@ After approval, Plane redirects to your Redirect URI with:
167167
| `code` | Authorization code to exchange for tokens |
168168
| `state` | Your state parameter (verify this matches) |
169169

170-
### 3. Exchange Code for Tokens
170+
### 3. Exchange code for tokens
171171

172172
```
173173
POST https://api.plane.so/auth/o/token/
@@ -192,7 +192,7 @@ grant_type=authorization_code
192192
}
193193
```
194194

195-
### 4. Refresh User Token
195+
### 4. Refresh user token
196196

197197
```
198198
POST https://api.plane.so/auth/o/token/
@@ -203,3 +203,16 @@ grant_type=refresh_token
203203
&client_id=YOUR_CLIENT_ID
204204
&client_secret=YOUR_CLIENT_SECRET
205205
```
206+
207+
---
208+
209+
## Making API requests
210+
211+
Include the token in the `Authorization` header:
212+
213+
```
214+
GET https://api.plane.so/api/v1/workspaces/{workspace_slug}/projects/
215+
Authorization: Bearer YOUR_TOKEN
216+
```
217+
218+
See the [API Reference](/api-reference/introduction) for available endpoints.

β€Ždocs/dev-tools/build-plane-app/create-oauth-application.mdβ€Ž

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ description: Register your app to get Client ID and Secret.
55

66
# Create an OAuth Application
77

8-
1. Navigate to **Workspace Settings** β†’ **Integrations** (`https://app.plane.so/<workspace>/settings/integrations/`)
9-
2. Click **Build your own**
8+
1. Navigate to **Workspace Settings** β†’ **Integrations**. `https://app.plane.so/<workspace>/settings/integrations/`
9+
2. Click **Build your own**.
1010
3. Fill in the required details:
1111

1212
| Field | Description |
@@ -16,8 +16,8 @@ description: Register your app to get Client ID and Secret.
1616
| **Redirect URI** | Callback URL where Plane sends users after they approve access, along with the authorization code. |
1717
| **Webhook URL** | Endpoint for receiving event notifications |
1818

19-
4. For agents that respond to @mentions, enable **"Enable App Mentions"**
20-
5. Save and store your **Client ID** and **Client Secret** securely
19+
4. For agents that respond to @mentions, enable **"Enable App Mentions"**.
20+
5. Save and store your **Client ID** and **Client Secret** securely.
2121
6. Select the scopes you need for your app from the **Scopes & Permissions** section. See [OAuth Scopes](/dev-tools/build-plane-app/oauth-scopes) for more information on the available scopes.
2222

2323
::: warning

β€Ždocs/dev-tools/build-plane-app/examples.mdβ€Ž

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
2-
title: Complete Examples
2+
title: Complete examples
33
description: Full code examples for Node.js (Express) and Python (Flask).
44
---
55

6-
# Complete Examples
6+
# Complete examples
77

8-
::: details TypeScript (Express) - Full Implementation
8+
::: code-group
99

10-
```typescript
10+
```typescript [TypeScript (Express)]
1111
import express from "express";
1212
import axios from "axios";
1313
import crypto from "crypto";
@@ -114,11 +114,7 @@ app.post("/webhook", express.raw({ type: "application/json" }), (req, res) => {
114114
app.listen(3000, () => console.log("Server running on http://localhost:3000"));
115115
```
116116

117-
:::
118-
119-
::: details Python (Flask) - Full Implementation
120-
121-
```python
117+
```python [Python (Flask)]
122118
import os
123119
import hmac
124120
import hashlib
@@ -235,3 +231,14 @@ if __name__ == "__main__":
235231
```
236232

237233
:::
234+
235+
## Next Steps
236+
237+
- [Build an Agent](/dev-tools/agents/overview) - Create AI agents that respond to @mentions
238+
- [API Reference](/api-reference/introduction) - Explore the full Plane API
239+
- [Webhook Events](/dev-tools/intro-webhooks) - All webhook event types
240+
- [Example: PRD Agent](https://github.com/makeplane/prd-agent) - Complete agent implementation
241+
242+
## Publish to Marketplace
243+
244+
Apps can be listed on the [Plane Marketplace](https://plane.so/marketplace/integrations). Contact [support@plane.so](mailto:support@plane.so) to list your app.

β€Ždocs/dev-tools/build-plane-app/local-development.mdβ€Ž

Lines changed: 0 additions & 18 deletions
This file was deleted.

β€Ždocs/dev-tools/build-plane-app/making-api-requests.mdβ€Ž

Lines changed: 0 additions & 15 deletions
This file was deleted.

β€Ždocs/dev-tools/build-plane-app/next-steps.mdβ€Ž

Lines changed: 0 additions & 15 deletions
This file was deleted.

β€Ždocs/dev-tools/build-plane-app/oauth-scopes.mdβ€Ž

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
# OAuth Scopes
1+
---
2+
title: OAuth Scopes
3+
description: All OAuth scopes available when building a Plane app.
4+
---
5+
6+
# OAuth scopes
27

38
This document lists all OAuth scopes available when building a Plane app. Request only the scopes your app needs.
49

0 commit comments

Comments
Β (0)