Make monitoring TG API-only

This commit is contained in:
Grendgi
2026-06-04 15:42:50 +03:00
parent b78d1eac02
commit 5cda374fb1
37 changed files with 26 additions and 2836 deletions

View File

@@ -1,12 +1,16 @@
# monitoring-tg
Сервис мониторинга Telegram-каналов для портала. Он сохраняет сообщения в
Postgres, раскладывает каналы по вертикалям/подразделам и выполняет AI-анализ
Backend-сервис мониторинга Telegram-каналов для Portal. Он сохраняет сообщения
в Postgres, раскладывает каналы по вертикалям/подразделам и выполняет AI-анализ
через OpenAI-compatible endpoint, общий с другими сервисами портала.
Пользовательский UI живёт в `portal/frontend/src/app/features/monitoring-tg`.
Этот сервис не отдаёт отдельные HTML-страницы и работает как API/worker за
портальным прокси `/api/monitoring-tg`.
## Доступ
- Админские операции остаются за админом портала: portal прокидывает
- Админские операции остаются за ролью `admin` в Portal: portal прокидывает
`X-User-Is-Admin=1`.
- Отдел видит только свои подразделы, каналы, сообщения и промпты через
`X-User-Department-Id`.
@@ -38,8 +42,8 @@ LLM_API_KEY=
LLM_MODEL=qwen2.5-14b
```
Для локальной админской отладки можно задать `ADMIN_PASSWORD`, но в проде доступ
должен идти через портал.
Локального админ-пароля нет: админские API доступны только через роль `admin`
в Portal.
## Запуск в k8s
@@ -60,7 +64,6 @@ src/parser_bot/
├── db/ SQLAlchemy модели + сессии
├── scheduler/ APScheduler-воркер периодического опроса
├── telegram/ Telethon-клиент
├── web/static/ страницы UI без бандлера
├── config.py pydantic-settings
└── main.py FastAPI lifespan + uvicorn
alembic/ миграции