Коннектор "Денвик"
Реализовано
Задача
Обеспечить создание БД и подключение к FastBoard через преднастроенный сценарий интеграции с Денвик.
Сценарий работы в Экстракторе:
- В интерфейсе пользователь выбирает FastBoard как приёмник данных.
- После выбора FastBoard пользователь вставляет ссылку на бэкенд FastBoard, запускающую процесс подключения. Формат ссылки – адрес вида fb-back.domain.ru
- Кроме ссылки пользователь должен указать свои логин и пароль, а также название коннектора в FastBoard.
- Экстрактор дописывает к адресу путь к API и выполняет POST-запрос на указанный URL с указанием названия коннектора в системе FastBoard. Данный коннектор будет связывать создаваемую БД с системой, по введенному названию его можно будет найти внутри FastBoard.
- В ответ приходит JSON, содержащий параметры подключения:
- Выполняется расшифровка ответа.
- Поля подключения к ClickHouse заполняются автоматически.
- В результате формируются:
- БД внутри ClickHouse FastBoard,
- коннектор FastBoard к созданной БД
- Пользователь может обновлять данные БД в Экстракторе, работать с данными через коннектор в FastBoard
Требования:
- (DevOps) В отдельном контейнере поднять инстанс КХ
- (DevOps) К этому контейнеру создать права (логин и пароль) на создание БД, дать параметры удаленного доступа (хост и порт посложнее)
- (Backend) Ручка на бэкенде должна быть настроена на инстанс в контейнере
Решение
Денвик использует Экстратор 1С для создания подключений к БД. Они могут сами создавать таблицы и выгружать туда данные из 1С. Со стороны FastBoard требуется:
- Создать БД и пользователя в КХ по запросу
- Передать данные для подключения в Экстрактор
- Создать коннектор к новой БД в FastBoard
Запрос
В Экстракторе пользователь вводит ссылку на стенд FastBoard, на котором будет создана БД и коннектор к ней. В итоге Экстрактор формирует запрос на создание БД, в котором указан API для создания подключения, например
https://fastbord-back-front.fb-dev.winsolutions.ru//api/v1/db/create
При этом пользователь передаёт свои логин и пароль на FB, для выдачи доступа. Дальнейшее подключение к БД будет от имени 1С (создаваемый пользователь для базы), а не конкретного пользователя FB.
Вызывается метод со стороны FastBoard: запускаются создание БД, устанавливается полный доступ пользователя к новой БД.
Последовательность вызовов
1. Вызов /api/v1/db/create (или другое название ручки для создания БД)
Метод: POST
Создает ClickHouse-базу данных с уникальным именем и пользователем. Возвращает все необходимые параметры для подключения (см. пример ответа в Экстрактор 1С).
Для каждой новой БД необходимо создавать уникального пользователя и выдавать ему пароль. Эти данные передаются в Экстрактор вместе с данными для подключения.
К названию БД необходимо добавлять префикс (например, dnvc_)
2. Вызов /api/v2/source
Метод: POST
Пример запроса:
{
"name": "string",
"driver": "clickHouse",
"database": "string",
"host": "string",
"port": xxxx,
"user": "string",
"password": "string"
}
Все параметры для этого запроса (кроме name) берутся из создания БД и данных пользователя
Ответ
Успешный ответ (созданная БД) шифруется и передаётся в Экстрактор. Передаются следующие данные:
- Сервер
- Порт
- Пользователь
- Пароль
- Название БД
Пример ответа в Экстрактор 1С:
{
"db_name": "string",
"host": "IP",
"port": "xxxx",
"user": "string",
"password": "string"
}
