资讯动态

ToolJet 数据源(Data Sources)指南:工作区级连接、默认数据源、权限控制与旧版作用域迁移

发布时间:2026/9/9 13:51:04 来源:尧图企业网站定制
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 中把外部数据数据库、REST API、云存储、第三方服务等接入工作区的统一连接层连接一旦在工作区建立即可被该工作区下所有应用共享复用。本文以官方 Data Sources: Overview 文档为主线完整梳理数据源的概念模型、连接步骤、默认数据源、用户组权限以及 ToolJet 2.3.0 之前旧版本应用数据源的作用域迁移流程并结合本仓库server与frontend源码对底层模型进行印证帮助读者既会操作、也懂原理。数据源是什么从“应用内连接”到“工作区级共享”ToolJet 中的数据源负责从数据库、外部 API 或各类服务中拉取数据、向其推送数据。其核心设计在于连接粒度是工作区Workspace级别一次连接建立后该工作区中的任意应用App都能复用而无需在每个应用里重复配置。这一点可以从服务端实体与模块文档中得到印证。server侧的数据源模块见>类别关键标识说明来自源码模块文档全局数据源 Global Data Sourcescope global工作区级连接跨应用共享受细粒度权限管控是常规形态应用级数据源 App-Level Data Sourcescope local旧版遗留的应用内连接UI 称为 app-level可通过作用域变更迁移为 global模块本身不再新建 local 数据源示例数据源 Sample Data Sourcetype sample自动创建、指向共享sample_db的 Postgres 数据源不可删除列表接口会隐藏其配置静态/默认数据源 Static/Defaulttype statickind 限定在restapi、runjs、runpy、tooljetdb、workflows每个工作区存在一行{kind}default无用户可编辑配置这些枚举在 constants/index.ts 中被集中定义DataSourceTypes { STATIC, DEFAULT, SAMPLE }、DataSourceScopes { LOCAL, GLOBAL }。而 data_source.entity.ts 中的data_sources表实体则记录了每个连接的物理字段name、kind连接器标识即插件名、typestatic/default/sample、scope枚举local/global默认local、organization_id、plugin_id、app_version_id等。也就是说一次数据源连接本质上是挂在某个组织工作区下的资源记录再通过关联表与用户组、应用、环境产生关系。注意Data Sources 页面仅在 ToolJet 2.3.0 及以上版本可用。在 2.3.0 之前的版本中数据源连接是直接在应用内部建立的本文最后一部分会专门说明这类应用的迁移路径。连接数据源把新连接加入工作区在 ToolJet 中连接一个数据源有两种入口但殊途同归——最终都落在工作区级的数据源管理上。官方文档给出的流程如下入口一从查询面板进入。从 Dashboard 新建一个应用后在底部查询面板中点击 Add new按钮随后同样会进入数据源选择界面。入口二从 Dashboard 侧边栏直接进入 Data Sources 页面。这是更直接的方式无需先建应用。进入 Data Sources 页面后页面左侧按类别展示可用的数据源包括Databases数据库、APIs接口、Cloud Storages云存储以及各类plugins插件/市场插件。点击某个类别即可查看该类下的数据源列表。鼠标悬停到想要接入的数据源上时会出现Add按钮点击后将所选数据源接入工作区。数据源加入后需要填写连接配置信息如主机地址、端口、凭据、认证方式等。针对付费套餐paid plans必须完成配置填写与保存该连接才能跨 多环境 可用——即配置是按环境保存的。配置完成后回到 Dashboard 新建应用新添加的数据源会出现在查询面板的Available data sources区域中。无论是已有应用还是新应用都可以使用该连接。最后即可基于该数据源创建查询Query。当同一个数据源下建立了多个连接时在查询中可以切换使用同一数据源的不同连接。源码视角连接、环境与加密配置从实现上看上述第 3 步“填写并保存配置”并不只是存一个 JSON。根据 />在源码层面这四类默认数据源属于前文提到的Static/Default 数据源它们的 kind 由常量DefaultDataSourceKinds定义。需要留意的是当前仓库 constants/index.ts 中该常量实际包含五种 kindexport const DefaultDataSourceKinds: DefaultDataSourceKind[] [restapi, runjs, runpy, tooljetdb, workflows];即除官方文档中列出的 RestAPI、Run JavaScriptrunjs、Run Pythonrunpy、ToolJet Databasetooljetdb之外源码层面还把workflows一并纳入静态默认数据源机制。这些默认数据源在每个工作区存在一行固定的{kind}default记录属于系统内置、无用户可编辑配置的静态资源可对照 AGENTS.md 中的描述。如果你在界面上还看到“Sample data sources示例数据源”那是另一套机制由SampleDataSourceService自动创建并指向共享sample_db的 Postgres 示例源参考 sample-ds.service.ts 与 sample-data-sources.md每个环境都会被写入且不可被删除。数据源的用户组权限谁能建、谁能删、谁能看、谁能改数据源是工作区共享资源因此 ToolJet 对其权限做了区分管理。修改数据源权限是 Admin 与 Super Admin 的专属权利。配置入口位于Workspace Settings → Groups Settings工作区设置 → 组设置。官方文档给出了两组权限维度下面完整列出。维度一数据源的创建与删除权限说明Just Create仅创建允许添加新数据源并修改已有数据源悬停在已连接数据源上时不显示删除按钮Just Delete仅删除允许从工作区移除已连接的数据源悬停时会显示删除按钮Both Create and Delete创建与删除既可添加新数据源也可移除已连接数据源Neither Create nor Delete两者皆不可无权限访问 Dashboard 中的数据源页面即使通过 URL 直接访问数据源页面也会弹出错误提示error toast维度二对已授权数据源的查看与编辑权限说明View查看用户组只能“连接/使用”被授权的数据源无法更新这些数据源的凭据Edit编辑用户组成员可以更新被授权数据源的凭据源码视角权限如何生效从服务端实现看这套权限并不只是 UI 上的按钮显隐。server/src/modules/data-sources/repository.ts中的allGlobalDS()是经过权限过滤的全局数据源列表查询按scope global过滤并 JOIN 数据源组权限等关联表ability/FeatureAbilityFactory则依据细粒度的GLOBAL_DATA_SOURCE权限如isAllConfigurable、usableDataSourcesId生成 CASL 规则决定当前用户在接口层面能列出、能配置哪些数据源。数据源与用户组的绑定关系同样落库在实体中例如 data_source_group_permission.entity.ts 与 data_sources_group_permissions.entity.ts。需要说明的是根据模块文档这类细粒度数据源权限属于 license 门控能力granular permissions 需要相应授权实际可用范围请以你所部署版本/套餐为准。结论“可创建/删除数据源”与“可查看/编辑某个数据源的配置”是两套正交的权限。前者决定用户能否在工作区层面增删连接后者决定用户能否使用某个已被授权给本组的连接以及能否更新其凭据。两者都由管理员在组设置中为各用户组配置。旧版本应用的数据源作用域迁移ToolJet 2.3.0 之前在 ToolJet 2.3.0 之前的版本里数据源连接是在单个应用内部建立的即前文源码中scope local的 App-Level 数据源。为了向后兼容ToolJet 提供了把这类“应用内数据源”转换为“全局数据源”的迁移能力。官方文档给出的操作如下打开使用 2.3.0 之前版本创建的应用在App Builder 的左侧边栏可以看到数据源管理器data source manager。在已连接数据源旁边找到更多操作菜单kebab menu从中选择change scope更改作用域。作用域切换为 global全局后左侧边栏的数据源管理器会被移除该数据源出现在**查询面板的 Available data sources可用数据源**区域。此后你可以直接在Dashboard 的 Data Sources 页面对该连接进行配置。对应地迁移后该数据源就升级为工作区级全局数据源可被工作区中的其他应用复用。源码视角作用域迁移是单向的作用域变更在服务端对应POST :id/scope路由与changeScope服务方法controller.ts 注册了Post(:id/scope)端点并调用dataSourcesService.changeScope(dataSourceId, user)service.ts 实现changeScope其能力SCOPE_CHANGE被登记在 constants/index.ts 的FEATURE_KEY中且根据 ability/index.ts 的注释只有 Builder 角色可以执行作用域变更。同时需要注意两个限制参考模块文档一是作用域迁移是单向的local → global一旦转换为全局数据源便无法再转回应用级二是存在依赖查询的数据源无法删除删除前会通过findQueriesLinkedToDatasource校验是否还有查询引用示例数据源则始终不可删除。如果旧应用中同时存在多处需要整理的本地数据源可以参阅仓库中的迁移专题文档 local-data-sources-migration.md了解本地/应用级数据源的完整迁移背景。小结与进一步阅读围绕 ToolJet 的数据源机制可以提炼出三条关键设计连接是工作区级资源以scope、type、kind三个维度建模global/local、default/sample/static、连接器插件类型一次配置、全工作区应用共享配置与权限分层管理连接配置按环境加密存储数据源在使用上受“创建/删除 查看/编辑”两套用户组权限约束旧版应用可平滑迁移2.3.0 之前应用内的 local 数据源可通过 change scope 一次性升级为 global由 Dashboard 统一管理。若要进一步深入各数据源的使用细节可继续阅读本仓库中的下列文档ToolJet Database 使用文档RestAPI 连接器配置 与 REST API 查询指南Run JavaScript Query 与 Run Python Query示例数据源说明应用内数据源迁移专题角色权限与数据源访问控制多环境multi-environment配置说明如果你希望从代码层面进一步了解数据源的完整生命周期创建/更新时的配置加密、环境写入、OAuth2 授权、分支与版本、连接测试、查询执行等可直接阅读server侧的 contenteditable="false">【免费下载链接】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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价