diff --git a/apps/emqx_auth_jwt/src/emqx_auth_jwt.app.src b/apps/emqx_auth_jwt/src/emqx_auth_jwt.app.src
index 8b66965b1..ab6dd53e7 100644
--- a/apps/emqx_auth_jwt/src/emqx_auth_jwt.app.src
+++ b/apps/emqx_auth_jwt/src/emqx_auth_jwt.app.src
@@ -1,6 +1,6 @@
{application, emqx_auth_jwt,
[{description, "EMQ X Authentication with JWT"},
- {vsn, "4.4.8"}, % strict semver, bump manually!
+ {vsn, "4.4.9"}, % strict semver, bump manually!
{modules, []},
{registered, [emqx_auth_jwt_sup]},
{applications, [kernel,stdlib,jose]},
diff --git a/apps/emqx_auth_jwt/src/emqx_auth_jwt.appup.src b/apps/emqx_auth_jwt/src/emqx_auth_jwt.appup.src
index 0c2c0e58f..9f6ac4b9b 100644
--- a/apps/emqx_auth_jwt/src/emqx_auth_jwt.appup.src
+++ b/apps/emqx_auth_jwt/src/emqx_auth_jwt.appup.src
@@ -1,38 +1,14 @@
%% -*- mode: erlang -*-
%% Unless you know what you are doing, DO NOT edit manually!!
{VSN,
- [{"4.4.7",[{load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}]},
- {"4.4.6",
- [{load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]},
- {load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}]},
- {"4.4.5",
- [{load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]},
- {load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]}]},
- {"4.4.4",
- [{load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]},
- {load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}]},
- {"4.4.3",
- [{load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]},
- {load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]}]},
- {"4.4.2",
+ [{"4.4.8",[{load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]}]},
+ {<<"4\\.4\\.[2-7]">>,
[{load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]},
{load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}]},
{<<"4\\.4\\.[0-1]">>,[{restart_application,emqx_auth_jwt}]},
{<<".*">>,[]}],
- [{"4.4.7",[{load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}]},
- {"4.4.6",
- [{load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]},
- {load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}]},
- {"4.4.5",
- [{load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]},
- {load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]}]},
- {"4.4.4",
- [{load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]},
- {load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}]},
- {"4.4.3",
- [{load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]},
- {load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]}]},
- {"4.4.2",
+ [{"4.4.8",[{load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]}]},
+ {<<"4\\.4\\.[2-7]">>,
[{load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]},
{load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}]},
{<<"4\\.4\\.[0-1]">>,[{restart_application,emqx_auth_jwt}]},
diff --git a/apps/emqx_auth_jwt/src/emqx_auth_jwt_svr.erl b/apps/emqx_auth_jwt/src/emqx_auth_jwt_svr.erl
index 3713e74f3..30a3fa19d 100644
--- a/apps/emqx_auth_jwt/src/emqx_auth_jwt_svr.erl
+++ b/apps/emqx_auth_jwt/src/emqx_auth_jwt_svr.erl
@@ -99,13 +99,13 @@ handle_cast(_Msg, State) ->
{noreply, State}.
handle_info({timeout, _TRef, refresh}, State = #state{addr = Addr}) ->
- NState = try
- true = ets:insert(?TAB, {remote, request_jwks(Addr)}),
- State
- catch _:_ ->
- State
- end,
- {noreply, reset_timer(NState)};
+ try
+ true = ets:insert(?TAB, {remote, request_jwks(Addr)})
+ catch Err:Reason ->
+ ?LOG_SENSITIVE(warning, "Request JWKS failed, jwks_addr: ~p, reason: ~p",
+ [Addr, {Err, Reason}])
+ end,
+ {noreply, reset_timer(State)};
handle_info({request_jwks, Options}, State) ->
Remote = key2jwt_value(jwks_addr, fun request_jwks/1, Options),
diff --git a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.app.src b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.app.src
index a3bf1e914..b58be5d2e 100644
--- a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.app.src
+++ b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.app.src
@@ -1,6 +1,6 @@
{application, emqx_bridge_mqtt,
[{description, "EMQ X Bridge to MQTT Broker"},
- {vsn, "4.3.7"}, % strict semver, bump manually!
+ {vsn, "4.3.8"}, % strict semver, bump manually!
{modules, []},
{registered, []},
{applications, [kernel,stdlib,replayq,emqtt]},
diff --git a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.appup.src b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.appup.src
index a6ca580f1..013371592 100644
--- a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.appup.src
+++ b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.appup.src
@@ -1,7 +1,9 @@
%% -*- mode: erlang -*-
%% Unless you know what you are doing, DO NOT edit manually!!
{VSN,
- [{"4.3.6",
+ [{"4.3.7",
+ [{load_module,emqx_bridge_mqtt_actions,brutal_purge,soft_purge,[]}]},
+ {"4.3.6",
[{load_module,emqx_bridge_connect,brutal_purge,soft_purge,[]},
{load_module,emqx_bridge_mqtt_actions,brutal_purge,soft_purge,[]}]},
{<<"4\\.3\\.[4-5]">>,
@@ -21,7 +23,9 @@
{load_module,emqx_bridge_worker,brutal_purge,soft_purge,[]},
{load_module,emqx_bridge_mqtt_actions,brutal_purge,soft_purge,[]}]},
{<<".*">>,[]}],
- [{"4.3.6",
+ [{"4.3.7",
+ [{load_module,emqx_bridge_mqtt_actions,brutal_purge,soft_purge,[]}]},
+ {"4.3.6",
[{load_module,emqx_bridge_connect,brutal_purge,soft_purge,[]},
{load_module,emqx_bridge_mqtt_actions,brutal_purge,soft_purge,[]}]},
{<<"4\\.3\\.[4-5]">>,
diff --git a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt_actions.erl b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt_actions.erl
index b5d43f5f4..b43d44eac 100644
--- a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt_actions.erl
+++ b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt_actions.erl
@@ -111,11 +111,11 @@
zh => <<"桥接挂载点"/utf8>>},
description => #{
en => <<"MountPoint for bridge topic:
"
- "Example: The topic of messages sent to `topic1` on local node "
- "will be transformed to `bridge/aws/${node}/topic1`">>,
+ "Example: The topic of messages sent to topic1
on local node "
+ "will be transformed to bridge/aws/${node}/topic1
">>,
zh => <<"桥接主题的挂载点:
"
- "示例: 本地节点向 `topic1` 发消息,远程桥接节点的主题"
- "会变换为 `bridge/aws/${node}/topic1`"/utf8>>
+ "示例: 本地节点向 topic1
发消息,远程桥接节点的主题"
+ "会变换为 bridge/aws/${node}/topic1
"/utf8>>
}
},
disk_cache => #{
@@ -267,10 +267,10 @@
type => string,
required => true,
default => <<"emqx2@127.0.0.1">>,
- title => #{en => <<"EMQ X Node Name">>,
- zh => <<"EMQ X 节点名称"/utf8>>},
- description => #{en => <<"EMQ X Remote Node Name">>,
- zh => <<"远程 EMQ X 节点名称 "/utf8>>}
+ title => #{en => <<"EMQX Node Name">>,
+ zh => <<"EMQX 节点名称"/utf8>>},
+ description => #{en => <<"EMQX Remote Node Name">>,
+ zh => <<"远程 EMQX 节点名称 "/utf8>>}
},
mountpoint => #{
order => 2,
@@ -280,11 +280,11 @@
title => #{en => <<"Bridge MountPoint">>,
zh => <<"桥接挂载点"/utf8>>},
description => #{en => <<"MountPoint for bridge topic
"
- "Example: The topic of messages sent to `topic1` on local node "
- "will be transformed to `bridge/aws/${node}/topic1`">>,
+ "Example: The topic of messages sent to topic1
on local node "
+ "will be transformed to bridge/emqx/${node}/topic1
">>,
zh => <<"桥接主题的挂载点
"
- "示例: 本地节点向 `topic1` 发消息,远程桥接节点的主题"
- "会变换为 `bridge/aws/${node}/topic1`"/utf8>>}
+ "示例: 本地节点向 topic1
发消息,远程桥接节点的主题"
+ "会变换为 bridge/emqx/${node}/topic1
"/utf8>>}
},
pool_size => #{
order => 3,
@@ -358,7 +358,7 @@
destroy => on_resource_destroy,
params => ?RESOURCE_CONFIG_SPEC_RPC,
title => #{en => <<"EMQX Bridge">>, zh => <<"EMQX Bridge"/utf8>>},
- description => #{en => <<"EMQ X RPC Bridge">>, zh => <<"EMQ X RPC 消息桥接"/utf8>>}
+ description => #{en => <<"EMQX RPC Bridge">>, zh => <<"EMQX RPC 消息桥接"/utf8>>}
}).
-rule_action(#{
diff --git a/changes/v4.4.15-en.md b/changes/v4.4.15-en.md
index 5836b24b1..a225eb3bb 100644
--- a/changes/v4.4.15-en.md
+++ b/changes/v4.4.15-en.md
@@ -16,6 +16,10 @@
## Bug fixes
+- fix some issues in descriptions of the actions, resources amd emqx-modules [#9931](https://github.com/emqx/emqx/pull/9931).
+
+- fix there's no error logs when query the JWKS server failed [#9931](https://github.com/emqx/emqx/pull/9931).
+
- The returned client lists of HTTP query `GET /api/v4/clients?_page=2&_limit=20` to different nodes might be inconsistent [#9926](https://github.com/emqx/emqx/pull/9926).
- Fix the problem that new MQTT TLS connections failed to establish after release hot upgrade [#9810](https://github.com/emqx/emqx/pull/9810).
diff --git a/changes/v4.4.15-zh.md b/changes/v4.4.15-zh.md
index dd2471888..2d5fe953a 100644
--- a/changes/v4.4.15-zh.md
+++ b/changes/v4.4.15-zh.md
@@ -16,6 +16,10 @@
## 修复
+- 修复资源、动作以及模块里的一些描述错误 [#9931](https://github.com/emqx/emqx/pull/9931)。
+
+- 修复请求 JWKS 服务失败的时候,没有日志打印的问题 [#9931](https://github.com/emqx/emqx/pull/9931)。
+
- 使用 HTTP API `GET /api/v4/clients?_page=2&_limit=20` 请求客户端列表时,请求发送到不同的 emqx 节点,返回的客户端列表可能不一致 [#9926](https://github.com/emqx/emqx/pull/9926)。
- 修复版本热升级之后,新的 MQTT TLS 连接建立失败的问题 [#9810](https://github.com/emqx/emqx/pull/9810)。
diff --git a/lib-ce/emqx_modules/src/emqx_mod_acl_internal.erl b/lib-ce/emqx_modules/src/emqx_mod_acl_internal.erl
index 044a4e80d..e36b056f9 100644
--- a/lib-ce/emqx_modules/src/emqx_mod_acl_internal.erl
+++ b/lib-ce/emqx_modules/src/emqx_mod_acl_internal.erl
@@ -57,7 +57,7 @@ reload(Env) ->
unload(Env), load(Env).
description() ->
- "EMQ X Internal ACL Module".
+ "EMQX Internal ACL Module".
%%--------------------------------------------------------------------
%% ACL callbacks
%%--------------------------------------------------------------------
diff --git a/lib-ce/emqx_modules/src/emqx_mod_delayed.erl b/lib-ce/emqx_modules/src/emqx_mod_delayed.erl
index 8f2a816ba..62c0c5132 100644
--- a/lib-ce/emqx_modules/src/emqx_mod_delayed.erl
+++ b/lib-ce/emqx_modules/src/emqx_mod_delayed.erl
@@ -95,7 +95,7 @@ unload(_Env) ->
emqx_mod_sup:stop_child(?MODULE).
description() ->
- "EMQ X Delayed Publish Module".
+ "EMQX Delayed Publish Module".
%%--------------------------------------------------------------------
%% Hooks
%%--------------------------------------------------------------------
diff --git a/lib-ce/emqx_modules/src/emqx_mod_presence.erl b/lib-ce/emqx_modules/src/emqx_mod_presence.erl
index eb1019a76..b73a2b8d1 100644
--- a/lib-ce/emqx_modules/src/emqx_mod_presence.erl
+++ b/lib-ce/emqx_modules/src/emqx_mod_presence.erl
@@ -46,7 +46,7 @@ unload(_Env) ->
emqx_hooks:del('client.disconnected', {?MODULE, on_client_disconnected}).
description() ->
- "EMQ X Presence Module".
+ "EMQX Presence Module".
%%--------------------------------------------------------------------
%% Callbacks
%%--------------------------------------------------------------------
diff --git a/lib-ce/emqx_modules/src/emqx_mod_rewrite.erl b/lib-ce/emqx_modules/src/emqx_mod_rewrite.erl
index e40c1f3b9..c21211d78 100644
--- a/lib-ce/emqx_modules/src/emqx_mod_rewrite.erl
+++ b/lib-ce/emqx_modules/src/emqx_mod_rewrite.erl
@@ -71,7 +71,7 @@ unload(_) ->
emqx_hooks:del('message.publish', {?MODULE, rewrite_publish}).
description() ->
- "EMQ X Topic Rewrite Module".
+ "EMQX Topic Rewrite Module".
%%--------------------------------------------------------------------
%% Internal functions
%%--------------------------------------------------------------------
diff --git a/lib-ce/emqx_modules/src/emqx_mod_slow_subs.erl b/lib-ce/emqx_modules/src/emqx_mod_slow_subs.erl
index 199f130f0..cb6d55509 100644
--- a/lib-ce/emqx_modules/src/emqx_mod_slow_subs.erl
+++ b/lib-ce/emqx_modules/src/emqx_mod_slow_subs.erl
@@ -46,4 +46,4 @@ unload(_Env) ->
ok.
description() ->
- "EMQ X Slow Subscribers Statistics Module".
+ "EMQX Slow Subscribers Statistics Module".
diff --git a/lib-ce/emqx_modules/src/emqx_mod_subscription.erl b/lib-ce/emqx_modules/src/emqx_mod_subscription.erl
index 8b8851ea9..2fc5048a5 100644
--- a/lib-ce/emqx_modules/src/emqx_mod_subscription.erl
+++ b/lib-ce/emqx_modules/src/emqx_mod_subscription.erl
@@ -71,7 +71,7 @@ unload(_) ->
emqx_hooks:del('client.connected', {?MODULE, on_client_connected}).
description() ->
- "EMQ X Subscription Module".
+ "EMQX Subscription Module".
%%--------------------------------------------------------------------
%% Internal functions
%%--------------------------------------------------------------------
diff --git a/lib-ce/emqx_modules/src/emqx_mod_topic_metrics.erl b/lib-ce/emqx_modules/src/emqx_mod_topic_metrics.erl
index f28b9bce0..71ad1cb80 100644
--- a/lib-ce/emqx_modules/src/emqx_mod_topic_metrics.erl
+++ b/lib-ce/emqx_modules/src/emqx_mod_topic_metrics.erl
@@ -113,7 +113,7 @@ unload(_Env) ->
emqx_mod_sup:stop_child(?MODULE).
description() ->
- "EMQ X Topic Metrics Module".
+ "EMQX Topic Metrics Module".
on_message_publish(#message{topic = Topic, qos = QoS}) ->
case is_registered(Topic) of
diff --git a/lib-ce/emqx_modules/src/emqx_mod_trace.erl b/lib-ce/emqx_modules/src/emqx_mod_trace.erl
index d57296136..012dc9e73 100644
--- a/lib-ce/emqx_modules/src/emqx_mod_trace.erl
+++ b/lib-ce/emqx_modules/src/emqx_mod_trace.erl
@@ -28,7 +28,7 @@
-spec description() -> string().
description() ->
- "EMQ X Trace Module".
+ "EMQX Trace Module".
-spec load(any()) -> ok.
load(_Env) ->
diff --git a/lib-ce/emqx_modules/src/emqx_modules.appup.src b/lib-ce/emqx_modules/src/emqx_modules.appup.src
index 3f43fd093..3e1f7fb5d 100644
--- a/lib-ce/emqx_modules/src/emqx_modules.appup.src
+++ b/lib-ce/emqx_modules/src/emqx_modules.appup.src
@@ -1,85 +1,75 @@
%% -*- mode: erlang -*-
%% Unless you know what you are doing, DO NOT edit manually!!
{VSN,
- [{"4.4.8",[{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}]},
- {"4.4.7",[{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]}]},
- {"4.4.6",
- [{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}]},
- {"4.4.5",
- [{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]},
- {load_module,emqx_modules,brutal_purge,soft_purge,[]}]},
- {"4.4.4",
- [{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
- {load_module,emqx_modules,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]}]},
- {"4.4.3",
- [{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
- {load_module,emqx_modules,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]}]},
- {"4.4.2",
- [{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]},
- {load_module,emqx_modules,brutal_purge,soft_purge,[]}]},
- {"4.4.1",
- [{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
- {load_module,emqx_modules,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}]},
- {"4.4.0",
- [{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
- {load_module,emqx_modules,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]},
+ [{<<"4\\.4\\.[6-8]">>,
+ [{load_module,emqx_mod_acl_internal,brutal_purge,soft_purge,[]},
{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
{load_module,emqx_mod_presence,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_sup,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]}]},
+ {load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_slow_subs,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_topic_metrics,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_trace,brutal_purge,soft_purge,[]}
+ ]},
+ {<<"4\\.4\\.[1-5]">>,
+ [{load_module,emqx_mod_acl_internal,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_presence,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_slow_subs,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_topic_metrics,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_trace,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]},
+ {load_module,emqx_modules,brutal_purge,soft_purge,[]}
+ ]},
+ {"4.4.0",
+ [{load_module,emqx_mod_acl_internal,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_presence,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_slow_subs,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_topic_metrics,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_trace,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]},
+ {load_module,emqx_modules,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_sup,brutal_purge,soft_purge,[]}
+ ]},
{<<".*">>,[]}],
- [{"4.4.8",[{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}]},
- {"4.4.7",[{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]}]},
- {"4.4.6",
- [{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}]},
- {"4.4.5",
- [{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]},
- {load_module,emqx_modules,brutal_purge,soft_purge,[]}]},
- {"4.4.4",
- [{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
- {load_module,emqx_modules,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]}]},
- {"4.4.3",
- [{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
- {load_module,emqx_modules,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]}]},
- {"4.4.2",
- [{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]},
- {load_module,emqx_modules,brutal_purge,soft_purge,[]}]},
- {"4.4.1",
- [{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
- {load_module,emqx_modules,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}]},
- {"4.4.0",
- [{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
- {load_module,emqx_modules,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]},
+ [{<<"4\\.4\\.[6-8]">>,
+ [{load_module,emqx_mod_acl_internal,brutal_purge,soft_purge,[]},
{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
{load_module,emqx_mod_presence,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_sup,brutal_purge,soft_purge,[]},
- {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]}]},
+ {load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_slow_subs,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_topic_metrics,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_trace,brutal_purge,soft_purge,[]}
+ ]},
+ {<<"4\\.4\\.[1-5]">>,
+ [{load_module,emqx_mod_acl_internal,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_presence,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_slow_subs,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_topic_metrics,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_trace,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]},
+ {load_module,emqx_modules,brutal_purge,soft_purge,[]}
+ ]},
+ {"4.4.0",
+ [{load_module,emqx_mod_acl_internal,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_presence,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_slow_subs,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_topic_metrics,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_trace,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_trace_api,brutal_purge,soft_purge,[]},
+ {load_module,emqx_modules,brutal_purge,soft_purge,[]},
+ {load_module,emqx_mod_sup,brutal_purge,soft_purge,[]}
+ ]},
{<<".*">>,[]}]}.