50 lines
2.1 KiB
Markdown
50 lines
2.1 KiB
Markdown
# FCM (push) для Seaca
|
||
|
||
Настраивается **только на сервере SAC** и в **Firebase**; в веб-UI — индикатор и тест push на устройство.
|
||
|
||
## 1. Firebase
|
||
|
||
1. [Firebase Console](https://console.firebase.google.com/) → создать проект (или использовать существующий).
|
||
2. Добавить Android-приложение с package name **`ru.kalinamall.seaca`** (как в APK Seaca).
|
||
3. Скачать `google-services.json` — файл для **сборки Seaca**, в git не коммитить.
|
||
4. **Project settings → Service accounts → Generate new private key** — JSON для **сервера SAC**.
|
||
|
||
## 2. Сервер SAC
|
||
|
||
```bash
|
||
sudo install -o sac -g sac -m 600 /path/to/firebase-key.json \
|
||
/etc/security-alert-center/fcm-service-account.json
|
||
```
|
||
|
||
В `/opt/security-alert-center/config/sac-api.env`:
|
||
|
||
```ini
|
||
SAC_FCM_ENABLED=true
|
||
SAC_FCM_PROJECT_ID=your-firebase-project-id
|
||
SAC_FCM_SERVICE_ACCOUNT_JSON=/etc/security-alert-center/fcm-service-account.json
|
||
```
|
||
|
||
Перезапуск API:
|
||
|
||
```bash
|
||
sudo systemctl restart sac-api
|
||
```
|
||
|
||
## 3. Политика оповещений
|
||
|
||
**Настройки → Правило оповещений** → канал **Seaca (push)**.
|
||
|
||
Действуют те же `min_severity`, cooldown и dedup, что для Telegram/email.
|
||
|
||
## 4. Проверка
|
||
|
||
1. Телефон привязан (enroll), в списке устройств **FCM: да**.
|
||
2. **Настройки → Мобильные устройства → Тест push** на строке устройства.
|
||
3. Либо сгенерировать событие с severity выше порога policy.
|
||
|
||
## 5. Ограничения
|
||
|
||
- FCM доставляет через инфраструктуру Google; payload формирует SAC (заголовок, id, deep link).
|
||
- Без `SAC_FCM_ENABLED=true` push не отправляется; приложение и REST API работают.
|
||
- `google-services.json` нужен приложению; service account JSON — только серверу.
|