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
  • Выдача и отзыв кодов регистрации, список устройств, способ входа на устройство — всё это в Настройки → Мобильные устройства на сервере

Привязка телефона к серверу

  1. Администратор в веб-SAC включает «Разрешать подключение мобильных устройств».
  2. Создаёт код регистрации для пользователя (срок действия, одноразовый или с лимитом использований).
  3. Оператор в Seaca: URL API SAC (выдаёт администратор) + код + логин/пароль (если код не привязан к предварительной сессии).
  4. Приложение регистрирует FCM-токен; устройство появляется в списке на сервере.
  5. Администратор может отключить устройство, сменить разрешённый способ входа, переименовать.

Подробный план — 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 (уточняется владельцем проекта).

S
Description
No description provided
Readme 490 KiB
Languages
Kotlin 98.1%
Shell 1.9%