6.1 KiB
Seaca
Seaca (Security Event Alert Center App) — нативный мобильный клиент Security Alert Center (SAC) для Android.
Оператор видит те же данные, что и в веб-интерфейсе SAC: обзор, события, отчёты, проблемы и хосты. Push-уведомления приходят по тем же правилам severity и cooldown, что Telegram/email/webhook на сервере. Управление пользователями, каналами оповещений и привязкой устройств — только в веб-SAC (раздел «Настройки»).
Связанные репозитории
Ссылки ведут на тот же хост, с которого открыт этот репозиторий (GitHub, kalinamall, home и т.д.).
| Репозиторий | Роль |
|---|---|
| seaca | Этот репозиторий — мобильный клиент Android |
| security-alert-center | Сервер SAC: API, UI, оповещения, управление мобильными устройствами |
| ssh-monitor | Агент Linux |
| RDP-login-monitor | Агент Windows |
Стек
| Слой | Технология |
|---|---|
| UI | Kotlin, Jetpack Compose, Material 3 |
| Сеть | Retrofit / OkHttp, Kotlin Serialization |
| Хранение | DataStore + Android Keystore (токены, URL сервера) |
| Push | Firebase Cloud Messaging (FCM) |
| Минимум SDK | Android 8.0 (API 26) |
Что есть в приложении
- Обзор, события, отчёты, проблемы, хосты (списки и карточки с читаемыми полями)
- Pull-to-refresh на обзоре и в списках
- Фильтры событий и проблем (severity, status)
- Формат даты/времени на выбор (слэш, дефис, точка или системный локаль)
- Ack / Resolve для роли
operatorи выше - Push с переходом в карточку события или problem; режимы: со звуком, без звука, выключено
- Выбор звука уведомления: системный или свой (ringtone picker)
- Биометрическая блокировка при запуске и при возврате в приложение
- Экран «Моё устройство»: сервер, пользователь, роль, версия, настройки push, выход
- Первичная привязка к серверу по коду регистрации, который выдаёт администратор в веб-SAC
Чего нет в приложении (только веб)
- Управление пользователями SAC
- Настройки каналов (Telegram, SMTP, webhook), severity, policy
- Выдача и отзыв кодов регистрации, список устройств, способ входа на устройство — всё это в Настройки → Мобильные устройства на сервере
Привязка телефона к серверу
- Администратор в веб-SAC включает «Разрешать подключение мобильных устройств».
- Создаёт код регистрации для пользователя (срок действия, одноразовый или с лимитом использований).
- Оператор в Seaca: URL API SAC (выдаёт администратор) + код + логин/пароль (если код не привязан к предварительной сессии).
- Приложение регистрирует FCM-токен; устройство появляется в списке на сервере.
- Администратор может отключить устройство, сменить разрешённый способ входа, переименовать.
Подробный план — docs/ROADMAP.md.
Статус
Версия: 0.5.7 (Android: Kotlin, Compose; enroll, UI, ack/resolve, FCM, биометрия, звук push, форматы даты)
Документация
| Документ | Назначение |
|---|---|
| docs/operator-guide.md | Инструкция для оператора |
| docs/ROADMAP.md | План разработки |
SAC: seaca-mobile.md (docs/seaca-mobile.md) |
Админ: коды, устройства, сессия |
SAC: seaca-fcm.md (docs/seaca-fcm.md) |
FCM на сервере |
Документы SAC лежат в репозитории security-alert-center (ссылка выше ведёт на тот же Git-хост, что и этот репозиторий). В README и docs нет prod-URL и секретов — безопасно для зеркала на GitHub; полные адреса серверов — у администратора SAC или во внутренних заметках kalinamall/home.
Сборка
Требуется JDK 17+ (Android Studio JBR или отдельная установка) и Android SDK (local.properties с sdk.dir=…).
# Опционально: конфиг Firebase в app/ (шаблон *.example, рабочий файл не в git) — для FCM
./gradlew assembleDebug
# Windows:
gradlew.bat assembleDebug
APK: app/build/outputs/apk/debug/app-debug.apk
Без конфига Firebase приложение собирается, но FCM не инициализируется (просмотр данных работает).
Лицензия
Как у остальных репозиториев семейства SAC (уточняется владельцем проекта).