Grendgi 5eb8e21eda
All checks were successful
CI / hygiene (push) Successful in 2s
Build and Deploy / build-and-deploy (push) Successful in 27s
CI / go (push) Successful in 26s
CI / python (push) Successful in 2s
Add monitoring TG CI hygiene guard
2026-06-12 16:42:35 +03:00
2026-06-12 16:42:35 +03:00
2026-06-04 14:55:41 +03:00
2026-06-04 14:55:41 +03:00
2026-06-04 14:55:41 +03:00
2026-06-09 10:32:22 +03:00
2026-06-04 14:55:41 +03:00
2026-06-05 16:58:08 +03:00
2026-06-05 16:58:08 +03:00

monitoring-tg

Backend-сервис мониторинга Telegram-каналов для Portal. Публичный API и AI-классификация работают на Go, Python оставлен только как внутренний MTProto/Telethon-адаптер для авторизации, опроса каналов и дозагрузки медиа. Сервис сохраняет сообщения в Postgres, раскладывает каналы по вертикалям/подразделам и выполняет AI-анализ через общий ai-service, который уже сам обращается к OpenAI-compatible backend.

Пользовательский UI живёт в portal/frontend/src/app/features/monitoring-tg. Этот сервис не отдаёт отдельные HTML-страницы и работает как API/worker за портальным прокси /api/monitoring-tg.

Доступ

  • Админские операции остаются за ролью admin в Portal: portal прокидывает X-User-Is-Admin=1.
  • Отдел видит только свои подразделы, каналы, сообщения и промпты через X-User-Department-Id.
  • Руководитель отдела может создавать и редактировать подразделы своего отдела: portal прокидывает X-User-Is-Department-Head=1.
  • Пароли подразделов и IP allowlist удалены.

Конфигурация

Сервис рассчитан на запуск только в k8s. Настройки хранятся в k8s/configmap.yaml, секреты — в k8s/secrets.yaml. Локальный .env не используется.

Локального админ-пароля нет: админские API доступны только через роль admin в Portal.

Запуск в k8s

Манифесты лежат в k8s/. Перед применением нужно заполнить k8s/secrets.yaml реальными Telegram-кредами и AI_SERVICE_TOKEN.

kubectl apply -k k8s

Миграции выполняются entrypoint-ом контейнера перед запуском процессов.

Структура

src/parser_bot/
├── api/         внутренние FastAPI роуты Telegram-адаптера
├── db/          SQLAlchemy модели + сессии
├── scheduler/   APScheduler-воркер периодического опроса
├── telegram/    Telethon-клиент
├── config.py    pydantic-settings
└── main.py      FastAPI lifespan + uvicorn для внутреннего адаптера
cmd/server/      Go API для Portal
cmd/classifier/  Go-воркер фоновой LLM-классификации сообщений
alembic/         миграции
k8s/             манифесты для портала
Description
No description provided
Readme 605 KiB
Languages
Go 56.5%
Python 41.9%
Shell 0.7%
Dockerfile 0.6%
Mako 0.3%