api_sync/DATABASE_SCHEMA.md
2026-06-10 16:00:37 +03:00

69 lines
3.8 KiB
Markdown
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Схема базы данных
База данных 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"}` |