Почта, Public Auth и Gateway

Настройка для интеграторов.

10. Настройка почты (1.0.8+)

Начиная с версии 1.0.8, в поставку входит обязательный плагин mail. Все исходящие письма (алерты, сервисные уведомления, вызовы Service API) проходят через единый почтовый контур — настройка транспорта выполняется один раз в админке.

Не блокирует установку: платформа стартует и без настроенного SMTP. В этом случае почта в режиме degraded — вход в админку доступен, но email-каналы не доставляют письма до настройки транспорта. На вкладке «Уведомления» отображается предупреждение.

10.1. Первичная настройка

  1. Войдите в админ-панель и откройте Настройки → секция «Почта» (регистрируется плагином mail).
  2. Выберите режим транспорта:
    • smtp — корпоративный SMTP или облачный релей (рекомендуется для production);
    • local / postfix / sendmail — локальный MTA на сервере;
    • file — запись писем в файлы (только для разработки и отладки).
  3. Укажите From (from_email, при необходимости from_name) и параметры SMTP (host, port, шифрование, учётные данные).
  4. Нажмите «Отправить тест» — убедитесь, что письмо дошло или появилось в журнале outbox.

10.2. Email-каналы уведомлений

На вкладке Настройки → Уведомления создайте канал типа email. В конфигурации канала указываются только получатели (to, опционально cc) и шаблон — параметры SMTP в канале не хранятся.

При срабатывании правила алерта письмо ставится в очередь плагина mail. Статус — в журнале «Почта» → Outbox.

10.3. Service API (для интеграторов)

Внешние сервисы могут отправлять письма через платформу без прямого доступа к SMTP:

POST /api/v1/mail/send
X-API-Key: <ключ с permission mail:send>
Content-Type: application/json

{
  "to": ["user@example.com"],
  "subject": "Уведомление",
  "text": "Текст письма"
}

Подробнее — в документации API почты.

10.4. Шаблоны писем (1.0.9+)

В секции Почта → Шаблоны доступны системные шаблоны (в т.ч. system.auth.verify_email) и пользовательские. Можно редактировать subject и HTML, выполнять preview и test-send. Письма подтверждения регистрации используют эти шаблоны автоматически.

10.5. Обновление с 1.0.7 / 1.0.8

11. Public Auth (1.0.9+)

Public Auth API — для вашего сайта, личного кабинета или приложения. Адрес методов: /api/v1/auth/*. Подробный контракт — в документации Public Auth.

Требуется почта: для регистрации с подтверждением email транспорт почты должен быть настроен (раздел 10). Иначе register вернёт 503 mail_unavailable.

11.1. Настройки в админке

  1. Откройте Настройки → Безопасность → Public Auth.
  2. Укажите URL подтверждения email — базовый адрес вашего фронта, например https://lk.example.ru/auth/confirm-email. В письме будет ссылка {base}?token=....
  3. Проверьте: включена ли регистрация, обязательно ли подтверждение email, роль по умолчанию для новых пользователей.
  4. Настройте lockout (попытки / окно / длительность блокировки) — по умолчанию 3 попытки за 5 мин → блок 3 ч по login и IP.

11.2. Политики паролей и доступ

11.3. Проверка для интегратора

# Регистрация (пример)
curl -X POST http://localhost:5000/api/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{"username":"demo","email":"demo@example.ru","password":"DemoPass1","consent_pd":true}'

# Login после verify email
curl -X POST http://localhost:5000/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"demo","password":"DemoPass1"}'

Подробный контракт — в документации Public Auth API.

12. Gateway Ops (1.0.10+)

После обновления до 1.0.10 backend-сервисы и маршруты настраиваются в админ-панели. YAML по-прежнему хранит routing.static_services и routing.rules, но для повседневной работы достаточно UI.

Breaking change Database API: поля database и datasource_id в POST /api/v1/db/query больше не принимаются. Источник данных определяется по привязке service API-ключа. Подробнее — API работы с данными.

12.1. Сервисы

  1. Откройте раздел Сервисы в админ-панели.
  2. Добавьте backend: имя (slug), host, port, протокол, окружение, путь health check.
  3. Нажмите проверку health — убедитесь, что backend отвечает.

12.2. Маршрутизация

  1. Откройте Маршрутизация.
  2. Создайте правило: модуль (сегмент URL /api/module/{module}/), сервис из каталога, при необходимости — path_prefix и приоритет.
  3. Сохраните — маршрутизатор перезагрузится без полного restart платформы.

12.3. API-ключи

12.4. Public API и runtime-config

  1. Откройте Настройки → Системные: порты admin/public, режим open или api_key_required, site public key.
  2. После смены портов выполните sudo systemctl restart cascad360.
  3. Фронт может получить публичные параметры: GET /api/v1/public/runtime-config (без секретов admin).

Параметры web.* и routing.* — в справочнике config.yml.

12.5. Обновление с 1.0.9