|
Some checks failed
Deploy Trade-In / changes (push) Successful in 5s
Deploy / changes (push) Successful in 5s
Deploy Trade-In / build-frontend (push) Successful in 26s
Deploy Trade-In / build-backend (push) Successful in 47s
Deploy / build-frontend (push) Successful in 29s
Deploy / build-backend (push) Successful in 1m24s
Deploy Trade-In / deploy (push) Successful in 40s
Deploy / build-worker (push) Successful in 2m57s
Deploy / deploy (push) Failing after 37s
Replaces tradein.cad_buildings snapshot with live postgres_fdw foreign table reading gendesign.v_tradein_cad_buildings. Fixes /trade-in/api/v1/geocode/reverse 500 (Nominatim ban) and address_not_geocoded for cadastre addresses (e.g. Хохрякова 81).
Security (deep-review fixes):
- 100_tradein_fdw_role.sql: passwordless CREATE ROLE; password set by deploy.yml ALTER ROLE bootstrap reading GENDESIGN_FDW_PASSWORD from backend/.env.runtime (via psql :'pw' var → format %L — injection-safe).
- core/fdw.py: regex whitelist [A-Za-z0-9_-]{32,256} on password, ValueError without echoing value, try/rollback on commit.
- 060_postgres_fdw_extension.sql: connect_timeout='3' on FOREIGN SERVER + ALTER ADD/SET fallback.
- geocoder.py: _cadastral_forward_sync / _cadastral_reverse_sync wrapped in asyncio.to_thread.
- 100_*.sql: REVOKE ALL ON ALL TABLES/SEQUENCES/FUNCTIONS IN SCHEMA public; only GRANT SELECT on v_tradein_cad_buildings.
- pg_user_mappings query handles PUBLIC mapping (usename IS NULL).
Tests: 3 SQL-injection guards on ensure_fdw_user_mapping + rewritten cadastral suite.
|
||
|---|---|---|
| .. | ||
| matching | ||
| scrapers | ||
| services | ||
| tasks | ||
| __init__.py | ||
| test_api_avito_stage4a.py | ||
| test_avito_detail_parse.py | ||
| test_avito_houses_parse.py | ||
| test_avito_imv_parse.py | ||
| test_base_save_listings.py | ||
| test_cian_detail.py | ||
| test_cian_newbuilding.py | ||
| test_cian_serp_scraper.py | ||
| test_cian_session.py | ||
| test_cian_state_parser.py | ||
| test_cian_valuation.py | ||
| test_city_sweep.py | ||
| test_estimator_cian_integration.py | ||
| test_estimator_imv_integration.py | ||
| test_estimator_source_quota.py | ||
| test_estimator_yandex_integration.py | ||
| test_matching.py | ||
| test_scheduler.py | ||
| test_scrape_pipeline.py | ||
| test_scraper_settings.py | ||
| test_search_api.py | ||
| test_yandex_detail.py | ||
| test_yandex_helpers.py | ||
| test_yandex_newbuilding.py | ||
| test_yandex_realty_serp.py | ||
| test_yandex_scrapers_delay_wiring.py | ||
| test_yandex_valuation.py | ||