69 lines
3.8 KiB
Markdown
Executable file
69 lines
3.8 KiB
Markdown
Executable file
# Схема базы данных
|
||
|
||
База данных 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"}` |
|