FeatureFlag

A request or response body; the type column links to the schemas it refers to.

FeatureFlag

FieldTypeRequiredDescription
featurestringyes

A feature of the deployment's catalogue, as listed by `GET /api/feature-flags`.

one of "quizzes" | "scorm_courses" | "job_aids" | "training_events" | "learning_pathways" | "qr_codes" | "external_lms" | "support_page" | "forums"

labelstringyes

The feature's name, as the admin page shows it.

descriptionstringyes

What the feature covers.

statestringyes

`enabled`: shown and working everywhere. `hidden`: left out of the sidebar and the dashboards, but its pages and endpoints keep working for anyone with the address. `disabled`: off — its pages answer 404, its endpoints answer 404 with the error `feature_disabled`, and it is left out of navigation, search and the calendar. Nothing is deleted; switching it back on brings everything back.

one of "enabled" | "hidden" | "disabled"

default_statestringyes

The state the feature has until a superuser sets one: `enabled` for most features, `disabled` for those a deployment switches on deliberately (the forums).

one of "enabled" | "hidden" | "disabled"

updated_atstring (date-time) | nullyes

When a superuser last changed the state, or null while it has never been set.

jsonExample
{
  "feature": "quizzes",
  "label": "Quizzes",
  "description": "Quizzes and question banks: assigning them, live sittings, attempts and grading.",
  "state": "disabled",
  "default_state": "enabled",
  "updated_at": "2026-01-01T00:00:00.000Z"
}