Skip to content

apps

← All modules

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

NameInRequiredTypeDescription
slugpathyesstring

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

NameInRequiredTypeDescription
slugpathyesstring

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

NameInRequiredTypeDescription
slugpathyesstring

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"
}

Lubb ERP Documentation