How prozorroukr/prozorro-risks works
Prozorro Risks detects procurement risks in tender and contract records, stores assessment history, and exposes results through an API and browser report. The main workflow is a crawler fetching records from the public procurement API, dispatching eligible records to matching risk rules, then persisting assessments. Rules can also consult stored historical tenders. The README describes rule metadata and result states; sampled code supports the tender and contract crawler flows and the report endpoints. Other crawler details and API routing are inferred only from the tree, so uncertain wiring is omitted.
Main entry points: tenders_crawler.py Tender crawler · contracts_crawler.py Contract crawler · rules Risk rules · handlers.py API handlers
Components 15
Crawling
- Tender crawler
src/prozorro/risks/crawlers/tenders_crawler.py - Contract crawler
src/prozorro/risks/crawlers/contracts_crawler.py - Delay crawler
src/prozorro/risks/crawlers/delay_crawler.py - Object requests
src/prozorro/risks/requests.py
Risk assessment
- Crawler dispatcher
src/prozorro/risks/crawlers/base.py - Risk rules
src/prozorro/risks/rules - Rule foundations
src/prozorro/risks/rules/base.py - Historical queries
src/prozorro/risks/historical_data.py - Risk utilities
src/prozorro/risks/utils.py
Persistence
- MongoDB records
src/prozorro/risks/db.py
Reporting
- API application
src/prozorro/risks/api.py - API handlers
src/prozorro/risks/handlers.py - Risk report UI
frontend/src/js/main.js
Other components
- Procurement API
- Report user
Connections 20
- Procurement API → Tender crawler: supplies feed items
- Procurement API → Contract crawler: supplies feed items
- Tender crawler → Object requests: fetches tenders
- Contract crawler → Object requests: fetches contracts
- Object requests → Procurement API: requests records
- Tender crawler → Crawler dispatcher: dispatches tender
- Contract crawler → Crawler dispatcher: dispatches contract
- Crawler dispatcher → Risk rules: invokes rules
- Risk rules → Rule foundations: inherits behavior
- Risk rules → Historical queries: queries history
- Historical queries → MongoDB records: aggregates tenders
- Tender crawler → Risk utilities: uses helpers
- Contract crawler → Risk utilities: loads parent tender
- Tender crawler → MongoDB records: saves assessment
- Contract crawler → MongoDB records: saves assessment
- API application → API handlers: routes requests
- API handlers → MongoDB records: reads reports
- API handlers → Risk rules: lists rule metadata
- Report user → Risk report UI: uses report
- Risk report UI → API handlers: fetches report data