Skip to content

Openapi

OpenAPI Configuration

Root OpenAPI settings (extensible for future OpenAPI features)

This configuration provides defaults for OpenAPI documentation endpoints across all channels (REST, Observe). Channel-specific UI configs inherit from openapi.ui.

Master switch for OpenAPI doc endpoints When false, disables all OpenAPI spec endpoints (JSON/YAML/UI) across all channels. Note: This does NOT disable the actual REST API endpoints (e.g., /api/entries/*), only the documentation endpoints.

Priority: SCRIBE_OPENAPI_ENABLED > config

PropertyValue
Defaulttrue
OverrideSCRIBE_OPENAPI_ENABLED (optional)
openapi.enabled = true
openapi.enabled = ${?SCRIBE_OPENAPI_ENABLED}

Scalar UI defaults (inherited by channels.rest.ui and monitoring.observe.ui) Scalar provides a modern, interactive API documentation UI. By default, assets are bundled with the app (offline-safe, no external network). Settings marked AUTO resolve based on app.mode:

  • Dev/test/local: developer-friendly (show tools, enable requests)
  • Production/staging: production-safe (hide tools, disable requests)

External asset configuration (CDN override). By default, Scalar assets are bundled with the app. If configured, both url and sri are required. SRI (Subresource Integrity) hash prevents supply-chain attacks.

Subresource Integrity hash for the asset URL.

Example: "sha384-..."

PropertyValue
Defaultnull
openapi.ui.asset.sri = null

CDN URL for Scalar standalone JavaScript bundle.

Example: "https://cdn.jsdelivr.net/npm/@scalar/api-reference@1.43.1/dist/browser/standalone.min.js"

PropertyValue
Defaultnull
openapi.ui.asset.url = null

Enable dark mode by default

PropertyValue
Defaultfalse
openapi.ui.dark-mode = false

Enable OpenAPI UI (Scalar API Reference)

auto = enabled in dev/test, disabled in prod (prod-safe default)
true = always enabled, false = always disabled

Priority: SCRIBE_OPENAPI_UI_ENABLED > config

PropertyValue
Default"auto"
OverrideSCRIBE_OPENAPI_UI_ENABLED (optional)
openapi.ui.enabled = "auto"
openapi.ui.enabled = ${?SCRIBE_OPENAPI_UI_ENABLED}

Force dark mode state Options: “dark”, “light”, null (auto-detect from system preference)

PropertyValue
Defaultnull
openapi.ui.force-dark-mode-state = null

Hide the dark mode toggle

PropertyValue
Defaultfalse
openapi.ui.hide-dark-mode-toggle = false

Hide test request button

auto = hide in prod, show in dev
true = always hide, false = always show
PropertyValue
Default"auto"
openapi.ui.hide-test-request-button = "auto"

Layout mode

Options: “modern”, “classic”

PropertyValue
Default"modern"
openapi.ui.layout = "modern"

Search hotkey (keyboard shortcut)

Default: “k”

PropertyValue
Default"k"
openapi.ui.search-hot-key = "k"

Show developer tools

auto = show in dev, hide in prod
true = always show, false = never show
PropertyValue
Default"auto"
openapi.ui.show-developer-tools = "auto"

Show sidebar navigation

PropertyValue
Defaulttrue
openapi.ui.show-sidebar = true

Scalar theme (appearance)

Options: “alternate”, “default”, “moon”, “purple”, “solarized”, “bluePlanet”, “saturn”, “kepler”, “mars”, “deepSpace”, “laserwave”, “none”

PropertyValue
Default"default"
openapi.ui.theme = "default"