Інтеграція 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('uk-UA'),
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% часу вашої команди. Залиште заявку на консультацію — ми зв'яжемося з вами протягом години.







