Add spec for Matrix API proxy
This commit is contained in:
parent
5775560933
commit
8824c21788
2 changed files with 13 additions and 40 deletions
|
@ -3,6 +3,18 @@ Most of the API is simple HTTP+JSON and has OpenAPI documentation (see
|
||||||
[spec.yaml](spec.yaml), [rendered](https://maubot.xyz/spec/)). However,
|
[spec.yaml](spec.yaml), [rendered](https://maubot.xyz/spec/)). However,
|
||||||
some parts of the API aren't documented in the OpenAPI document.
|
some parts of the API aren't documented in the OpenAPI document.
|
||||||
|
|
||||||
|
## Matrix API proxy
|
||||||
|
The full Matrix API can be accessed for each client with a request to
|
||||||
|
`/_matrix/maubot/v1/proxy/<user>/<path>`. `<user>` is the Matrix user
|
||||||
|
ID of the user to access the API as and `<path>` is the whole API
|
||||||
|
path to access (e.g. `/_matrix/client/r0/whoami`).
|
||||||
|
|
||||||
|
The body, headers, query parameters, etc are sent to the Matrix server
|
||||||
|
as-is, with a few exceptions:
|
||||||
|
* The `Authorization` header will be replaced with the access token
|
||||||
|
for the Matrix user from the maubot database.
|
||||||
|
* The `access_token` query parameter will be removed.
|
||||||
|
|
||||||
## Log viewing
|
## Log viewing
|
||||||
1. Open websocket to `/_matrix/maubot/v1/logs`.
|
1. Open websocket to `/_matrix/maubot/v1/logs`.
|
||||||
2. Send authentication token as a plain string.
|
2. Send authentication token as a plain string.
|
||||||
|
@ -22,7 +34,7 @@ Log entries will always have:
|
||||||
Log entries should also always have:
|
Log entries should also always have:
|
||||||
* `levelname` - The log level (e.g. `DEBUG` or `ERROR`).
|
* `levelname` - The log level (e.g. `DEBUG` or `ERROR`).
|
||||||
* `levelno` - The integer log level.
|
* `levelno` - The integer log level.
|
||||||
* `name` - The name of the logger. Possible values:
|
* `name` - The name of the logger. Common values:
|
||||||
* `maubot.client.<mxid>` - Client loggers (Matrix HTTP requests)
|
* `maubot.client.<mxid>` - Client loggers (Matrix HTTP requests)
|
||||||
* `maubot.instance.<id>` - Plugin instance loggers
|
* `maubot.instance.<id>` - Plugin instance loggers
|
||||||
* `maubot.loader.zip` - The zip plugin loader (plugins don't
|
* `maubot.loader.zip` - The zip plugin loader (plugins don't
|
||||||
|
|
|
@ -399,45 +399,6 @@ paths:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error'
|
$ref: '#/components/schemas/Error'
|
||||||
'/client/{id}/avatar':
|
|
||||||
parameters:
|
|
||||||
- name: id
|
|
||||||
in: path
|
|
||||||
description: The Matrix user ID of the client to get
|
|
||||||
required: true
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
post:
|
|
||||||
operationId: upload_avatar
|
|
||||||
summary: Upload a profile picture for a bot
|
|
||||||
tags: [Clients]
|
|
||||||
requestBody:
|
|
||||||
content:
|
|
||||||
image/png:
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
format: binary
|
|
||||||
example: The avatar to upload
|
|
||||||
image/jpeg:
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
format: binary
|
|
||||||
example: The avatar to upload
|
|
||||||
responses:
|
|
||||||
200:
|
|
||||||
description: The avatar was uploaded successfully
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
content_uri:
|
|
||||||
type: string
|
|
||||||
description: The MXC URI of the uploaded avatar
|
|
||||||
400:
|
|
||||||
$ref: '#/components/responses/BadRequest'
|
|
||||||
401:
|
|
||||||
$ref: '#/components/responses/Unauthorized'
|
|
||||||
|
|
||||||
components:
|
components:
|
||||||
responses:
|
responses:
|
||||||
|
|
Loading…
Reference in a new issue