技术交流

学习资料

立即试用 商务报价
社区版
社区版 专业版 云服务 Edge Edge PE 网关 授权服务 Trendz分析 Mobile 应用程序 Mobile PE应用程序
文档 > 其它特点 > 版本控制
入门
指南 安装 架构 API 常见问题

本页目录

版本控制

支持TB版本3.4

功能概述

ThingsBoard版本控制服务提供了使用Git导出和恢复实体的功能租户管理员可以使用UI或REST API配置对Git存储库的访问权限,平台用户可以导出单个或多个实体、浏览版本历史记录并将实体还原到指定版本。

当多个工程师设计相同的规则链或仪表板时此功能可改善用户体验并简化CI/CD还允许你轻松地在租户或平台实例之间解决方案克隆。

架构

实体ID

每个ThingsBoard实体都有”ID”字段用于标识实体的唯一导出的实体都包含新提交的”externalId”该字段用于在多个实例之间导入和导出时标识同一实体,”id”和”externalId”字段的类型均为UUID

“externalId”还用于自动替换规则链(规则节点)和仪表板(别名和部件操作)中的实体ID,如果你决定导入引用某些设备或资产的规则链请确保也导出/导入了相应的设备或资产。

导出设置

本支持以下实体:设备、资产、实体视图、客户、仪表板、部件包、规则链、实体组、角色、转换器和集成。

系统有意省略了对用户实体的支持因为用户电子邮件在平台实例的范围内是唯一的如果将电子邮件和凭据导出到Git会存在错误。

导出实体时我们将实体的JSON表示形式存储在Git中还可以导出实体属性、关系和凭据(仅限设备)。

仓库

首次将实体导出到Git时实体”id”用于命名git存储库中的文件。
当将实体从Git导入ThingsBoard时文件名中的”id”将成为实体的”externalId”。
“externalId”在租户范围内是唯一的因此可以在同一平台实例的租户之间或不同实例之间导入/导出实体每次执行导出和导入操作时通过”externalId”用于查找更新实体。
请参阅下面的示例:

假设你有开发了一个实例并导出了一个名为”Dashboard 1”和ID为”4864b750-da7d-11ec-a496-97fa2815d2fe”的单个仪表板然后存储库将具有具有以下全名和路径的单个文件:

1
dashboard/4864b750-da7d-11ec-a496-97fa2815d2fe.json

假设你已将仪表板”D1”首次将实体字段”externalId”导入到新的的生产实例在这种情况下生产环境中的仪表板实体将具有不同的id但仪表板的”externalId”将设置为相同的”4864b750-da7d-11ec-a496-97fa2815d2fe”。

客户层次结构存储在’hierarchy’文件夹中该文件夹以递归形式存在类似于UI中的’Customer hierarchy’页面,实体组存储在’groups’文件夹中每个组都有存储组实体的’id.json’文件和存储组中实体ID列表的’id_entities.json’文件并不包含组’All’分组中的’id_entities.json’文件因为组’All’包含所有实体。

同步策略

平台支持两种导出到Git的同步策略:合并和覆盖。
“合并”是默认的同步策略它只是将选定的实体附加到存储库当你想要保存一个或多个文件而不从存储库中删除所有其他文件时此策略非常有用。
“覆盖”策略完全重写相应的存储库文件当你想要完全同步实例和Git存储库中的实体列表(例如控制面板)时此策略会覆盖之前保存到Git的实例中并删除平台不存在Git中的其它实体都。

扩展

ThingsBoard版本控制服务可作为单体式ThingsBoard实例的一部分提供也可作为单独的微服务提供以实现水平可扩展性。
版本控制服务的每个实例都负责处理群集中租户的特定分区的同步任务每个”commit”API调用可能需要一些时间,不支持同一租户范围内的并发”commit”调用API。
如果”commit”API调用正在进行并且新的”commit”API调用到达系统将取消该调用。

用法

Git设置

租户管理员你可以导航到“系统设置”->“Git设置”配置Git存储库URL默认分支名称和身份验证设置我们希望你提供空Git存储库的URL。

导出

单个实体

导航到实体详细信息并打开“版本控制”选项卡规则链和仪表板具有内置的版本控制按钮和相应编辑器的弹出部件。
请参阅下面的屏幕截图。

多个实体

导航到版本控制页面可以选择一个或多个实体类型进行还原默认情况下将选择所有实体类型。

自动提交

自动提交能可以通过UI或REST API调用保存实体时自动提交仪表板和规则链,自动提交是异步方式进行以改善UI体验当将实体分配给客户(更改实体所有者)时不会发生自动提交,在这种情况下应使用覆盖策略提交特定实体类型的所有实体。

还原

导航到版本控制页面选择提交并指定还原设置。

下一步

  • 入门指南 - 快速学习ThingsBoard相关功能。

  • 安装指南 - 学习如何在各种操作系统上安装ThingsBoard。

  • 连接设备 - 学习如何根据你的连接方式或解决方案连接设备。

  • 可 视 化 - 学习如何配置复杂的ThingsBoard仪表板说明。

  • 数据处理 - 学习如何使用ThingsBoard规则引擎。

  • 数据分析 - 学习如何使用规则引擎执行基本的分析任务。

  • 硬件样品 - 学习如何将各种硬件平台连接到ThingsBoard。

  • 开发指南 - 学习ThingsBoard中的贡献和开发。