Connections
Approve an app that signs in with Plotwork
Verifies the signed request, makes a hidden key holding only the scopes asked for, for your own account or an organisation where you may publish, ends your earlier connection of the same app to the same account, and answers redirectTo with a one-time code.
POST
/user/apps/approveTL;DR
| Question | Answer |
|---|---|
| What does it do? | Approve an app that signs in with Plotwork. |
| What does it take? | A JSON body of type ApproveAppBody. |
| What does it return? | Status 200 with a body of type AppAnswer. |
| What can go wrong? | 400 the request is malformed, expired (oauth.request_expired), or not signed by this API (oauth.request_invalid); 401 not signed in; 403 the origin may not make changes, you are a reader there (orgs.forbidden), the organisation requires single sign-on (orgs.sso_required), the app is for another organisation's members (oauth.app_members_only), or the organisation allows only approved apps (oauth.app_not_allowed); 404 no such organisation, or you are not a member of it; 409 the sign-in link was already answered (oauth.request_used); 429 too many requests; 503 sign in with Plotwork is not available on this server (oauth.unavailable). Every failure uses the one error envelope. |
What it does
Verifies the signed request, makes a hidden key holding only the scopes asked for, for your own account or an organisation where you may publish, ends your earlier connection of the same app to the same account, and answers redirectTo with a one-time code. Each link is answered once: 409 oauth.request_used.
Request body
The body has the type ApproveAppBody.
| Field | Type | Required | Description |
|---|---|---|---|
request | string | yes | The signed authorization request, exactly as the API put it in the consent page address. at least 1 character; at most 6144 characters. |
organisation | string | no | Connect the app to this organisation, by its id, instead of your own account. Any role but reader may; the app then acts in the organisation's library as you, with your role's diagram permissions. |
Responses
| Status | Meaning | Body |
|---|---|---|
| 200 | Approved; go to redirectTo. | AppAnswer |
| 400 | The request is malformed, expired (oauth.request_expired), or not signed by this API (oauth.request_invalid). | ErrorResponse |
| 401 | Not signed in. | ErrorResponse |
| 403 | The origin may not make changes, you are a reader there (orgs.forbidden), the organisation requires single sign-on (orgs.sso_required), the app is for another organisation's members (oauth.app_members_only), or the organisation allows only approved apps (oauth.app_not_allowed). | ErrorResponse |
| 404 | No such organisation, or you are not a member of it. | ErrorResponse |
| 409 | The sign-in link was already answered (oauth.request_used). | ErrorResponse |
| 429 | Too many requests. | ErrorResponse |
| 503 | Sign in with Plotwork is not available on this server (oauth.unavailable). | ErrorResponse |
Response body
A 200 answer has the type AppAnswer.
| Field | Type | Required | Description |
|---|---|---|---|
redirectTo | string | yes | The app's redirect address with code (or error), state and iss. Navigate there. |
See also
| Doc | Why |
|---|---|
| API reference | Every endpoint, and the error envelope |
| Schemas | Every request and response type |
| Tool reference | The operations as callable tools |