Appearance
apps
7 endpoints.
GET /api/v1/apps
List Apps
The catalog, annotated with whether each app is installed on this site, plus the site-wide show_not_allowed display setting.
200 — Successful Response
json
{}POST /api/v1/apps/show-not-allowed
Set Show Not Allowed
Show or hide the apps this site isn't allowed to install (superuser only).
Site-wide and stored in the database, so every user of this site sees the same library — unlike a per-browser preference. Hiding them only affects what the Apps Library lists; the underlying refusal to install them (:func:app.core.apps.forbidden_apps) is unchanged.
Request body
json
{
"properties": {
"show": {
"type": "boolean",
"title": "Show"
}
},
"type": "object",
"required": [
"show"
],
"title": "ShowNotAllowedIn"
}200 — Successful Response
json
{}422 — Validation Error
json
{
"properties": {
"detail": {
"items": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}GET /api/v1/apps/setup-status
Setup Status
Setup-completeness for every installed app, from the app's registered :mod:app.core.setup_checks. An installed app with no registered checks is reported with total: 0 — the caller should show "no setup checks defined yet" rather than inferring 0% or 100%.
200 — Successful Response
json
{}POST /api/v1/apps/{slug}/install
Install App
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
slug | path | yes | string |
200 — Successful Response
json
{}422 — Validation Error
json
{
"properties": {
"detail": {
"items": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}POST /api/v1/apps/{slug}/uninstall
Uninstall App
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
slug | path | yes | string |
200 — Successful Response
json
{}422 — Validation Error
json
{
"properties": {
"detail": {
"items": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}POST /api/v1/apps/{slug}/colour
Set App Colour
Set (or clear) an app's icon background colour on the active site.
Per-site presentation only — nothing about the app's behaviour changes. The colour tints the app's icon in the left menu (both the collapsed icon rail and the expanded section header) and its card icon in this library; clearing it (colour: null or "") restores the theme default.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
slug | path | yes | string |
Request body
json
{
"properties": {
"colour": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Colour"
}
},
"type": "object",
"title": "AppColourIn"
}200 — Successful Response
json
{}422 — Validation Error
json
{
"properties": {
"detail": {
"items": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}POST /api/v1/apps/reorder
Reorder Apps
Persist a new Apps Library order for the active site (superuser only).
Saves the order to the site config and mirrors it onto this site's top-level menu groups (by app_slug) so the left sidebar is sorted to match — the requirement that the left menu follows the app order.
Request body
json
{
"properties": {
"ordered_slugs": {
"items": {
"type": "string"
},
"type": "array",
"title": "Ordered Slugs"
}
},
"type": "object",
"title": "ReorderAppsIn"
}200 — Successful Response
json
{}422 — Validation Error
json
{
"properties": {
"detail": {
"items": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}