- ThingsBoard CE v3.3.4.1 (2022年3月22日)
- ThingsBoard CE v3.3.4(2022年3月11日)
- ThingsBoard CE v3.3.3(2022年1月27日)
- ThingsBoard CE v3.3.2(2021年11月11日)
- ThingsBoard CE v3.3.1(2021年9月3日)
- ThingsBoard CE v3.3(2021年8月13日)
ThingsBoard CE v3.3.4.1 (2022年3月22日)
热修复版本,包含以下Bug修复:
- UI:
- 修复客户的资产页面权限;
ThingsBoard CE v3.3.4(2022年3月11日)
包含以下改进与Bug修复的次要版本:
改进
- 核心:
- UI:
- 传输:
Bug修复
- 核心与规则引擎:
- UI:
- 传输:
ThingsBoard CE v3.3.3(2022年1月27日)
包含以下改进与Bug修复的次要版本:
改进
- 核心:
- 规则引擎:
- 支持多输出的嵌套规则链;
- #5569 保存时序数据时不更新最新值,混合DB设置下有助于性能改进;
- 降低带内存缓存版本的CPU开销;
- 通过环境变量配置内存缓存;
- #5843 设备actor会话非活动性能与内存占用优化;
- #5751 设备和正确缓存清除的事务性删除;
- #5550 升级富化属性规则节点;
- 其他性能改进:不可变结构、预定义protobuf对象等;
- #5865 添加对3.3.0 edge版本规则链的支持;
- #5762 MQTT规则节点中“clientId”参数的后缀;
- #5821“保存时序”规则节点添加ignoreMetadataTs;
- #5889 减少会话超时的计划消息数量;
- #5921 向无关系的客户或租户传播告警;
- #5926 在“创建告警”规则节点中使用消息时间戳作为告警开始时间戳;
- #5687 自相交多边形、带孔多边形、多多边形支持;
- UI:
- 迁移至Angular 12;
- 嵌入不同仪表板状态的部件;
- 在markdown部件中嵌入仪表板状态;
- #5942 添加生成自定义部件数据结构的脚本;
- #5797 实体详情的独立页面;
- #5770 地图部件中标记和多边形的编辑器;
- #5757 多属性部件改进;
- #5629 显示持久化RPC调用的部件;
- #5856 实体页面的持久化链接;
- 在规则链编辑器中选择区域创建嵌套规则链;
- 为地图部件添加提示偏移设置;
- #5655 移动视图中隐藏页面大小选项;
- #5772 仅在时序和最新部件中显示图例设置;
- #5795 启用后处理函数时禁用列排序;
- #5876 图像地图调整大小正确计算中心位置;
- #5882 新地图部件设置:“禁用缩放控制”;
- #5910 添加定义showTitleIcon的附加条件;
- 传输:
- LwM2M:
- 支持定义网络配置;
- #5930 更新Eclipse Leshan版本至2.0.0-M5;
- 支持Base64格式定义RPK和X509模式下的客户端密钥;
- 引入新命令支持:Read-Composite、Write-Composite,多实例资源的读与写;
- 引入新内容格式支持:SenML JSON、SenML CBOR;
- 通过设备配置改进Bootstrap行为配置;
- Bootstrap服务器现支持:Read、Discover、Write、Delete命令;
- CoAP:
- #5930 更新Californium版本至3.0.0;
- SNMP:
- 为SNMP传输添加Redis配置;
- MQTT:
- [5875] MQTT的IP速率限制;
- LwM2M:
- 安全:
- 更新log4j-core、log4j-api和log4j-to-slf4j版本;
- 支持限制告警查询调用次数;
- #5823 为规则节点名称添加NO XSS校验;
- 构建脚本:
- 支持linux/arm64 docker容器;
- SQL测试现于真实PostgreSQL而非HSQL上运行;
- 更新grpc和netty版本以正确处理原生windows ssl库;
Bug修复
- 核心与规则引擎:
- 从3.2.2升级设备配置;
- #5492 WS订阅中double值转换;
- #5753 将未排序页面链接替换为按id ASC排序;
- #5744 针对log4shell CVE-2021-45105的修复;
- REST API文档中关于UUID的Wiki页面链接;
- 集群模式下已删除属性的通知;
- #5750 已删除时序记录的通知;
- #5657 修复搜索API Swagger描述;
- #5793 添加WebSocket上pong响应的处理;
- #5822 通用响应时不更新WS最近活动;
- OTA调度期间若新tag为空则移除旧OTA tag;
- #5869 禁止系统管理员删除自己;
- #5864 修复Timescale中按时区聚合;
- 当处理策略已完成或超时时忽略不再有效的消息;
- #5557 修复分区名称参数错误时的NPE;
- #5787 移除regularQueryInvocationCnt/regularQueryInvocationTime的错误统计计算;
- #5659 重试尝试结束后添加rpc响应错误;
- #5852“保存到自定义表”规则节点支持double类型;
- 在地图部件中拖动标记时阻止点击操作和弹出框打开;
- UI:
- #5755 支持带裁剪区域的矩形;
- Firefox布局;
- 在单独对话框中打开仪表板状态时显示空白对话框;
- 移动应用中的右侧布局和状态名传播;
- 解析查询别名类型的别名过滤器;
- JSON表单默认值处理;
- #5529 API使用情况的中文翻译;
- #5778 过滤器表单:常量类型和布尔值;
- #5805 OTA更新的帮助链接;
- #5813 颜色选择器的取消事件;
- #5832 不同语言的问题字符;
- #5872 device-profile-autocomplete和tenant-profile-autocomplete清除时的错误;
- #5879 防止多输入部件中保存无效表单;
- #5883 修复OTA包自动补全;
- #5913 日期范围导航器:选择日期时日历应为横向;
- #5923 资产模型添加到公共API;
- #5928 修复“添加用户”对话框的帮助链接URL;
- #5931 规则引擎统计仪表板中异常的时间戳错误;
- #5948 将“snpm”目录改为“snmp”;
- 传输:
- Rest客户端:
- #5566 修复rest客户端中基于部件类型的方法;
- Edge:
- #5922 小修复和代码审查意见;
- 构建脚本:
- 集成测试生命周期;
- #5672 安装时忽略CASSANDRA_KEYSPACE_NAME;
ThingsBoard CE v3.3.2(2021年11月11日)
包含以下改进与Bug修复的次要版本:
改进
- 核心:
- REST API文档:
- 描述实体和方法;
- 通过用户名和密码授权;
- Swagger最新版本;
- 用户自定义JS函数帮助页:
- 描述输入参数;
- 各种用例示例;
- 帮助内容从外部项目加载;
- 支持通过 ‘UI_HELP_BASE_URL’ 参数配置外部帮助URL;
- SQL查询性能:
- 防止无限递归;
- 支持通过 ‘SQL_RELATIONS_MAX_LEVEL’ 参数配置递归最大层级;
- 通过 ‘JAVAX_PERSISTENCE_QUERY_TIMEOUT’ 参数为所有SQL查询设置超时以应对极重查询;
- 批量导入改进并移至后端;
- 规则链导入/导出改进;
- 为Cassandra读写查询设置独立的缓冲速率执行器;
- 实体文本搜索由“startsWith”改为“substring”;
- 改进REST API错误响应处理;
- 添加字段长度校验;
- REST API文档:
- 安全:
- 支持SSL凭据配置以在负载均衡器上设置HTTPS而无需SSL终止;
- 支持证书PEM格式;
- 统一传输SSL凭据;
- 传输:
- HTTP/2配置支持;
- 添加Efento水表设备的开箱即用支持;
- MQTT向后兼容适配器,固件升级期间同时支持JSON和Protobuf;
- 规则引擎:
- HTTP客户端规则节点添加不创建任何消息体的选项;
- 优化重试策略,正确考虑所有可用设置:“retryFailed”“retryTimeout”和“retrySuccessful”;
- 修复规则引擎中更新的多边形坐标解析;
- 修复MQTT规则节点中MQTT包重复;
- UI:
- 新部件设置布局;
- MQTT设备传输配置的Protobuf编辑器;
- QR码部件,为qrcode和markdown部件添加帮助;
- 更新依赖:lodash和coreJS;
- 将翻译后的标题保存为“translatedDashboardTitle”变量;
- 多属性部件:为输入添加select类型;
- 可选数据源处理;
- 更新zh_CN本地化;
- 为实体和告警表格添加无数据显示消息;
- 将部件容器的“toastTargetId”添加到“widgetContext”;
- 在nav-tree组件的“updateNode”函数中添加“updatedData”参数;
- 设备配置中mqtt传输设置的样式;
- 构建脚本:
- AWS EKS的K8S部署说明和脚本;
- 升级脚本中添加缓存清理;
- 升级期间记录进度;
Bug修复
- 核心:
- 修复“getPersistedRpcByDevice”API调用中的安全检查;
- 修复Java 11迁移后Fork Join Pool中的类加载器(CL)问题,用当前线程CL替换系统CL;
- 修复实体查询中的默认排序;
- 修复删除关系时的并发异常;
- 无法在单体架构中使用隔离租户配置;
- 修复rest客户端json转换器解析json数组;
- 为缓存实体类(Device、Tenant Profile等)设置serialVersionUID;
- 将hsqldb版本升级至2.6.1以修复sql超时问题;
- 规则引擎:
- 默认告警详情脚本函数可能导致元数据无限增长;
- 弃用“delay”规则节点;
- 修复发送rpc请求节点中的NPE;
- 修复从3.2.2升级设备配置告警规则;
- 修正创建关系规则节点中当前关系的删除;
- 传输:
- LwM2M:
- 修复model为null时的NPE;
- 清晰日志;
- 处理来自核心的“设备已删除”事件;
- 处理来自核心的“更新凭据”事件;
- MQTT:
- 修复MqttTransportHandler中的拼写错误;
- COAP:
- 修复CoAP请求的确认;
- LwM2M:
- UI:
- 修复实体为空时的摄像头输入部件;
- 修复别名实体自动补全的重复请求;
- 修复地图函数,更新地图帮助;
- 修复数字仪表部件使用边界值;
- 修复仪表部件工作一段时间后显示不正确;
- 修复全屏仪表板模式下的toast显示;
- 修复markdown中“复制文本”在纯HTTP下的工作;
- 修复部件中不加载高级设置;
- 修复Trip动画:修正起始/终点计算,修正当前位置更新;
- 移除时序表格中的无效JSON表单字段;
- 表格部件更新后分页置为第一页;
- map-utils“parseData”函数中的错误索引;
ThingsBoard CE v3.3.1(2021年9月3日)
包含以下改进与Bug修复的次要版本:
改进
- 核心:
- 添加顺序RPC调用支持;
- Edge功能默认启用;
- 附加线程池命名(日志);
- 支持覆盖spring MVC异步请求超时属性(避免REST API超时);
- 传输:
- 为MQTT凭据Client ID添加UTF-8字符支持;
- 改进会话活动报告,支持短生命周期会话;
- LwM2M:已发送请求的高级跟踪;
- UI:
- 新增 Markdown/HTML 部件;
- 图表部件:数据键的自定义对比间隔;
- 图表部件:提示可见性配置;
- 在用户详情中添加复制用户ID按钮;
- 多属性部件:部件标题添加模式支持;
- 输入部件:添加必填字段选项;
- 在事件过滤面板中添加清除所有过滤器选项;
- 规则节点表单:为外部规则节点凭据字段添加显示/隐藏密码切换;
- 部件上下文中新增rxjs操作符(switchMap、catchError);
- 设备配置告警规则中告警类型和告警详情的自定义翻译支持;
- 构建脚本:
- 改进Maven制品依赖管理;
Bug修复
- 核心:
- 添加设备配置中队列名称的校验和替换;
- 密码重置请求时考虑SECURITY_USER_LOGIN_CASE_SENSITIVE属性值;
- 修正保存设备事务时对唯一设备名称约束冲突的处理;
- 规则引擎:
- 修复规则节点对设备配置更新的处理,设备配置中的新遥测键被忽略;
- 修复规则链actor消息处理器中tell next时的NPE;
- UI:
- 层级部件:处理来自仪表板状态的实体标签;
- 修复系统管理员首页中资源库的链接;
- 修复JSON表单中的全屏模式切换;
- 改进设备配置表单中的队列名称选择器;
- 修复在部件上显示按钮行为:始终显示默认部件包;
- MQTT规则节点表单:凭据字段现为可选;
- 全局加载指示:考虑已取消的请求;
ThingsBoard CE v3.3(2021年8月13日)
包含2126次提交和1668个变更文件的大型版本。
主要改进
- 核心:
- 与ThingsBoard Edge的配置和通信接口;
- 固件与软件空中升级(FOTA和SOTA);
- 持久化RPC调用;
- 创建告警数量的API限制;
- 按TTL删除告警;
- 添加Apple OAuth2提供商;
- 规则引擎:
- 非阻塞订阅方法以防止重分区事件时锁死;
- 远程js-executor性能显著提升;
- 按客户和系统级API使用统计;
- 传输:
- LwM2M传输实现;
- SNMP传输实现;
- CoAP DTLS支持;
- CoAP和LwM2M传输的PSM与eDRX支持;
- MQTT、HTTP、CoAP和LwM2M传输的FOTA和SOTA更新支持;
- 支持在同一传输实例中同时启动MQTT和MQTTS;
- protobuf载荷的显式字段存在支持;
- CoAP资源的内容格式支持;
- UI:
- 资源库管理;
- OTA包管理;
- Edge实例管理;
- Debug、Error、Stats等事件类型的事件过滤器;
- FOTA仪表板;
- 升级至Angular 11;
- 性能改进:将变更检测策略切换为OnPush;
- 性能改进:将部件标题移至部件容器;
- QR码部件
- 移动应用支持:
- 支持移动部件操作:扫描QR码、拍照、打开地图导航等;
- 移动应用中仪表板支持;
- 支持隐藏仪表板工具栏设置,改进仪表板设置对话框,处理移动应用中的仪表板右侧布局切换;
- 支持为仪表板和设备配置实体配置图标;
- 支持为移动应用指定移动仪表板作为告警详情视图;
- 支持控制移动应用中仪表板的可见性和顺序;
- 支持在移动模式下隐藏部件;
次要改进
- 核心:
- 影响活动/非活动设备事件计算的设备状态服务性能改进与Bug修复;
- 租户状态加载性能改进;
- 属性缓存性能改进;
- 事件查询与清理性能改进;
- DeviceActorMessageProcessor性能改进与内存管理;
- 在claiming/reclaiming设备时创建分配/取消分配设备事件;
- 实体的额外验证以防XSS;
- 重构谓词查询构建;
- 忽略过滤器的空搜索条件;
- 忽略常量键类型过滤器的默认值;
- 使告警条件可序列化;
- 支持按主题定义消费者属性;
- 改进线程池命名;
- 新告警API:getAllAlarms和getCustomerAlarms;
- 通过告警规则生成的告警的“alarmConditionRepeats”和“alarmConditionDuration”元数据字段;
- 用户修改密码时重置JWT令牌;
- 同步kafka提交以提升性能;
- 使用Prometheus收集统计;
- 按名称和租户ID查找仪表板的方法;
- Kafka客户端版本设为2.8.0,优化kafka生产者/消费者参数;
- Spring security版本设为5.4.4;
- 移除过时版本Netty;
- 添加错误消息日志以便于识别登录失败根因;
- 添加cluster-api模块并在规则引擎等服务中使用;
- 设备状态服务中的回调执行;
- 事务感知缓存,使缓存put/evict操作与正在进行的Spring管理事务同步;
- 传输:
- 通过protobuf支持CoAP和MQTT的服务端RPC请求;
- 数据转换器改进以支持大数值;
- 移除预配置功能的创建设备时的冗余锁;
- 支持在处理连接请求时队列可配置数量的上行MQTT消息;
- MQTT会话上下文的正确关闭和清理;
- 规则引擎:
- 为规则链的保存/更新/删除添加事务支持;
- Create Alarm规则节点支持动态告警严重性;
- QueueController从thingsboard.yml返回最新列表;
- 将消息解码移出锁以减少锁定时长;
- 在生命周期中第一次拉取时检查队列,早于任何subscribe方法调用;
- 若剩余时间小于1毫秒,拉取后不再休眠;
- 发送邮件节点中支持HTML模板;
- UI:
- 移动视图中时间窗口可视化的改进;
- JSON输入部件;
- 支持配置仪表板Logo;
- 查询参数处理改进;
- 支持从截图更新仪表板图片;
- 时序表格中的“在标签名中使用实体标签”复选框;
- 实体表格部件的部件操作中作为“additionalParams”的实体信息;
- 更新静态部件中“从部件设置实体”的逻辑;
- 将传输类型选择器移至设备向导的传输配置步骤;
- 支持从部件复制粘贴内容;
- 在实体表格部件中缓存cellContent、cellStyle、rowStyle;
- 禁用图像地图中的缩放滚动;
- 异常处理改进,排除如“object Object”的输出;
- 失焦输入后芯片的改进;
- 实体别名“实体名称”中接受内容的说明改进;
- 更新捷克语翻译;
- 支持在登录表单输入字段中切换密码显示;
- entity-key-list组件失焦后的焦点处理;
Bug修复
- 核心:
- 从Kafka消费者GroupId中移除ServiceId;
- Cassandra预编译语句初始化锁;
- 在库中Bug修复前恢复旧Nashorn沙箱版本;
- 移除WebSocket订阅onData函数的重复调用;
- 组件描述符和事件的事务管理;
- recalculatePartitions上可能过期的服务器信息;
- 基于pg_stat分析的告警查询性能修复;
- 设备数量查询性能修复;
- 仅当到达的值有更新的时间戳时更新ts_kv_latest表;
- 实体重命名时添加缓存清理;
- org.apache.kafka.common.KafkaException: javax.security.auth.login.LoginException;
- Rest Api Call节点修复:添加默认头部Content-Type;
- PostgreSQL驱动升级至42.2.20以修复与Postgres 11的连接问题;
- 安装脚本中删除partition函数并在升级脚本中添加修复;
- 压缩类型的配置参数名;
- 核心消费者中Gateway和LwM2M传输的消息顺序;
- 设备actor缓存中的会话重复;
- 授权和密码重置漏洞;
- 关系查询别名中的实体视图选择;
- widget bundle类equals方法中的拼写错误;
- 设备claiming期间的SerializationFailedException;
- 依赖漏洞;
- Spring security问题;
- DefaultTransportApiService中的创建设备通知;
- UI:
- 添加新配置后更新设备配置表;
- 系统管理员更改配置时的访问禁止错误;
- 用户更改键或值类型时告警规则校验;
- Switch控制部件在rpc调用响应后更新状态;
- 部件选择器中的部件类型过滤器;
- 将规则链设为核心时的中文标题;
- 资产页面解析;
- 地图部件中多数据源数据处理;
- 错误计算minIntervalLimit;
- 俄语/乌克兰语翻译中的一些拼写错误;
- 仪表板上相同部件的HTML操作;
- Led Indicator中的错误消息;
- 实体自动补全;
- flot部件中未设置阈值属性时出现阈值;
- HttpClient和DrugDrop现可供部件扩展使用,避免导入外部模块时stackoverflow;
- 设备凭据组件校验;
- 当stateId未变化时State controller不更新状态;
- Safari中的新仪表板设置;
- 部件描述中的拼写错误;
- 不要将数字仪表的单位标题“大写”;
- 实体数量数据源标签覆盖,配置的标签从未显示;
- 实体层级部件中的实体节点层级;
- 在Bar Chart部件中应用默认阈值线宽;
- 时间窗口显示错误;
- 高级设置为空时显示静态部件配置标签;
- 更新当前仪表板状态后未更新仪表板URL;
- Safari浏览器中Map部件的提示;
- 删除在告警部件中使用的别名时的校验;
- 在添加设备和添加设备配置对话框中添加缺失的帮助链接;
- 按Esc键关闭主菜单;
- 保存SMTP设置后清除密码;
- 设备非活动超时属性的更新;
- 主菜单中ESC键的行为;
- deleteEntityTimeseries中的startTs和endTs;
- 传输:
- 会话清理配置;
- 统计收集周期;
- CoAP客户端可同时订阅属性和rpc更新;
- 移除QoS 2的PUBLISH消息的不必要retain;
- CoAP重复读/观察请求的处理;
- GatewaySessionHandler中使用弱哈希映射作为锁的内存泄漏;
- Rest客户端:
- GetAlarms方法;
- 移除AlarmController、AlarmQuery和getAlarms的冗余参数;
- 降低默认日志级别;
- 在getTimeseries REST调用中包含limit值;
- 构建/安装脚本:
- K8S配置映射中的JAVA_OPTS以适配Java 11;
- Maven仓库引用;
- 更新docker-compose脚本的HAProxy和Certbot版本;
- 更新haproxy配置,启用HTTP/2;
- 在docker镜像中将Postgres升级至12;
- 为Top Rule Nodes按最大执行时间添加logger模板;
- 在Docker脚本中添加prometheus-grafana监控;
- 更新MSA说明文件;
- 从文件而非classpath正确查找keystore文件;
- 更新os-maven-plugin版本;
- 日志容器的唯一名称以避免容器名冲突;
- 改进黑盒测试;