pinakes/docs/api/plugins.md
NotAShelf 9e5eb41d39
nix: set up project-wide formatter
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I4806c58aa0a17f504c9312723ad770166a6a6964
2026-03-22 23:58:28 +03:00

3.8 KiB
Vendored

Plugins

Plugin management

Endpoints

GET /api/v1/plugins

List all installed plugins

Authentication: Required (Bearer JWT)

Responses

Status Description
200 List of plugins
401 Unauthorized
500 Internal server error

POST /api/v1/plugins

Install a plugin from URL or file path

Authentication: Required (Bearer JWT)

Request Body

Content-Type: application/json

See docs/api/openapi.json for the full schema.

Responses

Status Description
200 Plugin installed
400 Bad request
401 Unauthorized
403 Forbidden

POST /api/v1/plugins/events

Receive a plugin event emitted from the UI and dispatch it to interested server-side event-handler plugins via the pipeline.

Authentication: Required (Bearer JWT)

Request Body

Content-Type: application/json

See docs/api/openapi.json for the full schema.

Responses

Status Description
200 Event received
401 Unauthorized

GET /api/v1/plugins/ui/pages

List all UI pages provided by loaded plugins

Authentication: Required (Bearer JWT)

Responses

Status Description
200 Plugin UI pages
401 Unauthorized

GET /api/v1/plugins/ui/theme

List merged CSS custom property overrides from all enabled plugins

Authentication: Required (Bearer JWT)

Responses

Status Description
200 Plugin UI theme extensions
401 Unauthorized

GET /api/v1/plugins/ui/widgets

List all UI widgets provided by loaded plugins

Authentication: Required (Bearer JWT)

Responses

Status Description
200 Plugin UI widgets
401 Unauthorized

GET /api/v1/plugins/{id}

Get a specific plugin by ID

Authentication: Required (Bearer JWT)

Parameters

Name In Required Description
id path Yes Plugin ID

Responses

Status Description
200 Plugin details
401 Unauthorized
404 Not found

DELETE /api/v1/plugins/{id}

Uninstall a plugin

Authentication: Required (Bearer JWT)

Parameters

Name In Required Description
id path Yes Plugin ID

Responses

Status Description
200 Plugin uninstalled
401 Unauthorized
403 Forbidden
404 Not found

POST /api/v1/plugins/{id}/reload

Reload a plugin (for development)

Authentication: Required (Bearer JWT)

Parameters

Name In Required Description
id path Yes Plugin ID

Responses

Status Description
200 Plugin reloaded
401 Unauthorized
403 Forbidden
404 Not found

PATCH /api/v1/plugins/{id}/toggle

Enable or disable a plugin

Authentication: Required (Bearer JWT)

Parameters

Name In Required Description
id path Yes Plugin ID

Request Body

Content-Type: application/json

See docs/api/openapi.json for the full schema.

Responses

Status Description
200 Plugin toggled
401 Unauthorized
403 Forbidden
404 Not found