# Интеграции с провайдерами

Раздел описывает правила работы адаптеров внешних сервисов, требования к токенам и порядок вычисления фичей для анализа индикаторов.

## Базовые принципы

- Все провайдеры наследуются от `BaseProvider`, который определяет обязательность токена, параметры HTTP-клиента и обработку общих исключений.
- HTTP-запросы используют таймауты и прокси из конфигурации, а контексты подключений управляются через асинхронные менеджеры.
- Отключённые провайдеры помечаются явным статусом и не участвуют в обработке, чтобы не мешать выполнению остальной цепочки.

## Поддерживаемые сервисы

- AbuseIPDB, DB-IP, Top1M (Umbrella + Majestic), SystemDNS, Kaspersky, AlienVault OTX, OpenPageRank, HTTP Observer, ASRank и локальный `whois`.
- Каждый адаптер реализует метод `fetch`, возвращающий унифицированную структуру данных или флаг сбоя; ошибки отдельного провайдера не прерывают обработку остальных запросов.

## Токены и конфигурация

- Значения токенов хранятся в `secrets.toml` и выбираются по имени провайдера и индексу воркера; отсутствие обязательного токена блокирует создание задачи.
- Настройки `settings.providers` задают список активных сервисов и определяют, какие интеграции участвуют в обработке по умолчанию.
- Общие параметры HTTP (таймауты, прокси, заголовки) задаются в `config.toml` и применяются для всех запросов провайдеров.

## Вычисление фичей

- Модуль `providers.features` преобразует ответы провайдеров в набор признаков: репутационные баллы, категории зон Kaspersky, сведения о DNS и ASN.
- Фичи агрегируются для дальнейшего анализа индикаторов и могут использоваться сервисным слоем при формировании итогового вердикта.
