完全指南:全局连接、默认数据源与权限体系)
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 官方文档为主线结合后端源码server/src/modules/data-sources与实体定义data_source.entity.ts系统讲解数据源的连接流程、默认数据源、用户权限模型、多连接切换以及老版本应用的全局化迁移帮助你从使用到原理完整掌握 ToolJet 的数据源体系。:::caution 数据源Data Sources页面仅在ToolJet 2.3.0 及以上版本可用。2.3.0 之前的数据源以应用内局部连接的方式存在可通过本文末尾的作用域变更将其升级为全局数据源。 :::什么是 ToolJet 数据源数据源承担着拉取数据与推送数据的双向职责——既可以作为查询输入从数据库 / API / 服务中读取数据也可以将应用产生的数据写入到目标端。其核心设计是工作区级共享一个数据源连接到工作区后该工作区的所有应用包括已有应用与新建应用都可以在查询面板中直接使用它连接凭证、连接配置只维护一份避免在每个应用里重复配置数据源配置与查询Query分离数据源负责连得上查询负责取什么 / 怎么取。从数据模型看ToolJet 用一个统一的data_sources表来承载所有数据源data_source.entity.ts关键字段包括字段类型说明namestring数据源名称kindstring数据源种类如postgresql、restapi、runjs等typeenumstatic/default/sample标识数据源类型plugin_iduuid关联的插件Plugin数据源能力由插件提供app_version_iduuid关联的应用版本局部数据源时使用organization_iduuid所属工作区组织scopeenumlocal/global即局部或全局作用域其中scope字段正是本文核心概念全局数据源的落点其枚举定义见 constants/index.tsexport enum DataSourceScopes { LOCAL local, GLOBAL global, }连接数据源两种入口ToolJet 提供两条通往数据源管理的路径殊途同归从应用内进入在 Dashboard 上新建一个应用进入查询面板Query Panel点击 Add new按钮从工作区进入直接点击 Dashboard 左侧边栏的Data Sources菜单进入全局数据源管理页。第一步进入数据源页并选择分类在Data Sources页面左侧数据源被划分为多个类别包括Databases数据库PostgreSQL、MySQL、MongoDB、MariaDB、Redis 等完整清单见 docs/versioned_docs/version-3.0.0-LTS/data-sourcesAPIs接口RestAPI、GraphQL、OpenAPI、gRPC、SOAP 等Cloud Storages云存储S3、GCS、MinIO、Azure Blob 等Plugins插件由插件系统扩展的数据源。点击任意分类查看该分类下的数据源列表将鼠标悬停在目标数据源上会出现Add按钮点击后该数据源即接入当前工作区。第二步填写连接配置数据源添加完成后需要填写连接配置如数据库地址、端口、用户名、密码或 API 的 Base URL、认证信息以建立连接免费/社区版保存配置后即可在当前工作区使用付费计划必须完成配置录入并保存数据源才能跨多环境Multiple Environments可用——即不同环境如 development / production可以维护各自的连接参数。第三步在查询面板中使用返回 Dashboard 新建应用后在查询面板的Available data sources区域即可看到刚接入的数据源。它同时适用于已有应用和新建应用无需重复连接。第四步多连接切换同一个数据源可以建立多个独立连接例如两套不同数据库实例的凭证。创建查询时如果该数据源存在多个连接可以在查询配置中直接切换使用其中任意一个连接无需新建数据源。默认数据源每个应用开箱即用ToolJet 为每个应用预置了4 个默认数据源无需任何配置即可直接使用默认数据源用途参考文档ToolJet Database内置的无代码数据库直接读写表数据tooljet-db/tooljet-databaseRestAPI发送 HTTP 请求调用任意 REST 接口data-sources/restapi/configurationRun JavaScript Query在应用内执行 JavaScript 代码data-sources/custom-jsRun Python Query在应用内执行 Python 代码data-sources/run-py源码层面这些默认数据源由DefaultDataSourceKinds常量统一声明constants/index.tsexport const DefaultDataSourceKinds: DefaultDataSourceKind[] [restapi, runjs, runpy, tooljetdb, workflows];同时后端在getAll()中会按DataSourceTypes.DEFAULT与DataSourceTypes.SAMPLE过滤查询service.ts确保工作区的数据源列表只返回默认数据源与样例数据源而将纯静态数据源static排除在管理列表之外。这也解释了为什么这 4 类数据源在每个应用中都会稳定出现——它们是默认default类型的内置能力。数据源用户权限模型数据源的增删改权限仅限工作区内的 Admins 与 Super Admins进行配置。配置入口Workspace Settings工作区设置 → Groups Settings组设置。权限分为两个维度维度一工作区内数据源的创建与删除权限说明Just Create仅创建可新增数据源并修改已有数据源悬停已连接数据源时不显示删除按钮Just Delete仅删除可从工作区移除已连接的数据源悬停时显示删除按钮Both Create and Delete创建并删除既可新增数据源也可移除已连接数据源Neither Create nor Delete均不可无权限用户无法从 Dashboard 访问数据源页面直接通过 URL 访问时会弹出错误 Toast维度二已授权数据源的查看与编辑权限说明View查看用户组可连接到被授权的数据源但无法更新其凭证Edit编辑用户可更新被授权数据源的凭证这两个权限维度的实现在后端由数据源与用户组的关联表承载data_source_group_permissions与group_data_sourcedata_source.entity.ts分别对应组对该数据源具备何种权限与哪些组被授权使用该数据源。实际执行时getForApp()/getAll()都会携带userPermissions参数由服务层过滤出当前用户可用的数据源集合service.ts。老版本应用的局部数据源全局化Change ScopeToolJet 2.3.0 之前数据源连接是在单个应用内部建立的作用域为local。为了向后兼容ToolJet 提供了把局部数据源升级为全局数据源的机制定位数据源管理器打开 2.3.0 之前创建的应用在 App Builder 左侧边栏可以看到data source manager数据源管理器其中列出了应用内已连接的数据源选择 Change Scope点击数据源旁边的kebab menu竖排三点菜单选择change scope变更作用域完成全局化作用域变更成功后左侧边栏的 data source manager 消失该数据源出现在查询面板的Available data sources可用数据源区域并可在 Dashboard 的Data Sources页面统一配置管理。作用域变更的底层实现对应后端能力标识SCOPE_CHANGEconstants/index.ts它作为权限控制点FEATURE_KEY出现在数据源模块的能力清单中与CREATE、UPDATE、DELETE等并列表明变更作用域是一项受权限管控的独立操作。数据源的增删改服务端核心链路为便于深入理解数据源的连接与权限语义这里给出后端数据源服务service.ts的关键操作路径创建createL123-L166接收kind、name、options、plugin_id、environment_id特殊处理 gRPC 数据源的 proto 文件解析后写入数据源记录并产生审计日志更新updateL168-L202按dataSourceId与环境维度更新名称与连接参数options同时记录审计信息删除deleteL220-L280受两大约束保护——样例数据源sample不可删除以及存在关联查询dependent_queries时拒绝删除避免幽灵数据源破坏现有应用删除还会按分支branch区分软删除 / 硬删除策略。这些约束与本文权限表中的行为一一对应例如Neither Create nor Delete组的用户无法触达删除操作Just Delete组则被授权执行delete能力。适用版本与限制说明本文操作路径以 ToolJet3.0.0-LTS文档为准docs/versioned_docs/version-3.0.0-LTS/data-sources/overview.md最新版文档位于 docs/docs/data-sources/overview.md数据源页面功能要求ToolJet ≥ 2.3.0低于该版本时请先升级再按Change Scope流程迁移局部数据源跨多环境可用仅适用于付费计划社区版数据源在同一工作区内共享连接。小结ToolJet 数据源体系的核心可以概括为三句话一次连接、全工作区复用全局作用域四类默认数据源开箱即用restapi / runjs / runpy / tooljetdb创建、删除、查看、编辑四档权限按用户组精细管控。从数据模型data_sources表 scope字段到权限实体data_source_group_permissions再到服务端的create / update / delete / SCOPE_CHANGE能力点整条链路在 server/src/modules/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创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考