Интеграция Tooljet с базами данных и API: полное руководство
При создании внутреннего инструмента на Tooljet типичная картина: база данных не откликается из-за фаервола, REST API возвращает сырые данные с вложенными объектами, а токены безопасности лежат в открытую в конфигах. Каждая из этих проблем способна затормозить разработку на дни. Мы прошли через десятки таких проектов и выработали подход, который гарантирует стабильное подключение и безопасность.
В этом руководстве разберём, как настроить Tooljet для работы с базами данных (PostgreSQL, MySQL, MongoDB), REST API и SaaS-сервисами, избежав типовых ошибок. Tooljet сокращает время разработки внутренних инструментов в 5 раз по сравнению с самописным UI на React, но только если источники данных настроены правильно. Неправильное подключение ведёт к дублированию запросов, утечке данных и потере времени.
Какие проблемы решаем?
- N+1 запросы — когда каждый виджет делает отдельный запрос к БД. Мы оптимизируем через объединение запросов и кэширование.
- Безопасность токенов — чувствительные данные (API-ключи, пароли) часто попадают в конфигурацию запросов. Мы внедряем Constants и переменные окружения.
- Сложные трансформации — ответы API содержат лишние поля, валюты в копейках, даты в неправильном формате. Используем Transformations на JavaScript.
- Ошибки соединения — неверный host, порт, SSL-сертификаты. Мы тестируем каждое подключение через
Test Connectionи фиксируем проблемы.
Как мы это делаем?
Мы начинаем с аудита источников: составляем список всех БД, API и SaaS-сервисов, которые нужно интегрировать. Затем настраиваем соединения, создаём первые запросы и трансформации. Один из последних проектов — подключение PostgreSQL с 15 таблицами и REST API биллинговой системы. Ниже — примеры конфигураций.
Пример настройки PostgreSQL
Name: Production DB Host: db.example.com Port: 5432 Database: app_db Username: tooljet_ro Password: **** Кнопка Test Connection помогает выявить ошибки до сохранения. После успешного теста мы добавляем запросы: SELECT * FROM orders WHERE status = 'pending' и передаём параметры из UI-компонентов.
Пример REST API (GET и POST запросы)
{ "path": "/users/{{components.userIdInput.value}}", "method": "GET", "headers": { "X-Trace-Id": "{{utils.uuid()}}" } } { "path": "/orders/{{components.ordersTable.selectedRow.id}}/refund", "method": "POST", "body": { "amount": "{{components.refundInput.value}}", "reason": "{{components.refundReason.value}}", "operator": "{{currentUser.email}}" } } Constants — чувствительные значения (токены, ключи) хранятся в Tooljet Constants, не в конфигурации запросов.
Transformations
const raw = data.orders; return { items: raw.map(o => ({ id: o.id, date: new Date(o.created_at).toLocaleDateString('ru-RU'), amount: `${(o.total / 100).toFixed(2)} ₽`, status: o.status })), total: raw.length, sum: raw.reduce((s, o) => s + o.total, 0) / 100 }; Event Handling
// Run on query success await queries.getUsersList.run(); components.statusMessage.setText('Успешно обновлено'); setTimeout(() => components.statusMessage.setText(''), 3000); Почему стоит доверить настройку профессионалам?
Мы гарантируем стабильность подключений, безопасность данных и поддержку после внедрения. Наши инженеры имеют сертификаты по Tooljet и опыт работы с облачными инфраструктурами (AWS, Vercel, Docker). Вы получаете:
- Документацию по каждому источнику.
- Обучение вашей команды работе с Tooljet.
- Техническую поддержку 2 недели после запуска.
Процесс работы
- Аналитика — изучаем ваши источники данных, сетевые ограничения и требования безопасности.
- Проектирование — определяем структуру запросов, трансформации и конфигурацию Constants.
- Реализация — настраиваем соединения, пишем запросы и трансформации, тестируем каждое подключение.
- Тестирование — проверяем все сценарии: пустые ответы, ошибки, высокие нагрузки.
- Деплой — разворачиваем решение в вашей среде, передаём документацию и проводим обучение.
Что входит в работу?
| Компонент | Описание |
|---|---|
| Настройка источников | подключение до 5 БД и 3 API |
| Создание запросов | 10–15 запросов с параметрами и трансформациями |
| Настройка Constants | хранение токенов, ключей, переменных окружения |
| Документация | схема подключений, примеры запросов, инструкция по добавлению новых |
| Обучение | 2-часовая сессия для разработчиков |
| Поддержка | 14 дней после сдачи — консультации и исправление ошибок |
Сроки и стоимость
- Базовая настройка (3–5 источников) — 1–2 дня.
- Расширенная интеграция (до 10 источников + кастомные трансформации) — 3–5 дней.
- Комплексное решение (с обучением и поддержкой) — до 7 дней.
Экономия до 40% времени ваших разработчиков — Tooljet берёт на себя рутину.
Типичные ошибки при подключении
При подключении источников часто возникают типовые ошибки. Connection refused обычно вызван неверным host или портом, а также блокировкой фаервола. SSL handshake failed появляется при проблемах с сертификатом — временно можно отключить SSL, но для продакшена лучше добавить корректный сертификат. Timeout возникает при слишком длинных запросах или медленной базе; решение — увеличить таймаут или оптимизировать индексы. 401 Unauthorized — истёк или неверный токен; обновите его в Constants. Некорректные данные в ответе — ошибка в трансформации; отладьте JavaScript в консоли Tooljet.
Расширенная настройка: Tooljet в Docker с SSL
Если ваш Tooljet работает в контейнере, добавьте переменные окружения для SSL-сертификатов и настройте сетевые мосты для доступа к внутренним базам. Пример docker-compose можно найти в официальной документации Tooljet.
Сравнение с самописными решениями
| Критерий | Tooljet (наша настройка) | Самописный UI на React/Node.js |
|---|---|---|
| Время разработки | 1–2 дня | 2–4 недели |
| Поддержка источников | 50+ готовых | ручная интеграция каждого |
| Безопасность | встроенные Constants | требуется своя реализация |
| Обновления | автоматические | ручные патчи |
Закажите настройку Tooljet сегодня и получите экономию до 40% времени вашей команды. Оставьте заявку на консультацию — мы свяжемся с вами в течение часа.







