Справочник config.yml

Полное описание параметров конфигурации платформы 1.0.10. Большинство настроек можно менять в админ-панели — YAML нужен для первого запуска, автоматизации и резервных копий.

Версия: 1.0.10 Файл: config.yml Шаблон: config.yml.example

Показаны все разделы. Клик по заголовку раздела сворачивает или раскрывает таблицу параметров.

Обозначения

МеткаЗначение
ОбязательноБез параметра приложение не стартует или не пройдёт установку
ЖелательноРекомендуется явно задать в production
ОпциональноЕсть значение по умолчанию; меняйте при необходимости

Минимум для первого запуска

app:
  name: Cascad360
  version: 1.0.10
  setup_completed: false

web:
  host: 0.0.0.0
  port: 5000

database:
  driver: mysql          # или psql
  host: localhost
  port: 3306
  database: cascad360
  username: cascad360_user
  password: CHANGE_ME    # секрет — не храните в git
  charset: utf8mb4

Остальные секции добавляйте по мере подключения шлюза, Public Auth, почты и расширений. Подробнее — в инструкции по установке.

Разделы конфигурации

app — приложение и установка

Имя инстанса, версия ядра и статус мастера первичной настройки.

ПараметрСтатусПо умолчаниюОписание
nameЖелательноCascad360Отображаемое имя в интерфейсе и отчётах
versionЖелательноиз сборкиВерсия ядра (синхронизируйте с релизом)
setup_completedОбязательноfalsetrue — мастер установки завершён
setup_app_configuredОпциональноfalseШаг «параметры приложения» в мастере
module_registry_urlЖелательноvendor URLАдрес реестра модулей (для зеркала — свой домен)
web — HTTP-сервер и Public API

Порты админки и публичного API, режим доступа по ключу, секрет сессий.

ПараметрСтатусПо умолчаниюОписание
hostОбязательно0.0.0.0Интерфейс прослушивания
portОбязательно5000Порт админ-панели и служебного API
setup_portОпционально5050Порт мастера до завершения setup
public_portЖелательно5001Порт Public API при разделении портов
public_api_separateЖелательноfalsetrue — admin и public на разных портах
public_api_enabledЖелательноtruefalse — Public API отключён (503)
public_api_access_modeЖелательноopenopen или api_key_required — глобальный ключ для всех public-методов
public_api_key_idОбязательноnullID site-ключа при api_key_required
secret_keyЖелательногенерируетсяСекрет сессий; в production — уникальный
debugОпциональноfalseТолько для разработки

При api_key_required фронт передаёт site public key в заголовке X-API-Key. Bootstrap-конфиг для SPA: GET /api/v1/public/runtime-config. Смена портов требует перезапуска сервиса.

database — платформенная БД

Подключение к основной базе данных платформы. Пароли — секреты, не коммитьте в git.

ПараметрСтатусОписание
driverОбязательноmysql или psql
host, portОбязательноАдрес СУБД (3306 / 5432)
database, username, passwordОбязательноИмя БД и учётные данные приложения
charsetЖелательноutf8mb4 для MySQL
connections.<id>.*ОпциональноДополнительные источники для «Студии БД»
defaultОпциональноID datasource по умолчанию (core)

Переменные окружения: DATABASE_HOST, DATABASE_PORT, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD.

routing — шлюз: сервисы и маршруты

Список backend-сервисов и правила проксирования /api/module/{module}/…. С версии 1.0.10 управляется в разделах Сервисы и Маршрутизация админ-панели.

routing.static_services

Ключ записи — имя сервиса (латиница, цифры, -, _).

ПолеСтатусОписание
host, portОбязательноАдрес backend (Docker DNS, IP, FQDN)
protocolЖелательноhttp / https
environmentЖелательноproduction, staging, development
health_pathЖелательноПуть health check (по умолчанию /health)
versionОпциональноВерсия в UI или запрос GET /version

routing.rules

ПолеСтатусОписание
idОбязательноUUID правила (создаётся в UI)
moduleОбязательноСегмент URL: /api/module/{module}/
serviceОбязательноИмя из static_services
priorityЖелательноБольше — выше приоритет
path_prefixОпциональноПрефикс на backend, напр. api/v1
methods, hosts, headersОпциональноОграничения маршрута

Имя сервиса используется в правилах маршрутизации и в поле linked_service_name у service API-ключей для Database API.

auth и unified_auth — авторизация

unified_auth — JWT

ПараметрСтатусОписание
jwt.secret_keyОбязательноСекрет подписи JWT (production)
jwt.access_token_ttlОпциональноTTL access token (сек)
jwt.audiences.public / adminЖелательноРазделение токенов сайта и панели
public_api_prefixesЖелательноПути public API (auth, db, module)

auth.public — Public Auth (1.0.9+)

ПараметрПо умолчаниюОписание
require_email_verificationtrueОбязательное подтверждение email
allow_public_registrationtrueРегистрация через Public API
confirmation_base_url''Базовый URL ссылок в письмах verify
lockout.max_attempts3Попыток входа до блокировки
lockout.duration_seconds10800Длительность блокировки (3 ч)

Настройки Public Auth также редактируются в Настройки → Безопасность → Public Auth. Значения из админки имеют приоритет над YAML.

logging — журналирование
ПараметрПо умолчаниюОписание
levelINFOУровень: DEBUG…CRITICAL
formatjsonjson для ELK/Loki или console для dev
fileapp.logФайл логов; null — только stdout
syslog.*выкл.Отправка в syslog
plugins — встроенные плагины
КлючНазначение
plugins.enabledСписок включаемых плагинов (content, mail, …)
plugins.mailЦентрализованная почта
plugins.cacheHTTP-кэш ответов
plugins.validationJSON Schema для запросов/ответов

Public Auth и admin JWT настраиваются в unified_auth, не в legacy plugins.auth.

security_protection, data_security — защита
РазделКлючевые параметры
security_protectionDDoS-лимиты, rate limit по IP, HTTPS, валидация входных данных
data_securityШифрование at rest, audit-журнал действий
securityRate limit Public API (в т.ч. mail)
Шлюз и эксплуатация — дополнительные секции
КлючНазначение
service_discoveryАвтообнаружение (Docker, K8s); UI «Сервисы» использует static_services
health_checksТаймауты health check
load_balancingАлгоритмы балансировки upstream
fault_toleranceCircuit breaker и retry
proxyТаймауты HTTP-клиента к backend
metricsИнтервалы сбора метрик платформы
container_lifecycleDocker: graceful stop, очистка
storage, filesФайловое хранилище Public Files API
updates, marketЦентр обновлений и политика «Маркет»
licenseЛицензирование продукта

Для типового деплоя достаточно defaults. Тонкая настройка — через YAML или раздел Конфигурация с историей версий.

Изменение без ручного YAML

Где в админ-панелиЧто меняетсяПерезапуск
Системные настройкиweb.* — порты, режим Public API, site keyПри смене портов — да
Сервисы / Маршрутизацияrouting.static_services, routing.rulesHot-reload маршрутизатора
КонфигурацияПроизвольный YAML + история версийЗависит от ключей
API-ключиТипы public/service, whitelist сущностей БДНет

Перед правками production сделайте резервную копию: cp config.yml config.yml.backup.$(date +%Y%m%d_%H%M%S)

Переменные окружения

ПеременнаяПерекрывает
DATABASE_*Секцию database
CASCAD360_MASTER_KEYШифрование секретов at rest
LICENSE_SECRET_KEYlicense.secret_key
APP_ENV=developmentРежим разработки (setup)

Чеклист production

ОбластьПроверить
СекретыПароли БД, jwt.secret_key, web.secret_key — не в git
HTTPSTLS на reverse proxy или security_protection.https
Public APIpublic_api_separate, public_api_access_mode, site key
Шлюзstatic_services + routing.rules для всех backend
Authconfirmation_base_url, настроенная почта
Observabilitylogging.format: json, audit при необходимости

Индекс top-level ключей

app web database logging plugins routing service_discovery health_checks load_balancing fault_tolerance proxy metrics unified_auth auth security_protection data_security storage files updates market license sessions modules

Установка и первый запуск Public API