增强
支持在规则引擎的 MongoDB 动作的
Collection
字段里使用${var}
格式的占位符 #1503。添加针对规则引擎中的 InfluxDB 资源的
host
字段的格式检查;主机字段应该是不包括 scheme 和端口的 IP/域名 #1426。 相关的文档更新请查看 emqx/emqx-docs#1368。检查监听器的
tls_versions
配置值是tlsv1
,tlsv1.1
,tlsv1.2
,tlsv1.3
中的一个或多个组合 #9260。删除 Dashboard 监听器失败时日志中的无用信息 #9260.
当 CoAP 网关给设备投递消息并收到设备发来的确认之后,回调
'message.acked'
钩子 #9264。 有了这个改动,CoAP 网关可以配合 EMQX (企业版)的离线消息缓存功能,让 CoAP 设备重新上线之后,从数据库读取其离线状态下错过的消息。支持在规则引擎的 Webhook 动作的 HTTP Headers 里使用
${var}
格式的占位符 #9239。在 emqx 启动时,异步地刷新资源和规则 #9199。 这个改动是为了避免因为一些资源连接建立过慢,而导致启动时间过长。
订阅时,如果 ACL 检查不通过,打印一个警告日志 #9124。 该行为的改变主要是为了跟发布失败时的行为保持一致。
基于 JWT 的 ACL 支持
all
动作,指定同时适用于pub
和sub
两个动作的规则列表 #9044。增强包含敏感数据的日志的安全性 #9189。 如果日志中包含敏感关键词,例如
password
,那么关联的数据回被模糊化处理,替换成******
。增强 ACL 模块中的日志安全性,敏感数据将被模糊化 #9242。
增加
management.bootstrap_apps_file
配置,可以让 EMQX 初始化数据库时,从该文件批量导入一些 APP / Secret #9273。增加了固化认证和 ACL 模块调用顺序的配置 #9283。 这两个新的全局配置名称为
auth_order
和acl_order
。 当有多个认证或 ACL 插件(或模块)开启时,没有该配置的话,模块调用的顺序取决于它们的启动顺序。 例如,如果一个插件(或模块)在系统启动之后单独重启了,那么它就有可能排到其他插件(或模块)的后面去。 有了这个配置之后,用户可以使用用逗号分隔的插件(或模块)的名字(或别名)来固化他们被调用的顺序。 例如,acl_order = jwt,http
,可以用于保证jwt
这个模块总是排在http
的前面, 也就是说,在对客户端进行 ACL 检查时,如果 JWT 不存在(或者没有定义 ACL),那么回退到使用 HTTP。为更多类型的
client.disconnected
事件(计数器触发)提供可配置项 #9267。 此前,client.disconnected
事件及计数器仅会在客户端正常断开连接或客户端被系统管理员踢出时触发, 但不会在旧 session 被新连接废弃时 (clean_session = true) ,或旧 session 被新连接接管时 (clean_session = false) 被触发。 可将broker.client_disconnect_discarded
和broker.client_disconnect_takovered
选项设置为on
来启用此场景下的客户端断连事件。规则引擎资源创建失败后,第一次重试前增加一个延迟 #9313。 在此之前,重试的延迟发生在重试失败之后。
修复
修正了在 Kafka Consumer 中选择
reset_by_subscriber
偏移重置策略的选项 #1463。修复了热配置中的
tls_versions
配置项遗漏了tlsv1.3
选项的问题 #1532。修复了 SQL Server 资源中,无法在
server
字段里使用除1433
之外的端口的问题 #1464。Schema-Registry 的 API 在 HTTP 请求 URI 中支持百分号编码的
name
#1497。 注意在创建 Schema 时,POST /api/v4/schemas
请求中的name
字段不应使用百分号编码,因为这是一个 JSON 字段。修复 JWT 认证插件的一个热升级问题 #1554。 当从 e4.3.9 或更早的热升级上来时,EMQX 内部一个 Key 管理进程会需要重启,在重启过程中的 JWT 认证请求可能会失败。
修复若上传的备份文件名中包含非 ASCII 字符,
GET /data/export
HTTP 接口返回 500 错误 #9224。改进规则的 "最大执行速度" 的计数,只保留小数点之后 2 位 #9185。 避免在 dashboard 上展示类似这样的浮点数:
0.30000000000000004
。修复在尝试连接 MongoDB 数据库过程中,如果认证失败会不停打印错误日志的问题 #9184。
修复 emqx-sn 插件在“空闲”状态下收到消息发布请求时可能崩溃的情况 #9024。
限速 “Pause due to rate limit” 的日志级别从原先的
warning
降级到notice
#9134。保留老的
emqx_auth_jwt
模块的接口函数,保障热升级之前添加的回调函数在热升级之后也不会失效 #9144。修正了
/status
API 的响应状态代码 #9210。 在修复之前,它总是返回200
,即使 EMQX 应用程序没有运行。 现在它在这种情况下返回503
。修复规则引擎的消息事件编码失败 #9226。 带消息的规则引擎事件,例如
$events/message_delivered
和$events/message_dropped
, 如果消息事件是共享订阅产生的,在编码(到 JSON 格式)过程中会失败。 影响到的版本:v4.3.21
,v4.4.10
,e4.3.16
和e4.4.10
。使规则引擎 API 在 HTTP 请求路径中支持百分号编码的
rule_id
及resource_id
#9190。 注意在创建规则或资源时,HTTP body 中的id
字段仍为字面值,而不是编码之后的值。 详情请参考 创建规则 和 创建资源。修复调用 'DELETE /alarms/deactivated' 只在单个节点上生效的问题,现在将会删除所有节点上的非活跃警告 #9280。
在进行消息重发布或桥接消息到其他 mqtt broker 时,检查 topic 合法性,确定其不带有主题通配符 #9291。
关闭管理端口(默认为8081)上对 HTTP API
api/v4/emqx_prometheus
的认证,Prometheus 对时序数据抓取不在需要配置认证 #9294。