1、概述
2、架构
3、导出设置
4、仓库
5、同步策略
6、扩展
7、案例
7.1、首先需要在Giitee上创建对应同步到仓库地址
7.2、giit仓库只能在租户层面进行配置
7.3、 配置完成后:检查访问权限。显示已成功验证仓库访问!表示配置成功
7.4、添加设备进行版本管理
7.5、创建
7.6、显示版本信息 编辑
7.7、查看Gitee仓库是否推送成功
7.8、测试还原版本
7.9、配置自动提交策略
7.10、修改设备并查看版本情况
7.11、测试数据恢复
7.12、点击对应行恢复的版本
7.13、选择想恢复的内容,并点击恢复
7.14、 提示回复版本编辑
7.15、查看设备信息,验证是否恢复
1、概述
ThingsBoard版本控制服务提供了使用Git导出和恢复实体的功能租户管理员可以使用UI或REST API配置对Git存储库的访问权限,平台用户可以导出单个或多个实体、浏览版本历史记录并将实体还原到指定版本。
当多个工程师设计相同的规则链或仪表板时此功能可改善用户体验并简化CI/CD还允许你轻松地在租户或平台实例之间解决方案克隆。
总结:测试环境的数据,可同步到生成环境
2、架构
每个ThingsBoard实体都有”ID”字段用于标识实体的唯一导出的实体都包含新提交的”externalId”该字段用于在多个实例之间导入和导出时标识同一实体,”id”和”externalId”字段的类型均为UUID。
“externalId”还用于自动替换规则链(规则节点)和仪表板(别名和部件操作)中的实体ID,如果你决定导入引用某些设备或资产的规则链请确保也导出/导入了相应的设备或资产。
3、导出设置
本支持以下实体:设备、资产、实体视图、客户、仪表板、部件包、规则链、实体组、角色、转换器和集成。
系统有意省略了对用户实体的支持因为用户电子邮件在平台实例的范围内是唯一的如果将电子邮件和凭据导出到Git会存在错误。
导出实体时我们将实体的JSON表示形式存储在Git中还可以导出实体属性、关系和凭据(仅限设备)。
4、仓库
首次将实体导出到Git时实体”id”用于命名git存储库中的文件。
当将实体从Git导入ThingsBoard时文件名中的”id”将成为实体的”externalId”。
“externalId”在租户范围内是唯一的因此可以在同一平台实例的租户之间或不同实例之间导入/导出实体每次执行导出和导入操作时通过”externalId”用于查找更新实体。
请参阅下面的示例:假设你有开发了一个实例并导出了一个名为”Dashboard 1”和ID为”4864b750-da7d-11ec-a496-97fa2815d2fe”的单个仪表板然后存储库将具有具有以下全名和路径的单个文件:
5、同步策略
平台支持两种导出到Git的同步策略:合并和覆盖。
“合并”是默认的同步策略它只是将选定的实体附加到存储库当你想要保存一个或多个文件而不从存储库中删除所有其他文件时此策略非常有用。
“覆盖”策略完全重写相应的存储库文件当你想要完全同步实例和Git存储库中的实体列表(例如控制面板)时此策略会覆盖之前保存到Git的实例中并删除平台不存在Git中的其它实体都。
6、扩展
ThingsBoard版本控制服务可作为单体式ThingsBoard实例的一部分提供也可作为单独的微服务提供以实现水平可扩展性。
版本控制服务的每个实例都负责处理群集中租户的特定分区的同步任务每个”commit”API调用可能需要一些时间,不支持同一租户范围内的并发”commit”调用API。
如果”commit”API调用正在进行并且新的”commit”API调用到达系统将取消该调用。
7、案例
7.1、首先需要在Giitee上创建对应同步到仓库地址
7.2、giit仓库只能在租户层面进行配置,
选择:高级设置-版本控制
仓库URL:就是你仓库仓库的地址
默认分支名称:你想同步分支的名称
身份证验证:Gitee的账号和密码
7.3、 配置完成后:检查访问权限。显示已成功验证仓库访问!表示配置成功
7.4、添加设备进行版本管理
7.5、创建
7.6、显示版本信息
7.7、查看Gitee仓库是否推送成功
7.8、测试还原版本
7.9、配置自动提交策略
自动提交能可以通过UI或REST API调用保存实体时自动提交仪表板和规则链,自动提交是异步方式进行以改善UI体验当将实体分配给客户(更改实体所有者)时不会发生自动提交,在这种情况下应使用覆盖策略提交特定实体类型的所有实体。对某类实体进行修改后,无需做提交,会自动进行提交,防止遗忘
7.10、修改设备并查看版本情况
7.11、测试数据恢复
删除对应设备信息