# Схема базы данных База данных PostgreSQL. Имя БД задаётся переменной окружения `DB_NAME` (по умолчанию `waf_info`). --- ## client_info Список клиентов, для которых выполняется синхронизация. | Колонка | Тип | Описание | |---|---|---| | `client_title` | text | Уникальное название клиента | --- ## apps_settings Настройки L7-ресурсов по каждому клиенту. Определяет, какие ресурсы и в каком режиме обрабатываются. | Колонка | Тип | Описание | |---|---|---| | `client_title` | text | Название клиента (связь с `client_info`) | | `l7resourceid` | bigint | ID ресурса в ServicePipe (SID) | | `mode` | text | Режим обработки: `auto` — синхронизируется автоматически, остальные значения игнорируются при синхронизации | | `waf_vendor` | text | Вендор WAF: `ptaf`, `sw`, `wmx` — используется для формирования текста алертов при удалении ресурса | --- ## sp_info Основная таблица с данными о ресурсах, полученными из API ServicePipe. Заполняется и обновляется автоматически при каждом запуске синхронизации. | Колонка | Тип | Описание | |---|---|---| | `sid` | bigint | ID ресурса в ServicePipe (первичный ключ) | | `domain_name` | text | Основной домен ресурса | | `origins` | jsonb | Список backend-серверов в формате `[{"ip": "...", "mode": "...", "weight": N}]` | | `aliases` | jsonb | Список доменных псевдонимов в формате `["domain1", "domain2"]` | | `aliaces_in_sp_modified` | timestamptz | Дата последнего изменения алиасов на стороне SP | | `protected_ip` | text | Защищённый IP из API (используется для проверки AntiDDOS) | | `resolved_ip` | text | IP, полученный при DNS-резолвинге основного домена | | `antiddos_enable` | boolean | Признак активности AntiDDOS: `true` если `resolved_ip == protected_ip` | | `waf_enabled_sp` | integer | Признак включённости WAF на стороне SP (из API) | | `waf_vendor` | text | Вендор WAF (из API ServicePipe) | | `instance_sp` | text | Название WAF-инстанса на стороне SP | | `updated_at` | timestamptz | Дата последнего обновления записи | --- ## manual_info Ресурсы, добавляемые вручную администратором. Используется только как дополнительный источник IP-адресов для whitelist. Программой не изменяется. | Колонка | Тип | Описание | |---|---|---| | `sid` | bigint | ID ресурса в ServicePipe | | `domain_name` | text | Основной домен ресурса | | `origins` | jsonb | Список backend-серверов в формате `[{"ip": "...", "mode": "...", "weight": N}]` | --- ## ips Содержит сети WAF-узлов в виде CIDR-диапазонов. Используется для фильтрации — IP из этих сетей не попадают в whitelist. | Колонка | Тип | Описание | |---|---|---| | `waf_networks` | text[] | Массив CIDR-диапазонов WAF-сетей, например `{"10.0.0.0/8", "192.168.1.0/24"}` |