diff --git a/README.md b/README.md index 01009c4..f4e155e 100644 --- a/README.md +++ b/README.md @@ -12,31 +12,12 @@ | ssh-monitor | Агент Linux | | RDP-login-monitor | Агент Windows | -**GitHub** - -| Репозиторий | URL | -|-------------|-----| -| security-alert-center | https://github.com/PTah/security-alert-center | -| ssh-monitor | https://github.com/PTah/ssh-monitor | -| RDP-login-monitor | https://github.com/PTah/RDP-login-monitor | - -**kalinamall** - | Репозиторий | URL | |-------------|-----| | security-alert-center | https://git.kalinamall.ru/PapaTramp/security-alert-center | | ssh-monitor | https://git.kalinamall.ru/PapaTramp/ssh-monitor | | RDP-login-monitor | https://git.kalinamall.ru/PapaTramp/RDP-login-monitor | - -**home** (git.papatramp.ru) - -| Репозиторий | URL | -|-------------|-----| -| security-alert-center | https://git.papatramp.ru/PapaTramp/security-alert-center | -| ssh-monitor | https://git.papatramp.ru/PapaTramp/ssh-monitor | -| RDP-login-monitor | https://git.papatramp.ru/PapaTramp/RDP-login-monitor | - -## Стек +## Стек | Слой | Технология | |------|------------| diff --git a/scripts/push-remotes.sh b/scripts/push-remotes.sh new file mode 100755 index 0000000..6582731 --- /dev/null +++ b/scripts/push-remotes.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +# Push README.md с правильным содержимым на каждый remote (истории README расходятся). +set -Eeuo pipefail + +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +cd "$ROOT" + +CHECK_SECRETS="${CHECK_SECRETS:-$HOME/Documents/Cursor/Projects/Answer.and.other.shit/guides/init.new.comps/scripts/check-no-secrets.sh}" + +push_readme() { + local remote=$1 + local template=$2 + local message=$3 + cp "$template" README.md + git add README.md + if git diff --cached --quiet; then + echo "[push-readme] $remote: README без изменений, push текущего HEAD" + else + git commit -m "$message" + fi + if [[ $remote == github ]] && [[ -x $CHECK_SECRETS || -f $CHECK_SECRETS ]]; then + bash "$CHECK_SECRETS" github + fi + git push "$remote" main + git reset --hard HEAD~1 +} + +BASE="$(git rev-parse HEAD)" +echo "[push-readme] база: $BASE" + +git push kalinamall main + +push_readme home "$ROOT/scripts/readme/home.md" "docs: README для home (git.papatramp.ru)" +push_readme github "$ROOT/scripts/readme/github.md" "docs: README для GitHub (без internal URL)" + +cp "$ROOT/scripts/readme/kalinamall.md" README.md +git add README.md +git commit -m "docs: README для kalinamall (рабочая копия)" || true +git push kalinamall main + +echo "[push-readme] готово. GitHub/home — отдельные коммиты README; локально — kalinamall." diff --git a/scripts/readme/_body.md b/scripts/readme/_body.md new file mode 100644 index 0000000..838516b --- /dev/null +++ b/scripts/readme/_body.md @@ -0,0 +1,68 @@ +## Стек + +| Слой | Технология | +|------|------------| +| 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](docs/ROADMAP.md). + +## Статус + +**Версия:** `0.5.7` (Android: Kotlin, Compose; enroll, UI, ack/resolve, FCM, биометрия, звук push, форматы даты) + +## Документация + +| Документ | Назначение | +|----------|------------| +| [docs/operator-guide.md](docs/operator-guide.md) | Инструкция для оператора | +| [docs/ROADMAP.md](docs/ROADMAP.md) | План разработки | + +## Сборка + +Требуется **JDK 17+** (Android Studio JBR или отдельная установка) и Android SDK (`local.properties` с `sdk.dir=…`). + +```bash +# Опционально: конфиг Firebase в app/ (шаблон *.example, рабочий файл не в git) — для FCM +./gradlew assembleDebug +# Windows: +gradlew.bat assembleDebug +``` + +APK: `app/build/outputs/apk/debug/app-debug.apk` + +Без конфига Firebase приложение собирается, но FCM не инициализируется (просмотр данных работает). + +## Лицензия + +Как у остальных репозиториев семейства SAC (уточняется владельцем проекта). diff --git a/scripts/readme/github.md b/scripts/readme/github.md new file mode 100644 index 0000000..1525751 --- /dev/null +++ b/scripts/readme/github.md @@ -0,0 +1,87 @@ +# Seaca + +**Seaca** (Security Event Alert Center App) — нативный мобильный клиент **Security Alert Center (SAC)** для Android. + +Оператор видит те же данные, что и в веб-интерфейсе SAC: обзор, события, отчёты, проблемы и хосты. Push-уведомления приходят по тем же правилам severity и cooldown, что Telegram/email/webhook на сервере. Управление пользователями, каналами оповещений и привязкой устройств — **только в веб-SAC** (раздел «Настройки»). + +## Связанные репозитории + +| Репозиторий | Роль | +|-------------|------| +| security-alert-center | Сервер SAC: API, UI, оповещения, управление мобильными устройствами | +| ssh-monitor | Агент Linux | +| RDP-login-monitor | Агент Windows | + +| Репозиторий | URL | +|-------------|-----| +| security-alert-center | https://github.com/PTah/security-alert-center | +| ssh-monitor | https://github.com/PTah/ssh-monitor | +| RDP-login-monitor | https://github.com/PTah/RDP-login-monitor | +## Стек + +| Слой | Технология | +|------|------------| +| 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](docs/ROADMAP.md). + +## Статус + +**Версия:** `0.5.7` (Android: Kotlin, Compose; enroll, UI, ack/resolve, FCM, биометрия, звук push, форматы даты) + +## Документация + +| Документ | Назначение | +|----------|------------| +| [docs/operator-guide.md](docs/operator-guide.md) | Инструкция для оператора | +| [docs/ROADMAP.md](docs/ROADMAP.md) | План разработки | + +## Сборка + +Требуется **JDK 17+** (Android Studio JBR или отдельная установка) и Android SDK (`local.properties` с `sdk.dir=…`). + +```bash +# Опционально: конфиг Firebase в app/ (шаблон *.example, рабочий файл не в git) — для FCM +./gradlew assembleDebug +# Windows: +gradlew.bat assembleDebug +``` + +APK: `app/build/outputs/apk/debug/app-debug.apk` + +Без конфига Firebase приложение собирается, но FCM не инициализируется (просмотр данных работает). + +## Лицензия + +Как у остальных репозиториев семейства SAC (уточняется владельцем проекта). diff --git a/scripts/readme/home.md b/scripts/readme/home.md new file mode 100644 index 0000000..a4d5f4a --- /dev/null +++ b/scripts/readme/home.md @@ -0,0 +1,87 @@ +# Seaca + +**Seaca** (Security Event Alert Center App) — нативный мобильный клиент **Security Alert Center (SAC)** для Android. + +Оператор видит те же данные, что и в веб-интерфейсе SAC: обзор, события, отчёты, проблемы и хосты. Push-уведомления приходят по тем же правилам severity и cooldown, что Telegram/email/webhook на сервере. Управление пользователями, каналами оповещений и привязкой устройств — **только в веб-SAC** (раздел «Настройки»). + +## Связанные репозитории + +| Репозиторий | Роль | +|-------------|------| +| security-alert-center | Сервер SAC: API, UI, оповещения, управление мобильными устройствами | +| ssh-monitor | Агент Linux | +| RDP-login-monitor | Агент Windows | + +| Репозиторий | URL | +|-------------|-----| +| security-alert-center | https://git.papatramp.ru/PapaTramp/security-alert-center | +| ssh-monitor | https://git.papatramp.ru/PapaTramp/ssh-monitor | +| RDP-login-monitor | https://git.papatramp.ru/PapaTramp/RDP-login-monitor | +## Стек + +| Слой | Технология | +|------|------------| +| 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](docs/ROADMAP.md). + +## Статус + +**Версия:** `0.5.7` (Android: Kotlin, Compose; enroll, UI, ack/resolve, FCM, биометрия, звук push, форматы даты) + +## Документация + +| Документ | Назначение | +|----------|------------| +| [docs/operator-guide.md](docs/operator-guide.md) | Инструкция для оператора | +| [docs/ROADMAP.md](docs/ROADMAP.md) | План разработки | + +## Сборка + +Требуется **JDK 17+** (Android Studio JBR или отдельная установка) и Android SDK (`local.properties` с `sdk.dir=…`). + +```bash +# Опционально: конфиг Firebase в app/ (шаблон *.example, рабочий файл не в git) — для FCM +./gradlew assembleDebug +# Windows: +gradlew.bat assembleDebug +``` + +APK: `app/build/outputs/apk/debug/app-debug.apk` + +Без конфига Firebase приложение собирается, но FCM не инициализируется (просмотр данных работает). + +## Лицензия + +Как у остальных репозиториев семейства SAC (уточняется владельцем проекта). diff --git a/scripts/readme/kalinamall.md b/scripts/readme/kalinamall.md new file mode 100644 index 0000000..f4e155e --- /dev/null +++ b/scripts/readme/kalinamall.md @@ -0,0 +1,87 @@ +# Seaca + +**Seaca** (Security Event Alert Center App) — нативный мобильный клиент **Security Alert Center (SAC)** для Android. + +Оператор видит те же данные, что и в веб-интерфейсе SAC: обзор, события, отчёты, проблемы и хосты. Push-уведомления приходят по тем же правилам severity и cooldown, что Telegram/email/webhook на сервере. Управление пользователями, каналами оповещений и привязкой устройств — **только в веб-SAC** (раздел «Настройки»). + +## Связанные репозитории + +| Репозиторий | Роль | +|-------------|------| +| security-alert-center | Сервер SAC: API, UI, оповещения, управление мобильными устройствами | +| ssh-monitor | Агент Linux | +| RDP-login-monitor | Агент Windows | + +| Репозиторий | URL | +|-------------|-----| +| security-alert-center | https://git.kalinamall.ru/PapaTramp/security-alert-center | +| ssh-monitor | https://git.kalinamall.ru/PapaTramp/ssh-monitor | +| RDP-login-monitor | https://git.kalinamall.ru/PapaTramp/RDP-login-monitor | +## Стек + +| Слой | Технология | +|------|------------| +| 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](docs/ROADMAP.md). + +## Статус + +**Версия:** `0.5.7` (Android: Kotlin, Compose; enroll, UI, ack/resolve, FCM, биометрия, звук push, форматы даты) + +## Документация + +| Документ | Назначение | +|----------|------------| +| [docs/operator-guide.md](docs/operator-guide.md) | Инструкция для оператора | +| [docs/ROADMAP.md](docs/ROADMAP.md) | План разработки | + +## Сборка + +Требуется **JDK 17+** (Android Studio JBR или отдельная установка) и Android SDK (`local.properties` с `sdk.dir=…`). + +```bash +# Опционально: конфиг Firebase в app/ (шаблон *.example, рабочий файл не в git) — для FCM +./gradlew assembleDebug +# Windows: +gradlew.bat assembleDebug +``` + +APK: `app/build/outputs/apk/debug/app-debug.apk` + +Без конфига Firebase приложение собирается, но FCM не инициализируется (просмотр данных работает). + +## Лицензия + +Как у остальных репозиториев семейства SAC (уточняется владельцем проекта).