十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ToolJet 多环境实战:以 Nexora 为例配置分环境数据源与工作区常量

ToolJet 多环境实战:以 Nexora 为例配置分环境数据源与工作区常量 ToolJet 多环境实战以 Nexora 为例配置分环境数据源与工作区常量【免费下载链接】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 官方文档中的多环境示例Example Configuration以一家名为Nexora Enterprises的公司为场景完整演示如何在 ToolJet 中为development开发、staging预发布、production生产三个环境分别配置数据源与常量并借助版本控制实现应用的发布上线。读完本文你将掌握 ToolJet 多环境机制的底层模型、数据源与常量的分环境配置方法以及从开发到生产发布Promote → Release的完整实操路径。场景背景Nexora Enterprises 的多环境诉求Nexora Enterprises 是一家正在使用 ToolJet 搭建内部应用的公司。他们的核心诉求是同一套应用代码在不同阶段连接不同的数据库、使用不同的配置值——开发团队在开发库上迭代QA 团队在预发布库上测试最终用户访问生产库全程互不干扰。这正对应 ToolJet 内置的三大默认环境。从仓库源码可以确认这三个环境的定义// server/src/helpers/utils.helper.ts#L177-L183 export const defaultAppEnvironments [ { name: development, isDefault: false, priority: 1 }, { name: staging, isDefault: false, priority: 2 }, { name: production, isDefault: true, priority: 3 }, ];每个环境的职责如下Development开发环境ToolJet 开发者构建、配置和实验应用功能的空间改动不影响线上用户允许高频更新与调试Staging预发布环境发布前的测试空间与生产环境高度相似QA 和产品经理在此验证功能、性能与安全通过后才放行给最终用户Production生产环境最终用户访问的线上环境经过前两个环境的充分测试后保持稳定并针对性能优化。三个环境通过priority字段排序1 → 3production被标记为isDefault: true。在 AppEnvironmentUtilService 中环境列表始终按priority ASC返回后端在未显式指定环境时会回退到默认环境保证向下兼容。配置数据源为每个环境接入不同的数据库在 ToolJet 中数据源可以按环境分别配置从而使应用在不同阶段连接到不同的数据库或 API。Nexora 使用 Postgres 数据源为开发、预发布、生产各准备了一个独立数据库需要在Data Sources数据源页面分别为每个环境完成配置。配置入口有两种在应用编辑器的查询面板点击 Add new新建数据源或从仪表盘左侧边栏直接进入Data Sources页面。在数据源连接表单中填写配置时ToolJet 会将该环境的连接参数单独保存。从源码看这一机制由AppEnvironmentUtilService.getOptions()server/src/modules/app-environments/util.service.ts#L276-L351实现数据源的连接参数并非全局唯一而是存储在data_source_version_options表中以dataSourceVersionId environmentId为维度区分。当查询在某个环境中执行时后端会先解析出该环境的 ID再按environmentId取出对应的options主机、端口、库名、凭据等。若该环境没有独立的选项则会抛出ForbiddenException从机制上杜绝了环境错连数据库的可能。对于 Nexora 而言这意味着开发环境的应用自动连接开发库、预发布环境连接预发布库、生产环境连接生产库只需在数据源配置页面各填一次后续查询无需任何改动。配置工作区常量全局常量与密钥的分环境管理除了数据库连接Nexora 还为每个环境维护了不同的全局常量和密钥Secret。ToolJet 的Workspace Constants工作区常量提供两类值Global Constants全局常量可跨应用复用的值如 API URL、配置项等Secrets密钥用于安全存储敏感数据如 API Key、数据库凭据、加密密钥。在仪表盘左侧边栏进入Workspace Constants页面点击Create new constant打开配置抽屉填写名称与值并选择类型Global constant / Secret即可创建。需要说明的是常量一旦创建类型便不可修改只能删除重建。引用语法与可用范围全局常量{{constants.constant_name}}可用于应用构建器、数据源、数据查询和工作流密钥{{secrets.secret_name}}可用于数据源和数据查询但不能用于应用构建器或工作流也不能在 RunJS / RunPy 查询中使用。详细的特性对比与使用方式可参阅 Workspace Constants 文档 与 Workspace Constants and Secrets 概念说明。环境特定配置与安全Workspace Constants 支持环境特定的配置同一个常量名可以在不同环境拥有不同值例如每个环境使用不同的 API Key这正是 Nexora 分环境管理配置的基础。在安全性上全局常量与密钥均在入库前加密其中密钥由服务端解析值不会随网络载荷发送到客户端且在前端被掩码显示进一步避免敏感信息暴露。多环境下的应用生命周期开发 → 预发布 → 生产完成数据源与常量配置后Nexora 的团队即可按如下流程推进应用开发阶段开发者在development 环境中创建版本、迭代新功能使用开发库进行构建与调试预发布阶段应用就绪后将其Promote提升到staging 环境QA 团队在此充分测试若发现缺陷或收到反馈开发者创建新版本、修复问题再把更新后的版本提升回 staging 复测。数据源会自动按环境配置接入对应数据库生产阶段测试通过后将应用提升到production并Release发布最终用户即可访问。此环境使用数据源配置阶段设置的生产数据库。底层实现提升Promote与按钮可见性自动使用对应环境的配置并非魔法而是前后端协作的结果前端在版本管理器中执行提升操作时会从开发环境版本列表中选择目标版本作为新版本创建的来源参见 CreateVersionModal.jsx后端AppEnvironmentService.processActions()server/src/modules/app-environments/service.ts处理VERSION_DELETED、ENVIROMENT_CHANGED等动作根据currentEnvironmentId定位当前环境并返回对应版本calculateButtonVisibility()server/src/modules/app-environments/util.service.ts#L120-L143负责决定Promote与Release按钮是否渲染非生产环境且版本未发布时显示 Promote版本处于生产环境或已发布时显示 Release。环境权限影响表各环境对应用可执行的操作权限不同详见下表来源Multi-Environment 文档ActionDevelopmentStagingProductionEdit versions✅❌❌Rename versions✅❌❌Delete versions✅❌❌Create new versions✅❌❌Promote✅✅-可以看出版本的新建、编辑、重命名、删除都只能在开发环境完成预发布环境只允许接收提升的版本供测试不可直接编辑生产环境则是只读的发布目标。这一设计从权限层面保证了线上稳定性。发布Release与回滚Rollback应用提升到生产环境后点击编辑器右上角的Release按钮并确认即可将当前版本发布给最终用户。若发布后发现异常可随时利用版本回滚能力打开App Version Manager工具栏顶部在下拉列表中选中此前稳定的版本已发布版本名以绿色显示再次点击Release并确认即可瞬间恢复到稳定版本应用 URL 保持不变。详细的版本管理新建、重命名、删除操作可参阅 Version Control 文档发布与回滚的完整步骤见 Release and Rollback 文档。Nexora 的团队正是在这套机制下做到了新功能迭代与线上稳定互不干扰。小结通过 Nexora Enterprises 的完整案例可以看到ToolJet 的多环境能力贯穿数据源、工作区常量与版本管理三个层面数据源按环境隔离连接参数以数据源版本 环境为维度存储后端按环境自动解析杜绝串库常量与密钥按环境差异化全局常量与密钥支持环境特定值密钥服务端解析并加密、前端掩码兼顾复用与安全版本生命周期清晰开发环境自由编辑、预发布环境测试验证、生产环境只读发布权限表约束了每个阶段的可操作范围配合 Promote → Release 与一键回滚构成完整的交付闭环。对于任何需要在多套数据库与配置之间切换的 ToolJet 项目这套一次配置、按环境自动生效的模式都可以直接复制使用。更多底层机制可继续阅读 Multi-Environment 官方文档 及本文引用的源码文件。【免费下载链接】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),仅供参考
返回列表