拓冰建站拓冰建站
首页 / 资讯中心 / 正文

ToolJet 多环境配置实战:以数据源、常量与应用流转为核心的自托管示例

ToolJet 多环境配置实战以数据源、常量与应用流转为核心的自托管示例【免费下载链接】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在 ToolJet 中环境Environment是隔离应用、数据源与常量配置的独立空间默认提供 Development开发、Staging预发布、Production生产三套环境。本文以虚拟企业Nexora Enterprises的完整配置过程为线索讲解如何在自托管 ToolJet 中为不同环境配置独立的 Postgres 数据源与 Workspace 常量含密钥并借助版本管理与 Promotion 机制完成应用从开发到生产的流转。读完本文你将能够独立落地一套一套应用、三套配置、按环境自动取数的多环境交付方案。背景ToolJet 的多环境模型在进入示例之前先建立三个环境的基本认知详细概念可参阅 多环境指南Development开发环境开发者在此使用 App Builder 构建、迭代新功能可频繁修改与调试不影响线上用户。Staging预发布环境接近生产环境的预上线空间供 QA、产品经理等团队验证功能、性能与安全性此环境中应用与查询不可编辑。Production生产环境最终面向终端用户的稳定环境。不同环境下应用行为受环境权限约束可参考下表Action操作DevelopmentStagingProductionEdit versions编辑版本✅❌❌Rename versions重命名版本✅❌❌Delete versions删除版本✅❌❌Create new versions新建版本✅❌❌Promote提升/发布✅✅-说明Promote 动作在 Production 一栏为-表示生产环境本身就是最终目标不再向上提升实际发布到生产的操作在 Production 环境内完成。示例背景Nexora Enterprises 的诉求Nexora Enterprises 是一家正在使用 ToolJet 构建内部应用的公司。他们的典型诉求是应用在不同阶段需要连接不同的数据库开发库、预发布库、生产库避免测试数据污染线上数据各环境需要维护不同的全局常量与密钥例如环境相关的 API 地址、密钥凭据开发完成后应用能够依次经过预发布测试、最终发布上线且全程无需手工改写数据源连接。这正是 ToolJet 多环境能力的典型应用场景数据源与常量均可按环境分别配置ToolJet 会依据目标环境自动选用对应的配置应用本身只需构建一次。第一步为每个环境配置数据源ToolJet 允许你为每个环境分别配置数据源使应用能够根据所处环境连接不同的数据库或 API。在 Nexora 的场景中公司使用 Postgres 数据源承载 ToolJet 应用的数据并为开发、预发布、生产各准备了一套独立数据库。具体操作路径为进入Data Sources数据源管理区域分别针对每个环境创建/配置对应的 Postgres 数据源。配置项通常包括主机地址、端口、数据库名、用户名与密码等连接信息每套环境填入各自对应的值即可。数据源的通用能力与支持类型可参阅 Data Sources 总览。从源码层面看按环境区分数据源配置并不是 UI 上的简单分组而是由数据模型直接支撑的server/src/entities/data_source_options.entity.ts中定义了数据源选项与环境的唯一关联Unique([dataSourceId, environmentId])并通过environment_id字段与 AppEnvironment 建立外键关系同样server/src/entities/data_source_version_options.entity.ts在版本维度上对dataSourceVersionId与environmentId做了唯一约束。这意味着同一数据源在不同环境下拥有彼此隔离的选项配置运行时由服务端按当前环境解析从而保证各环境连接的是各自独立的数据库。提示若某环境的数据源连接参数如数据库地址发生变化只需修改该环境对应的数据源配置无需改动应用中的查询逻辑查询仍引用同一个数据源名称但解析出的连接会随环境自动切换。第二步为每个环境配置全局常量与密钥除数据源外Nexora 还在每个环境维护不同的全局常量Global Constants与密钥Secrets全局常量是可跨产品一致复用的值如 API 基础 URL、配置项密钥用于安全存放敏感数据如 API Key、数据库凭据。两者的完整特性对比如下详细说明见 Workspace Constants 文档特性全局常量密钥Secret可用于组件Components✅❌可用于数据查询Data Queries✅✅可用于数据源Data Sources✅✅可用于工作流Workflows✅即将支持数据库中加密存储✅✅前端掩码显示❌✅客户端侧解析✅❌服务端侧解析❌✅命名约定{{constants.constant_name}}{{secrets.secret_name}}需要注意的边界密钥不能在 RunJS / RunPy 查询中使用且只能作为单一键使用不能以复合键方式拼接常量创建后类型不可变更全局/密钥二选一如需更改只能删除后重建密钥在客户端被掩码并在服务端侧解析避免向浏览器暴露敏感值。在自托管环境中的操作路径为从 ToolJet 仪表盘左侧边栏进入Workspace Constants标签页示例 URL 形如https://app.corp.com/nexus/workspace-constants点击Create new constant输入名称与值选择类型Global constant 或 Secret点击Add constant保存。配置完成后即可在不同环境间为同名常量赋予不同的值例如为开发、预发布、生产环境分别配置各自唯一的 API Key。常量按环境取值同样有数据模型支撑server/src/entities/org_environment_constant_values.entity.ts中常量值通过organizationConstantId与environmentId的组合进行唯一约束即同一组织常量在不同环境下存储各自独立的值应用版本实体server/src/entities/app_version.entity.ts中也有current_environment_id字段记录当前所在环境。ToolJet 正是依据这些关联在运行时自动解析出当前环境下的常量或密钥值。第三步多环境应用流转开发 → 预发布 → 生产完成数据源与常量的按环境配置后Nexora 的开发团队即可按如下节奏推进应用上线开发环境构建开发者在Development 环境中创建并迭代新功能此时应用连接到配置好的开发数据库由于开发环境支持编辑、重命名、删除、新建版本团队可以在此自由实验与调试见上文权限表。提升至预发布测试应用功能就绪后将其Promote 到 Staging 环境交由 QA 团队进行完整测试。若发现缺陷或收到反馈开发团队可以新建一个版本实施修改再把更新后的应用重新提升到预发布环境继续测试。Staging 环境下应用与查询不可编辑保证了测试对象的一致性。发布到生产测试全部通过后应用被提升至Production并正式发布向终端用户开放此时应用自动使用数据源配置阶段预设的生产数据库与生产环境常量。在整个流转过程中各环境的数据源连接完全依据上一步的配置自动匹配——应用代码与查询逻辑无需任何修改切换的只是环境上下文。版本管理相关的具体操作创建、重命名、删除版本等可参阅 版本控制指南。进阶跨实例环境与多环境最佳实践如果团队希望获得更强的隔离性还可以采用多实例部署方案在自托管基础设施上部署多个相互独立的 ToolJet 实例每个实例分别扮演开发、预发布或生产环境实现资源、用户与应用的严格隔离实例之间通过 GitSync支持 GitHub、GitLab、Gitea、Bitbucket进行应用推送与拉取迁移。相关概念与操作详见 Instance as Environment 及其配套的 多实例示例。结合本文示例可以沉淀出以下多环境落地要点数据源、常量与密钥全部按环境配置而非在应用内写死连接信息——这是环境自动切换的基础密钥一律使用 Secret 类型借助服务端解析与加密存储保护敏感数据切勿以全局常量存放凭据遵守环境权限边界只在开发环境编辑版本在预发布环境做验收在生产环境只做发布与回滚环境配置或常量变更时优先在开发环境验证再随版本 Promote 流程逐级生效。总结本文以 Nexora Enterprises 为例完整演示了自托管 ToolJet 的多环境配置路径先在 Data Sources 中为开发、预发布、生产分别配置 Postgres 数据源再在 Workspace Constants 中为各环境配置独立的全局常量与密钥最后借助版本管理与 Promote 机制完成应用的开发、测试与发布闭环。整个过程应用只需构建一次数据源与常量会随目标环境自动匹配——这套模式既保证了开发、测试、生产数据的相互隔离也显著降低了环境切换带来的人为配置错误。【免费下载链接】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),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门