Skip to content
mxHeadless
REST API gateway для headless-фронтендов на MODX 3. Ресурсы, объекты, OpenAPI, API keys и OAuth
  1. Компоненты
  2. mxHeadless
  3. Начало работы
  4. Системные настройки

Системные настройки

Namespace: mxheadless. Ключи через подчёркивание (mxheadless_cors_enabled), без точек.

С 1.0.42 при upgrade пакет переносит значения со старых dotted-ключей (mxheadless.cors.enabled) на новые.

API

КлючТипПо умолчаниюОписание
mxheadless_api_prefixtextfield/apiПубличный префикс до /v1
mxheadless_contexttextfieldwebКонтекст инициализации MODX для bootstrap API (api.php, gateway). Значение mgr игнорируется, используется web

Основные

КлючТипПо умолчаниюОписание
mxheadless_enabledcombo-booleantrueKill switch. При false доступны только GET / и GET /health. Остальное → 503 (service_disabled)
mxheadless_debugcombo-booleanfalseДетали исключений в problem+json (только dev)
mxheadless_swagger_enabledcombo-booleantrueSwagger UI на GET /docs. OpenAPI JSON доступен и при false

Подробнее: Swagger и OpenAPI.

Кэш

КлючТипПо умолчаниюОписание
mxheadless_cache_enabledcombo-booleantrueHTTP-кэш anonymous GET/HEAD с ETag
mxheadless_cache_ttlnumberfield300max-age публичных ответов (секунды)

Rate limit

КлючТипПо умолчаниюОписание
mxheadless_rate_limit_enabledcombo-booleantrueЛимит по identity/IP
mxheadless_rate_limit_max_requestsnumberfield120Запросов в окне
mxheadless_rate_limit_window_secondsnumberfield60Длина окна (секунды)

Per-key overrides: колонки rate_limit_max, rate_limit_window в mxheadless_api_keys и mxheadless_oauth_clients.

CORS

КлючТипПо умолчаниюОписание
mxheadless_cors_enabledcombo-booleanfalseCORS для cross-origin SPA
mxheadless_cors_allowed_originstextareaпустоOrigins через запятую или *
mxheadless_cors_allowed_methodstextfieldGET,POST,PUT,PATCH,DELETE,OPTIONSМетоды preflight
mxheadless_cors_allowed_headerstextfieldAuthorization,Content-Type,X-Request-ID,X-CSRF-Token,X-Context,X-API-Key,Idempotency-KeyРазрешённые заголовки
mxheadless_cors_expose_headerstextfieldETag,X-Request-ID,X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset,Idempotency-ReplayedExpose-Headers для JS
mxheadless_cors_allow_credentialscombo-booleanfalseНе сочетайте с origins=*

Подробнее: CORS.

Безопасность и idempotency

КлючТипПо умолчаниюОписание
mxheadless_max_body_bytesnumberfield1048576Макс. размер тела (1 MB)
mxheadless_max_uri_bytesnumberfield2048Макс. длина URI
mxheadless_trusted_proxiestextareaпустоIP прокси для X-Forwarded-For
mxheadless_csrf_enabledcombo-booleantrueCSRF для мутаций по сессии
mxheadless_idempotency_enabledcombo-booleantrueIdempotency-Key на POST
mxheadless_idempotency_ttlnumberfield86400TTL кэша idempotency (секунды)

OAuth

КлючТипПо умолчаниюОписание
mxheadless_oauth_enabledcombo-booleanfalsePOST /auth/token
mxheadless_oauth_token_ttlnumberfield3600TTL mxt_* (секунды)
mxheadless_oauth_password_grant_enabledcombo-booleanfalseGrant password

Webhooks

КлючТипПо умолчаниюОписание
mxheadless_webhook_max_attemptsnumberfield5Попыток доставки до failed
mxheadless_webhook_worker_limitnumberfield50Default --limit для worker
mxheadless_webhook_allow_private_urlscombo-booleanfalseDev: localhost/private IP (также ослабляет TLS verify)

Audit

КлючТипПо умолчаниюОписание
mxheadless_audit_enabledcombo-booleanfalseЖурнал в mxheadless_api_log
mxheadless_audit_retention_daysnumberfield90Retention для audit-prune.php
mxheadless_audit_log_getcombo-booleanfalseЛогировать GET

Лимиты query (дефолты в коде)

QueryParser читает через getOption. Можно добавить как system settings:

КлючПо умолчанию
mxheadless_max_limit100
mxheadless_max_offset100000
mxheadless_max_fields50
mxheadless_max_include_relations10
mxheadless_max_include_depth2
mxheadless_allowed_contextsweb,mgr

См. Лимиты.