ToolJet 数据源(Data Sources)完全指南:类型体系、连接管理与工作区共享机制
2026/9/13 17:34:39 网站建设 项目流程

ToolJet 数据源(Data Sources)完全指南:类型体系、连接管理与工作区共享机制

【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 🚀项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet

数据源(Data Sources)是 ToolJet 连接外部世界的桥梁,它决定了你的应用能否从数据库、外部 API 和服务中读写数据。本篇指南以 ToolJet 3.0.0-LTS 版本文档为核心,结合开源仓库中的前端实现与插件源码,系统讲解数据源的概念、分类、数据源管理器、工作区级共享机制、权限控制以及旧版本作用域迁移,帮助你从原理到实操全面掌握 ToolJet 的数据源体系。

在 App Builder 左侧边栏点击 Data Sources 按钮打开的数据源管理器

什么是数据源

在 ToolJet 中,数据源(Data Sources)是应用读写数据的基础设施。它使应用能够从不同的来源获取数据、向不同的来源发送数据,这些来源包括:

  • 数据库:如 PostgreSQL、MySQL、MongoDB、Snowflake 等;
  • 外部 API:如 REST API、GraphQL、gRPC、OpenAPI 等;
  • 服务:如 Slack、Stripe、Twilio、SendGrid、SMTP 等第三方服务。

数据源的核心价值在于一次配置、处处复用:一旦某个数据源在某个工作区(Workspace)中配置完成,它就可以被该工作区内的所有应用共享使用,而不需要在每个应用里重复录入连接凭据。这一设计让团队能够集中维护数据库凭据和 API Key,既减少了重复劳动,也降低了凭据泄露的风险。

从实现角度看,ToolJet 将数据源分为两个层级:工作区级(全局)数据源应用内数据源。工作区级数据源由 Dashboard 上的 Data Sources 页面统一管理,全局共享;而 2.3.0 之前版本创建的应用,其数据源则是从 App Builder 内部建立连接(详见后文"作用域迁移"章节)。

数据源的分类体系

ToolJet 除自带的数据库(ToolJet Database)之外,还支持范围广泛的外部数据源。从源码 DataSourceComponents/index.js 可以清晰看到,前端将数据源按type字段划分为以下类别:

分类说明源码中的构建方式
数据库(Database)各类关系型与非关系型数据库DataBaseSources(type 为database
APIREST、GraphQL、OpenAPI、gRPC 等接口类数据源ApiSources(type 为api
云存储(Cloud Storage)S3、GCS、MinIO、Azure Blob 等CloudStorageSources(type 为cloud-storage
AI 数据源(AI Sources)OpenAI 等 AI 能力接入AiSources(type 为ai
其他(Other)Run JavaScript、Run Python、ToolJet Database、Workflows 等内建源OtherSources(内建 schema)
常用数据源(Commonly Used)REST API、MongoDB、Google Sheets、PostgreSQL、Snowflake、GraphQL、OpenAPI、gRPC、Databricks、AWS S3 等快捷入口getCommonlyUsedDataSources()

其中"常用数据源"列表由源码中的commonlyUsedSourceNames数组定义(见 DataSourceComponents/index.js),按固定顺序展示 REST API、PostgreSQL、Google Sheets 2.0、MongoDB、Snowflake、GraphQL、OpenAPI、gRPC 2.0、Databricks、AWS S3 等高频使用项,方便用户快速添加。

分类枚举本身定义在插件清单的 JSON Schema 中(manifest.schema.json),type字段允许的取值为apicloud-storagedatabase,每种类型由插件的 manifest 文件声明,前端据此自动归类渲染。

数据源管理器(Data Source Manager)

要管理这些数据源,ToolJet 提供了数据源管理器。在 App Builder 中,点击左侧边栏的 Data Sources 按钮即可打开管理器界面,从中可以:

  • 查看当前工作区已连接的数据源列表;
  • 浏览可添加的数据源分类与插件;
  • 新增、编辑、删除数据源及其连接凭据;
  • 测试连接是否可用。

数据源管理器的前端实现位于 DataSourceManager.jsx。从源码可以看到,管理器组件通过datasourceServicepluginsServiceglobalDatasourceService等服务获取数据源与插件信息,并依赖allManifests(由@tooljet/plugins/client提供的所有插件清单)来渲染不同数据源的配置表单——带有tj:version的新版清单使用DynamicFormV2渲染,旧格式清单则回退到DynamicForm(见 DataSourceComponents/index.js)。

值得注意的是,管理器还内置了**连接测试(TestConnection)**能力,并针对 Git 同步产生的"dummy 数据源"(is_dummy为 true 且 options 为空)做了特殊处理:会从对应插件 manifest 中计算默认配置项,保证表单可用(见 DataSourceManager.jsx)。

工作区级共享与多环境支持

数据源管理器的一个关键特性是作用域。工作区级数据源(全局数据源)配置完成后,会在 Dashboard 的Data Sources 页面统一展示与维护,页面实现见 GlobalDataSourcesPage/index.jsx。该页面通过globalDatasourceService拉取数据源列表,并支持:

  • 按常用/分类浏览数据源;
  • 选中某个数据源后在右侧打开配置表单(复用DataSourceManager的弹窗模式);
  • 多环境(development / production 等)之间为同一数据源维护不同的连接配置。

对商业版(付费计划)用户而言,配置条目并保存后,数据源才能跨多个环境使用。多环境的实现与优先级配置可参考 多环境相关文档。全局数据源页面还通过useWorkspaceBranchesStore感知 Git 分支切换,分支变化时会自动重新拉取对应分支的数据源列表。

共享机制总结:数据源 → 添加到工作区 → 工作区内所有应用(含已存在的与新创建的应用)在查询面板的Available data sources区域即可直接使用,无需重复配置。

添加数据源:三步完成连接

添加一个新数据源非常简单,从源码与官方文档可归纳为以下流程:

  1. 打开数据源入口:点击 App Builder 左侧边栏的Data Sources按钮打开管理器;或者直接从 Dashboard 左侧边栏进入Data Sources页面。
  2. 选择数据源并点击 Add:在管理器左侧的分类列表(数据库、API、云存储、插件等)中找到目标数据源,鼠标悬停时会出现Add按钮,点击后该数据源即被集成到当前工作区。
  3. 填写连接凭据并保存:在表单中输入主机、端口、用户名、密码、API Key 等配置项。不同数据源的表单字段由对应插件的 manifest 动态生成。保存后,即可回到 App Builder 的查询面板中,在Available data sources下选择该数据源创建查询。

添加数据源后填写配置信息的操作演示

对于同一数据源建立了多个连接的情况,创建查询时还可以在查询面板中切换不同的连接

默认数据源

每个 ToolJet 应用默认自带 4 个开箱即用的数据源,无需任何配置即可使用:

默认数据源用途对应文档
ToolJet DatabaseToolJet 内置数据库,可视化建表与 CRUDToolJet Database
REST API调用任意 HTTP 接口REST API 文档
Run JavaScript Query在应用中执行 JS 代码自定义 JS
Run Python Query在应用中执行 Python 代码运行 Python

这 4 个默认数据源在源码中属于OtherSources(见 DataSourceComponents/index.js),其中 Run JS、Run Python 分别由Runjs.schema.jsonRunpy.schema.json定义,ToolJet Database 则由 AppBuilder 查询编辑器目录下的manifest.json定义。

数据源的用户权限控制

数据源的Permissions(权限)配置是工作区内AdminsSuper Admins的专属能力。管理员可通过Workspace Settings → Groups Settings为不同用户组分配两类权限(详见 数据源概览文档 与 用户管理-访问控制):

(1)工作区内数据源的创建与删除权限

权限说明
Just Create(仅创建)可添加新数据源并修改已有数据源;悬停已连接的数据源时不显示删除按钮
Just Delete(仅删除)可从工作区移除已连接的数据源;悬停时显示删除按钮
Both Create and Delete(创建与删除)既可添加新数据源,也可移除已连接的数据源
Neither Create nor Delete(均不可)无法从 Dashboard 访问 Data Sources 页面;直接通过 URL 访问时会弹出错误提示(error toast)

(2)授权数据源的查看与编辑权限

权限说明
View(查看)用户组可连接被授权的数据源,但无法更新其连接凭据
Edit(编辑)用户可更新被授权数据源的连接凭据

这套权限模型对应后端的数据源组权限表(可参考迁移文件 CreateDataSourcesGroupPermissionsTable 与 AddGroupDataSourceTable),实现按用户组粒度的数据源访问隔离。

旧版本应用的数据源作用域迁移

对于在ToolJet 2.3.0 以下版本创建的应用,数据源连接是在单个应用内部完成的。为保证向后兼容,ToolJet 提供了将应用内数据源变更作用域(change scope)为全局数据源的能力:

  1. 打开旧版本创建的应用,在 App Builder 左侧边栏可以看到数据源管理器(Data Source Manager)。
  2. 在已连接的数据源旁找到 kebab 菜单(更多操作),选择change scope选项。
  3. 作用域变更完成后,左侧边栏的数据源管理器会被移除,该数据源会出现在查询面板的Available data sources(可用数据源)区域中;此后即可在 Dashboard 的Data Sources 页面统一配置该数据源。

迁移完成后,该数据源就从"应用私有"升级为"工作区共享",后续所有应用的查询面板都能直接引用它。

插件体系:数据源背后的架构支撑

ToolJet 的数据源生态基于插件(Plugin)架构构建,理解它有助于你判断某个数据源能否满足团队需求,甚至自己扩展新的数据源。核心事实如下:

  • 插件清单(Manifest):每个插件通过 manifest 文件声明数据源的名称(name)、类型(type)、默认配置(defaults)等信息,其格式由 manifest.schema.json 约束;
  • 插件目录:数据库、API 等数据源插件位于 plugins/packages/,目前包含 PostgreSQL、MySQL、MongoDB、Snowflake、REST API、GraphQL、Stripe、Slack、S3 等数十个插件包;
  • 前端自动渲染:前端根据插件的 manifest 动态生成配置表单(新版tj:version清单走DynamicFormV2),因此新增插件无需修改前端代码;
  • 连接能力由插件实现:以 PostgreSQL 插件为例(lib/index.ts),其基于 knex 构建查询,并额外实现了SSH 隧道(支持密码与私钥两种认证方式,ssh_auth_typeprivate_key时校验私钥必填)、连接缓存(cacheConnectionWithConfiguration)与连接测试(ConnectionTestResult)等能力,从源码结构看还可推断其通过连接哈希复用已建立的连接以提升查询性能。

这种"manifest 驱动 + 插件实现 + 前端动态渲染"的架构,使得数据源的添加、配置与使用高度统一,也让整个数据源体系具备良好的可扩展性。

数据源目录:查询完整的兼容列表

本文仅介绍了数据源的概念、分类与管理方式。要查看全部兼容数据源及其详细配置步骤,请查阅官方数据源目录(Datasource Catalog):docs/docs/data-sources/overview.md,其中按类别列出了 PostgreSQL、MySQL、MongoDB、Snowflake、REST API、GraphQL、Stripe、Slack、S3、Twilio 等全部数据源条目,并提供了每个数据源的主机、端口、凭据等参数的完整配置说明。

小结

通过本文,你应该已经掌握:

  • 数据源的定义与作用:连接数据库、外部 API 与服务的统一入口,工作区内所有应用共享;
  • 分类体系:数据库 / API / 云存储 / AI / 内建源 / 常用源六大类别,由插件 manifest 驱动前端自动归类;
  • 管理入口:App Builder 左侧边栏的数据源管理器与 Dashboard 的全局 Data Sources 页面;
  • 添加流程:三步完成连接配置,并在查询面板中直接选用;
  • 默认数据源:ToolJet Database、REST API、Run JS、Run Python 开箱即用;
  • 权限模型:Admin/Super Admin 可通过组权限精细控制创建、删除、查看与编辑;
  • 作用域迁移:旧版本应用内数据源可一键升级为全局数据源。

在此基础上,结合插件源码与前端实现继续深入,你还能进一步理解 ToolJet 数据源体系的可扩展设计,为团队内部工具的数据库与 API 集成提供坚实支撑。

【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 🚀项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询