Налаштування Tooljet для роботи з джерелами даних
Tooljet підтримує широкий спектр джерел даних: реляційні БД, NoSQL, REST API, GraphQL, хмарні сервіси, SaaS-інструменти.
Підтримувані джерела даних
Бази даних: PostgreSQL, MySQL, MSSQL, MongoDB, Redis, InfluxDB, CouchDB, Elasticsearch
Хмара: AWS S3, Google Sheets, BigQuery, Firestore, DynamoDB
SaaS: Stripe, Twilio, Slack, GitHub, Notion, Airtable, Mailgun
PostgreSQL Datasource
Name: Production DB
Host: db.example.com
Port: 5432
Database: app_db
Username: tooljet_ro
Password: ****
Тестове з'єднання — кнопка "Test Connection" перед збереженням.
REST API Datasource
Name: Internal API
Base URL: https://api.internal.example.com
Authentication: Bearer Token
Token: {{ constants.API_TOKEN }}
Headers:
X-Client: tooljet
Accept: application/json
Використання Constants — чутливі значення (токени, ключі) зберігаються в Tooljet Constants (як env-змінні), не в конфігурації запитів.
Параметризований запит
// REST GET запит
{
"path": "/users/{{components.userIdInput.value}}",
"headers": {
"X-Trace-Id": "{{utils.uuid()}}"
}
}
// REST POST запит
{
"path": "/orders/{{components.ordersTable.selectedRow.id}}/refund",
"body": {
"amount": "{{components.refundInput.value}}",
"reason": "{{components.refundReason.value}}",
"operator": "{{currentUser.email}}"
}
}
Transformations
// Трансформація відповіді API
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)} UAH`,
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);
Терміни
Налаштування 3–5 джерел даних + перші запити — 1 день.







