Make monitoring PF API-only for Portal

This commit is contained in:
Grendgi
2026-06-05 09:56:07 +03:00
parent 2ff44091b5
commit 8bdac8b15b
14 changed files with 335 additions and 973 deletions

View File

@@ -1,8 +1,9 @@
# monitoring-pf
Сервис мониторинга объявлений PropertyFinder/Bayut по DLD Permit Number для
портала. Он хранит проекты, конкурирующие объявления и историю цен, а UI
публикуется через portal по `/monitoring-pf`.
Сервис мониторинга объявлений PropertyFinder по DLD Permit Number для портала.
Он хранит проекты, конкурирующие объявления и историю цен. Пользовательский UI
живёт в Portal: `portal/frontend/src/app/features/monitoring-pf`; этот сервис
отдаёт только JSON API, Telegram bot и scheduler.
## Назначение
@@ -13,15 +14,17 @@
## Развёртывание
Сервис рассчитан на запуск внутри портала/k8s. Манифесты лежат в `k8s/`.
Перед применением заполните секреты в `k8s/secrets.yaml`.
Сервис рассчитан на запуск только внутри k8s. Настройки лежат в
`k8s/configmap.yaml`, секреты в `k8s/secrets.yaml`. Локальный `.env` не
используется.
```bash
kubectl apply -k k8s
```
Standalone-скрипты локального Windows-запуска и compose-обвязка удалены, чтобы
проект не дублировал инфраструктуру портала.
API доступен через portal proxy `/api/monitoring-pf/api/v1`. Админские действия
определяются ролью `admin` в Portal через `X-User-Is-Admin=1`; локального
PIN-login больше нет.
## Структура
@@ -30,11 +33,10 @@ app/
├── config.py настройки окружения
├── db.py SQLAlchemy engine/session
├── models.py Employee, Project, CompetitorListing, PriceHistory
├── web.py FastAPI роуты и UI
├── web.py FastAPI JSON API для Portal
├── bot.py Telegram-бот
├── scheduler.py фоновый сканер
├── scrapers/ PropertyFinder/Bayut парсеры
├── services/ бизнес-логика и уведомления
└── templates/ Jinja2 UI
k8s/ манифесты для портала
```