Подключения, доставки и контроль качества
Подключение внешней базы
POST /api/v1/connections. Обязательны code, name, driver, host, database.
Код содержит строчные латинские буквы, цифры и дефис. Дополнительно: port,
username, password, description, options, is_active.
{
"code":"store-db",
"name":"База магазина",
"driver":"pgsql",
"host":"db.example.invalid",
"port":5432,
"database":"catalog",
"username":"catalog_writer",
"password":"REPLACE_ME",
"options":{"schema":"public","sslmode":"require"}
}
Драйверы: pgsql, mysql, mongodb, s3. Для MongoDB доступны auth_source
и replica_set в options. Для S3 database означает bucket, username: ключ
доступа, password: секрет. В options задаются region, use_path_style,
use_tls, base_prefix. Не вставляйте строку подключения целиком в host.
POST /connections/{id}/test проверяет сохранённое подключение.
POST /connections/probe проверяет параметры до сохранения. Эти операции
обращаются к указанному серверу. Секреты подключения обратно не выдаются;
не считайте пустое поле пароля в интерфейсе отсутствием сохранённого секрета.
Доставка результата
Создание: POST /exports/{id}/deliveries.
{
"name":"Обновление каталога",
"target":"database",
"connection_id":1,
"table_name":"products",
"write_mode":"upsert",
"trigger":"after_run",
"incremental":true,
"is_active":true
}
| Параметр | Значения |
|---|---|
| target | file: файл, database: база |
| write_mode | upsert: обновление по ключу, append: добавление, replace: очистка и замена |
| trigger | after_run, manual, cron |
| cron | Выражение обязательно при trigger=cron |
| timezone | Например Europe/Moscow |
| incremental | Отправлять изменения после последней успешной доставки |
Для доставки cron находится в корне JSON, в отличие от preset.cron расписания
сбора. replace удаляет прежнее содержимое таблицы: используйте только для
согласованной с получателем полной замены.
GET /connections/{connection}/structure/{export} показывает предлагаемую
структуру. POST на тот же путь применяет её и требует отдельного права.
Сначала изучите предложение, особенно при работе с существующей таблицей.
POST /deliveries/{id}/run ставит доставку в очередь. Состояние проверяйте в
истории выгрузки. /reset-cursor сбрасывает отметку: следующая доставка может
повторить весь набор. Получатель должен корректно обрабатывать повторные записи.
Просмотр S3
GET /connections/{id}/storage/objects: объекты, /storage/search: поиск,
/storage/download: скачивание. Требуется право чтения хранилища. Эти методы
работают в рамках доступного подключения; они не дают произвольный доступ к
файловой системе платформы.
Качество данных
GET /quality/vocabulary возвращает виды правил, действия и параметры.
GET /quality/rules: правила; GET /quality/findings: обнаруженные проблемы.
Для настройки правила конкретного сайта передайте site_id, kind, name,
params и при необходимости action в POST /quality/rules.
{"site_id":1,"kind":"row_count_drop","name":"Падение количества товаров","params":{"drop_percent":30,"min_previous":100},"action":"warn","is_active":true}
Значения kind/action перед отправкой сверяйте со справочником вашей установки.
Общие правила без site_id действуют на всю платформу; внешний API не позволяет
их менять. Изменение своего правила: PATCH /quality/rules/{id}, удаление: DELETE.
Правило нельзя переносить на другой сайт. Находка качества не означает,
что данные автоматически исправлены: проверьте источник и алгоритм сбора.