Агент LeavePulse використовує два основні канали зв'язку для передачі даних та отримання команд.
1. Ingest (HTTP REST API)
Використовується для асинхронної відправки метрик та подій. Це надійний канал з підтримкою буферизації на диску.
- Ендпоінт:
https://api.leavepulse.com/monitoring/v1/verified/ingest - Автентифікація: Header
X-Ingest-Token. - Дані: JSON-пакети з метриками (TPS, RAM, гравці) та подіями (Join/Leave).
- Буферизація: Якщо API недоступне, Агент зберігає дані в папці
buffer(до 10 МБ за замовчуванням) і надсилає їх після відновлення зв'язку.
2. Gateway (WebSocket)
Основний канал для функцій реального часу. Тримає постійне з'єднання (Keep-alive).
- Ендпоінт:
wss://agents.leavepulse.com - Автентифікація: JWT-токен (
gateway.tokenу конфігу). - Можливості:
- Whitelist Sync: Миттєве отримання оновлень списку доступу.
- Moderation Commands: Виконання команд (Kick, Ban, Mute) з веб-панелі.
- Maintenance Control: Увімкнення/вимкнення режиму обслуговування.
- Telemetry Snapshots: Запит поточного стану сервера за запитом.
Життєвий цикл підключення
- Unconnected: Агент завантажений, але не має токенів. Працюють лише локальні команди діагностики.
- Linked: Виконана команда
connect. Агент отримавserver_idтаgateway.token. - Enrolled: Агент зареєстрував середовище виконання, згенерував ключі підпису та отримав
environment_id. Починається активна передача метрик. - Stable: Сесія шлюзу активна більше 12 секунд. Запускаються служби інтеграції (наприклад, LuckPerms).
Безпека
- Signing: Всі критичні запити (наприклад, зміна вайтлисту) підписуються локальним ключем Агента.
- Token Scope: Токен шлюзу має обмежений термін дії та прив'язаний до конкретного
server_id. - Payload Relocation: Агент використовує затінення (shading) бібліотек (Jackson, SnakeYAML) для уникнення конфліктів з іншими плагінами.
