feat(tradein): scheduled monthly Rosreestr new-quarter poll → ingest alert (#888) #894
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#894
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/888-rosreestr-poll"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Ops automation (low priority). Today the Rosreestr ДКП ingest is manual (JOBS hardcoded to 2026Q1); Q2'26 lands ~Aug 2026. This adds a monthly scheduler job that detects a newly-published Rosreestr quarter and logs an actionable ingest alert — it does NOT download the multi-GB zip or shell out from the scheduler tick (that stays a deliberate human/ops step).
services/rosreestr_poll.py:latest_loaded_quarter(MAX(deal_date)fromdeals) + next-quarter calc + HEAD-probe of the dataset URL for availability. Fully defensive — network errors log a warning and returnFalse, never raise into the scheduler.tasks/rosreestr_quarter_poll.py: thin task wrapper (mirrorssber_index_pull).scheduler.py:trigger_rosreestr_quarter_poll_run+ dispatch branch forsource=='rosreestr_quarter_poll'— mirrors the #887 sber wiring exactly.scrape_schedulesmonthly seed,ON CONFLICT (source) DO NOTHING,BEGIN/COMMIT.When a new quarter is detected it logs:
Run ingest: data/sql/02_load_all_quarters.sh + tradein-mvp/deploy/import-rosreestr.sh.Test plan
tests/test_rosreestr_poll.py(13) + scheduler (9) → 22 passed; ruff clean.scrape_schedules; next monthly tick logsavailable=Falsefor the current state (Q2'26 not yet published) — correct.Safe/additive (new module + new schedule row + dormant until a quarter actually publishes). Migration is additive seed only.
Refs #888, #727, #724