docs: README и guides для 0.5.7, относительные ссылки между репо
Обновлены возможности приложения, версия, документация без prod-URL для GitHub; sibling-ссылки работают на каждом зеркале.
This commit is contained in:
@@ -1,16 +1,19 @@
|
||||
# Seaca
|
||||
# Seaca
|
||||
|
||||
**Seaca** (Security Event Alert Center App) — нативный мобильный клиент [Security Alert Center (SAC)](https://git.kalinamall.ru/PapaTramp/security-alert-center) для Android.
|
||||
**Seaca** (Security Event Alert Center App) — нативный мобильный клиент [Security Alert Center (SAC)](../security-alert-center) для Android.
|
||||
|
||||
Оператор видит те же данные, что и в веб-интерфейсе SAC: обзор, события, отчёты, проблемы и хосты. Push-уведомления приходят по тем же правилам severity и cooldown, что Telegram/email/webhook на сервере. Управление пользователями, каналами оповещений и привязкой устройств — **только в веб-SAC** (раздел «Настройки»).
|
||||
|
||||
## Связанные репозитории
|
||||
|
||||
Ссылки ведут на тот же хост, с которого открыт этот репозиторий (GitHub, kalinamall, home и т.д.).
|
||||
|
||||
| Репозиторий | Роль |
|
||||
|-------------|------|
|
||||
| [security-alert-center](https://git.kalinamall.ru/PapaTramp/security-alert-center) | Сервер SAC: API, UI, оповещения, управление мобильными устройствами |
|
||||
| [ssh-monitor](https://git.kalinamall.ru/PapaTramp/ssh-monitor) | Агент Linux |
|
||||
| [RDP-login-monitor](https://git.kalinamall.ru/PapaTramp/RDP-login-monitor) | Агент Windows |
|
||||
| [**seaca**](.) | **Этот репозиторий** — мобильный клиент Android |
|
||||
| [security-alert-center](../security-alert-center) | Сервер SAC: API, UI, оповещения, управление мобильными устройствами |
|
||||
| [ssh-monitor](../ssh-monitor) | Агент Linux |
|
||||
| [RDP-login-monitor](../RDP-login-monitor) | Агент Windows |
|
||||
|
||||
## Стек
|
||||
|
||||
@@ -22,18 +25,17 @@
|
||||
| Push | **Firebase Cloud Messaging (FCM)** |
|
||||
| Минимум SDK | Android 8.0 (API 26) |
|
||||
|
||||
### FCM — бесплатно?
|
||||
|
||||
**Да.** Firebase Cloud Messaging — бесплатный сервис Google для доставки push на Android (и не только). Платный тариф Firebase нужен для других продуктов (Analytics, Crashlytics на больших объёмах и т.д.); для стандартных data/notification push лимиты практически не ограничивают типичный SAC. Данные событий формируются на **вашем** SAC-сервере; через FCM уходит только компактный payload (заголовок, id, deep link).
|
||||
|
||||
Альтернатива без Google (UnifiedPush) в этом проекте не планируется.
|
||||
|
||||
## Что есть в приложении
|
||||
|
||||
- Обзор, события, отчёты, проблемы, хосты (списки и карточки)
|
||||
- Обзор, события, отчёты, проблемы, хосты (списки и карточки с читаемыми полями)
|
||||
- Pull-to-refresh на обзоре и в списках
|
||||
- Фильтры событий и проблем (severity, status)
|
||||
- Формат даты/времени на выбор (слэш, дефис, точка или системный локаль)
|
||||
- Ack / Resolve для роли `operator` и выше
|
||||
- Push с переходом в карточку события или problem
|
||||
- Биометрическая блокировка при открытии (локально)
|
||||
- Push с переходом в карточку события или problem; режимы: со звуком, без звука, выключено
|
||||
- Выбор звука уведомления: системный или свой (ringtone picker)
|
||||
- Биометрическая блокировка при **запуске** и при возврате в приложение
|
||||
- Экран «Моё устройство»: сервер, пользователь, роль, версия, настройки push, выход
|
||||
- Первичная привязка к серверу по **коду регистрации**, который выдаёт администратор в веб-SAC
|
||||
|
||||
## Чего нет в приложении (только веб)
|
||||
@@ -46,7 +48,7 @@
|
||||
|
||||
1. Администратор в веб-SAC включает «Разрешать подключение мобильных устройств».
|
||||
2. Создаёт **код регистрации** для пользователя (срок действия, одноразовый или с лимитом использований).
|
||||
3. Оператор в Seaca: URL сервера (или из QR) + код + логин/пароль (если код не привязан к предварительной сессии).
|
||||
3. Оператор в Seaca: URL API SAC (выдаёт администратор) + код + логин/пароль (если код не привязан к предварительной сессии).
|
||||
4. Приложение регистрирует FCM-токен; устройство появляется в списке на сервере.
|
||||
5. Администратор может отключить устройство, сменить разрешённый способ входа, переименовать.
|
||||
|
||||
@@ -54,7 +56,7 @@
|
||||
|
||||
## Статус
|
||||
|
||||
**Версия:** `0.4.0` (Android: Kotlin, Compose; enroll, UI, ack/resolve, FCM)
|
||||
**Версия:** `0.5.7` (Android: Kotlin, Compose; enroll, UI, ack/resolve, FCM, биометрия, звук push, форматы даты)
|
||||
|
||||
## Документация
|
||||
|
||||
@@ -62,8 +64,10 @@
|
||||
|----------|------------|
|
||||
| [docs/operator-guide.md](docs/operator-guide.md) | Инструкция для оператора |
|
||||
| [docs/ROADMAP.md](docs/ROADMAP.md) | План разработки |
|
||||
| [SAC: seaca-mobile.md](https://git.kalinamall.ru/PapaTramp/security-alert-center/src/branch/main/docs/seaca-mobile.md) | Админ: коды, устройства, сессия |
|
||||
| [SAC: seaca-fcm.md](https://git.kalinamall.ru/PapaTramp/security-alert-center/src/branch/main/docs/seaca-fcm.md) | FCM на сервере |
|
||||
| [SAC: seaca-mobile.md](../security-alert-center) (`docs/seaca-mobile.md`) | Админ: коды, устройства, сессия |
|
||||
| [SAC: seaca-fcm.md](../security-alert-center) (`docs/seaca-fcm.md`) | FCM на сервере |
|
||||
|
||||
> Документы SAC лежат в репозитории **security-alert-center** (ссылка выше ведёт на тот же Git-хост, что и этот репозиторий). В README и docs **нет** prod-URL и секретов — безопасно для зеркала на GitHub; полные адреса серверов — у администратора SAC или во внутренних заметках kalinamall/home.
|
||||
|
||||
## Сборка
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package ru.kalinamall.seaca.ui.screens
|
||||
package ru.kalinamall.seaca.ui.screens
|
||||
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
@@ -52,7 +52,7 @@ fun ConnectScreen(
|
||||
value = serverUrl,
|
||||
onValueChange = { serverUrl = it },
|
||||
label = { Text("URL сервера") },
|
||||
placeholder = { Text("https://sac-api.kalinamall.ru") },
|
||||
placeholder = { Text("https://host.example") },
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
singleLine = true,
|
||||
)
|
||||
|
||||
+9
-4
@@ -1,6 +1,6 @@
|
||||
# Roadmap — Seaca
|
||||
# Roadmap — Seaca
|
||||
|
||||
Мобильный клиент SAC (Kotlin). Серверные задачи (API, настройки в веб-SAC, FCM с бэкенда) — в [security-alert-center](https://git.kalinamall.ru/PapaTramp/security-alert-center), фаза **v0.6 — Mobile**.
|
||||
Мобильный клиент SAC (Kotlin). Серверные задачи (API, настройки в веб-SAC, FCM с бэкенда) — в [security-alert-center](../security-alert-center), фаза **v0.6 — Mobile**.
|
||||
|
||||
---
|
||||
|
||||
@@ -66,12 +66,17 @@
|
||||
|
||||
---
|
||||
|
||||
## v0.5 — Полировка (позже)
|
||||
## v0.5 — Полировка ✅ (основное)
|
||||
|
||||
- [x] Refresh token rotation (`POST /api/v1/mobile/auth/refresh`) — уже в v0.1
|
||||
- [x] Биометрия при **запуске** и при возврате в приложение
|
||||
- [x] Pull-to-refresh на обзоре и в списках
|
||||
- [x] Формат даты/времени (несколько пресетов + системный локаль)
|
||||
- [x] Режимы push на устройстве: звук / без звука / выкл.
|
||||
- [x] Звук push: системный или пользовательский (ringtone picker)
|
||||
- [x] Экран «Моё устройство»: сервер, пользователь, роль, версия, настройки, «Выйти»
|
||||
- [ ] Виджет: число open problems
|
||||
- [ ] Offline-кэш последних N событий (Room)
|
||||
- [x] Экран «Моё устройство»: имя, сервер, версия, «Выйти» (базовый)
|
||||
- [ ] Минимальная версия приложения (проверка с сервера)
|
||||
|
||||
---
|
||||
|
||||
+16
-7
@@ -1,9 +1,9 @@
|
||||
# Seaca — руководство оператора
|
||||
# Seaca — руководство оператора
|
||||
|
||||
## Первая настройка
|
||||
|
||||
1. Получите от администратора:
|
||||
- адрес сервера (**`https://sac-api.kalinamall.ru`** — мобильный API; веб для админов — `https://sac.kalinamall.ru`);
|
||||
- **URL API SAC** для мобильного приложения (HTTPS, путь `/api/v1/…`);
|
||||
- код регистрации `sacmob_…`;
|
||||
- при необходимости — логин и пароль SAC.
|
||||
2. Установите APK Seaca.
|
||||
@@ -16,22 +16,31 @@
|
||||
|
||||
| Раздел | Содержание |
|
||||
|--------|------------|
|
||||
| Обзор | Сводка за 24 ч, открытые проблемы |
|
||||
| Обзор | Сводка за 24 ч, открытые проблемы; потяните вниз для обновления |
|
||||
| События | Лента с фильтром по severity |
|
||||
| Проблемы | Инциденты; для monitor/admin — подтвердить / закрыть |
|
||||
| Проблемы | Инциденты; для operator и выше — подтвердить / закрыть |
|
||||
| Хосты | Агенты ssh-monitor / RDP-login-monitor |
|
||||
| Отчёты | Суточные отчёты SSH и RDP |
|
||||
| Моё устройство | Сервер, пользователь, режим push, звук, формат даты/времени, выход |
|
||||
|
||||
## Push-уведомления
|
||||
|
||||
Появятся после настройки FCM администратором. Нажатие на уведомление открывает карточку события или проблемы.
|
||||
Настраиваются на экране **Моё устройство**:
|
||||
|
||||
| Режим | Поведение |
|
||||
|-------|-----------|
|
||||
| Push и звук | Уведомление со звуком (системным или выбранным) |
|
||||
| Push без звука | Только banner, без звука |
|
||||
| Без push и звука | Данные в приложении по запросу |
|
||||
|
||||
Нажатие на уведомление открывает карточку события или проблемы.
|
||||
|
||||
## Блокировка
|
||||
|
||||
При возврате в приложение может запрашиваться отпечаток / PIN устройства (если включено в системе).
|
||||
При **запуске** приложения и при возврате из фона может запрашиваться отпечаток / PIN устройства (если включено в системе).
|
||||
|
||||
## Потеря доступа
|
||||
|
||||
Обратитесь к администратору: новый код регистрации или снятие отзыва устройства в веб-SAC.
|
||||
|
||||
Подробности для админов — в [seaca-mobile.md](https://git.kalinamall.ru/PapaTramp/security-alert-center/src/branch/main/docs/seaca-mobile.md) (репозиторий SAC).
|
||||
Подробности для админов — в [seaca-mobile.md](../security-alert-center) (файл `docs/seaca-mobile.md` в репозитории SAC).
|
||||
|
||||
Reference in New Issue
Block a user