Quick Start
★ MAX Messenger — корпоративный мессенджер без лишних барьеров
MAX Messenger требует юридическое лицо для регистрации бота. Если бот уже есть — NotiFix подключает его за одну минуту.
Настройка один раз: добавляете токен, указываете chat_id — дальше просто отправляете текст через API.
Бесплатный тариф: 500 уведомлений в месяц, без привязки карты.
API: Управление — Authorization: Bearer <access_token> (JWT).
Первый зарегистрированный пользователь автоматически становится администратором.
Отправка уведомлений — POST /api/v0/send с X-Project-Token, без JWT.
Схема: Бот (адаптер) → Канал → Назначение (destination) → Fan-out → Доставка через очередь
Аутентификация: Access token (15 мин) + Refresh token (30 дней, отзываемый).
Отправка: {"text": "...", "destination": "alerts"} — никаких chat_id и токенов в коде клиента.
Шаг 0 — Регистрация первого администратора
curl -X POST http://notifix.ru/api/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"admin@example.com","password":"StrongPass123","name":"Admin"}'
# → {"user":{...},"access_token":"eyJ...","refresh_token":"...","expires_in":900}
Шаг 1 — Создание проекта (JWT обязателен)
TOKEN="eyJ..." # access_token из register/login
curl -X POST http://notifix.ru/api/v0/projects \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{"name": "Мой мониторинг"}'
Шаг 2 — Подключение MAX-бота (или Telegram/Slack/…)
# MAX Messenger (рекомендуется для корпоративных продуктов)
curl -X POST http://notifix.ru/api/v0/bots \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{"name": "MAX Alerts Bot", "type": "max", "bot_token": "YOUR_MAX_BOT_TOKEN"}'
# Telegram (альтернатива)
# -d '{"name": "TG Alerts", "type": "telegram", "bot_token": "YOUR_TG_TOKEN"}'
Шаги 3–5 — Канал, назначение, токен проекта
# Канал (chat_id из MAX/Telegram)
curl -X POST http://notifix.ru/api/v0/channels -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"DevOps Alerts","bot_id":"<bot_pub_id>","chat_id":"<chat_id>"}'
# Назначение (группировка каналов)
curl -X POST http://notifix.ru/api/v0/projects/<proj_id>/destinations -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" -d '{"name":"critical","is_default":true}'
# Привязка канала к назначению
curl -X POST http://notifix.ru/api/v0/destinations/<dest_id>/channels -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" -d '{"channel_id":"<ch_pub_id>"}'
# Токен проекта (для серверов/CI/CD — без JWT)
curl -X POST http://notifix.ru/api/v0/projects/<proj_id>/tokens -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" -d '{"label":"server-01"}'
Шаг 6 — Отправка уведомления (Project Token, без JWT)
curl -X POST http://notifix.ru/api/v0/send \
-H "Content-Type: application/json" \
-H "X-Project-Token: nfx_XXXXXXXX" \
-d '{"text":"ALERT: worker упал на prod-01"}'
# Сообщение доставляется в MAX, Telegram, Slack — одновременно во все подключённые каналы
Обновление и отзыв токена
# Обновить access token
curl -X POST http://notifix.ru/api/auth/refresh \
-H "Content-Type: application/json" \
-d '{"refresh_token":"..."}'
# Выход (отзыв сессии)
curl -X POST http://notifix.ru/api/auth/logout \
-H "Content-Type: application/json" \
-d '{"refresh_token":"..."}'