fix: устранены все найденные аудитом баги и тихие падения
- SQL injection паттерн → параметризованные запросы во всех местах - except: pass/continue → logger.warning() везде, ничего не тонет молча - WAL mode + индекс domain_dedup_key в database.py - try/finally для conn в main.py, утечка соединения устранена - backoff 30с при 403/429 от Rusprofile/ЕГРЮЛ - ликвидированные компании → egrul_status="liquidated" - max_candidates в contacts_finder считает только реальных кандидатов - DB_PATH абсолютный (Path(__file__).parent), HH_PAUSE_BETWEEN_QUERIES в config - HH_SIGNAL_QUERIES дубль убран из launcher.py → импорт из config - path traversal защита в egrul_enricher debug_dump_html Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -52,7 +52,7 @@ def _api_key() -> Optional[str]:
|
||||
load_dotenv()
|
||||
key = os.environ.get("DADATA_API_KEY")
|
||||
except ImportError:
|
||||
pass
|
||||
logger.warning("[dadata] python-dotenv не установлен, .env не загружен")
|
||||
return key
|
||||
|
||||
|
||||
@@ -282,8 +282,12 @@ def enrich_via_dadata(
|
||||
best = d
|
||||
break
|
||||
if not best:
|
||||
# Все ликвидированы — берём первого, не записываем в БД
|
||||
# Все ликвидированы — берём первого, логируем, выставляем статус
|
||||
logger.warning(f"[dadata] Все совпадения ликвидированы для '{name}'")
|
||||
best = suggestions[0].get("data") or {}
|
||||
parsed = _parse_party(best)
|
||||
parsed["egrul_status"] = "liquidated"
|
||||
return parsed
|
||||
|
||||
parsed = _parse_party(best)
|
||||
return parsed
|
||||
|
||||
Reference in New Issue
Block a user