Настройка 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('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);
Сроки
Настройка 3–5 источников данных + первые запросы — 1 день.







