ToolJet 内部工具构建器教程

June 24, 2026 · View on GitHub

简介

ToolJet 是一款开源低代码平台,用于构建内部工具和仪表板。它连接各种数据源,提供拖拽式界面,无需大量编码即可创建应用。

特性描述
可视化构建器拖拽式界面构建 UI
数据源连接数据库、API 和服务
组件预构建的 UI 组件加速开发
工作流自动化和业务逻辑功能
自托管在您自己的基础设施上部署

架构

系统组件

组件用途
Frontend基于 React 的可视化应用构建器
Backend基于 Node.js 的 API 服务器处理业务逻辑
DatabasePostgreSQL 存储应用配置
Redis缓存和实时功能
Plugins数据源连接器和集成

数据源

类别示例
数据库PostgreSQL、MySQL、MongoDB、Redis、MSSQL
APIREST API、GraphQL、gRPC
云服务AWS S3、Google Sheets、Airtable
SaaSStripe、Slack、Twilio
文件CSV、JSON 文件上传

安装

Docker 部署

docker run -d \
  --name=tooljet \
  -p 3000:3000 \
  -e TOOLJET_DB=postgresql://tooljet:password@db:5432/tooljet_production \
  -e LOCKBOX_MASTER_KEY=your_lockbox_key \
  -e SECRET_KEY_BASE=your_secret_key_base \
  --restart unless-stopped \
  tooljet/tooljet:latest

Docker Compose

version: "3.8"
services:
  tooljet:
    image: tooljet/tooljet:latest
    container_name: tooljet
    ports:
      - "3000:3000"
    environment:
      - TOOLJET_DB=postgresql://tooljet:password@db:5432/tooljet_production
      - LOCKBOX_MASTER_KEY=your_lockbox_key
      - SECRET_KEY_BASE=your_secret_key_base
      - PG_HOST=db
    depends_on:
      - db
    restart: unless-stopped

  db:
    image: postgres:15
    container_name: tooljet-db
    environment:
      - POSTGRES_USER=tooljet
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=tooljet_production
    volumes:
      - postgres_data:/var/lib/postgresql/data
    restart: unless-stopped

volumes:
  postgres_data:

应用构建器

构建器界面

区域描述
Canvas放置 UI 组件的可视区域
组件面板可拖拽到 Canvas 上的可用 UI 组件
属性面板配置选中组件的属性
查询面板创建和管理数据查询
状态面板查看应用状态和变量

UI 组件

组件使用场景
Button触发操作和查询
Text Input收集用户文本输入
Dropdown从预定义选项中选择
Table显示表格数据
Chart使用图表可视化数据
Form收集结构化数据
Modal用于编辑的弹出对话框
Tabs将内容组织到标签页中
Image显示图片
Rich Text格式化文本编辑器
File Picker上传文件
Date Picker选择日期

组件属性

属性描述
Text显示文本内容
StyleCSS 样式(颜色、大小、位置)
Events用户交互时触发的操作
Visibility基于条件显示/隐藏
Loading显示加载状态
Validation输入验证规则

数据源配置

连接 PostgreSQL

字段描述示例
Host数据库服务器地址localhost
Port数据库端口5432
Database数据库名称myapp_db
Username数据库用户app_user
Password数据库密码secure_password
SSL启用 SSL 连接true

连接 REST API

字段描述示例
Base URLAPI 基础 URLhttps://api.example.com
Headers默认请求头Authorization: Bearer token
Auth认证类型API Key、OAuth2、Basic

连接 Google Sheets

步骤操作
1创建 Google Cloud 项目
2启用 Google Sheets API
3创建服务账户凭证
4与服务账户邮箱共享电子表格
5在 ToolJet 中配置凭证

查询

查询类型

类型描述
SQL为数据库编写 SQL 查询
REST发起 HTTP API 请求
GraphQL执行 GraphQL 查询
Transformation使用 JavaScript 转换数据
Run JS执行自定义 JavaScript 代码

查询编辑器

功能描述
代码编辑器语法高亮的查询编辑器
预览预览查询结果
参数向查询传递动态参数
转换在显示前转换结果
事件查询完成时触发操作

查询参数

// 在查询中使用组件值
SELECT * FROM users WHERE name LIKE '%{{textInput1.value}}%'

// 使用 URL 参数
SELECT * FROM orders WHERE id = {{params.orderId}}

数据转换

// 转换查询结果
return data.map(row => ({
  ...row,
  fullName: `${row.firstName} ${row.lastName}`,
  isActive: row.status === 'active'
}));

工作流

工作流概念

概念描述
Trigger启动工作流的事件
Node工作流中的单个步骤
Connection节点之间的流程
Variables节点之间传递的数据

工作流触发器

触发器描述
Webhook外部 HTTP 请求
Schedule基于时间的触发器
App eventUI 组件事件
Manual用户发起的触发器

工作流节点

节点类型描述
Query执行数据源查询
Condition基于条件分支
Loop遍历数据
Transformation使用 JavaScript 转换数据
Notification发送通知
HTTP发起 HTTP 请求

用户管理

用户角色

角色权限
Admin完全访问所有应用和设置
Developer创建和编辑应用
Viewer查看和使用已发布的应用
Custom定义细粒度权限

权限

权限描述
App create创建新应用
App edit修改现有应用
App view查看已发布的应用
Data source create添加新数据源
Folder manage将应用组织到文件夹中

部署

应用发布

状态描述
Draft开发版本,不公开访问
Published用户可访问的上线版本
Archived已禁用的应用

环境变量

变量描述
TOOLJET_DBPostgreSQL 连接字符串
LOCKBOX_MASTER_KEY密钥加密密钥
SECRET_KEY_BASE应用密钥
NODE_ENV环境(production/development)

导入和导出

应用导出

格式描述
JSON包含查询和组件的完整应用定义
Template可复用的应用模板

应用导入

来源描述
JSON 文件从导出的 JSON 导入
Template从模板库导入
Clone克隆现有应用

API 访问

REST API 端点

端点方法描述
/api/appsGET列出应用
/api/apps/{id}GET获取应用详情
/api/apps/{id}/exportGET导出应用
/api/data_sourcesGET列出数据源
/api/usersGET列出用户

总结

主题核心要点
用途低代码平台,构建内部工具
构建器带预构建组件的拖拽式 UI
数据连接数据库、API 和 SaaS 服务
查询SQL、REST、GraphQL 和 JavaScript 转换
工作流带触发器、条件和循环的自动化
部署自托管,带基于角色的访问控制