From c2b1571134f99bd780114d5abcc770a170dfd767 Mon Sep 17 00:00:00 2001 From: firest Date: Mon, 21 Mar 2022 18:32:42 +0800 Subject: [PATCH 01/15] fix(auto_subscribe): make log if the topic is empty when auto subscribe --- .../src/emqx_mod_subscription.erl | 57 ++++++++++++++----- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/lib-ce/emqx_modules/src/emqx_mod_subscription.erl b/lib-ce/emqx_modules/src/emqx_mod_subscription.erl index 06178aee7..76b4b1ac9 100644 --- a/lib-ce/emqx_modules/src/emqx_mod_subscription.erl +++ b/lib-ce/emqx_modules/src/emqx_mod_subscription.erl @@ -20,6 +20,7 @@ -include_lib("emqx/include/emqx.hrl"). -include_lib("emqx/include/emqx_mqtt.hrl"). +-include_lib("emqx/include/logger.hrl"). %% emqx_gen_mod callbacks -export([ load/1 @@ -38,14 +39,29 @@ load(Topics) -> emqx_hooks:add('client.connected', {?MODULE, on_client_connected, [Topics]}). on_client_connected(#{clientid := ClientId, username := Username}, _ConnInfo = #{proto_ver := ProtoVer}, Topics) -> - Replace = fun(Topic) -> - rep(<<"%u">>, Username, rep(<<"%c">>, ClientId, Topic)) + + OptFun = case ProtoVer of + ?MQTT_PROTO_V5 -> fun(X) -> X end; + _ -> fun(#{qos := Qos}) -> #{qos => Qos} end end, - TopicFilters = case ProtoVer of - ?MQTT_PROTO_V5 -> [{Replace(Topic), SubOpts} || {Topic, SubOpts} <- Topics]; - _ -> [{Replace(Topic), #{qos => Qos}} || {Topic, #{qos := Qos}} <- Topics] - end, - self() ! {subscribe, TopicFilters}. + + Fold = fun({Topic, SubOpts}, Acc) -> + case rep(Topic, ClientId, Username) of + {error, _} -> + Acc; + <<>> -> + ?LOG(warning, "Topic can't be empty when auto subscribe"), + Acc; + NewTopic -> + [{NewTopic, OptFun(SubOpts)} | Acc] + end + end, + + case lists:foldl(Fold, [], Topics) of + [] -> ok; + TopicFilters -> + self() ! {subscribe, TopicFilters} + end. unload(_) -> emqx_hooks:del('client.connected', {?MODULE, on_client_connected}). @@ -56,10 +72,25 @@ description() -> %% Internal functions %%-------------------------------------------------------------------- -rep(<<"%c">>, ClientId, Topic) -> - emqx_topic:feed_var(<<"%c">>, ClientId, Topic); -rep(<<"%u">>, undefined, Topic) -> - Topic; -rep(<<"%u">>, Username, Topic) -> - emqx_topic:feed_var(<<"%u">>, Username, Topic). +rep(Topic, ClientId, Username) -> + Words = emqx_topic:words(Topic), + rep(Words, ClientId, Username, []). +rep([<<"%c">> | T], ClientId, Username, Acc) -> + rep(T, + ClientId, + Username, + [ClientId | Acc]); +rep([<<"%u">> | _], _, undefined, _) -> + ?LOG(error, "Username undefined when auto subscribe"), + {error, username_undefined}; +rep([<<"%u">> | T], ClientId, Username, Acc) -> + rep(T, + ClientId, + Username, + [Username | Acc]); +rep([H | T], ClientId, UserName, Acc) -> + rep(T, ClientId, UserName, [H | Acc]); + +rep([], _, _, Acc) -> + emqx_topic:join(lists:reverse(Acc)). From 4fe9275103429316d37120974d895c88f160e80b Mon Sep 17 00:00:00 2001 From: firest Date: Tue, 22 Mar 2022 10:08:52 +0800 Subject: [PATCH 02/15] chore(modules): update appup file --- .../emqx_modules/src/emqx_modules.appup.src | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/lib-ce/emqx_modules/src/emqx_modules.appup.src b/lib-ce/emqx_modules/src/emqx_modules.appup.src index a82421aec..01b9c6651 100644 --- a/lib-ce/emqx_modules/src/emqx_modules.appup.src +++ b/lib-ce/emqx_modules/src/emqx_modules.appup.src @@ -1,29 +1,39 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.3.4",[{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}]}, + [{"4.3.4", + [{load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]}, + {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}]}, {<<"4\\.3\\.[2-3]">>, - [{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}, + [{load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]}, + {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}, {load_module,emqx_mod_presence,brutal_purge,soft_purge,[]}]}, {"4.3.1", - [{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}, + [{load_module,emqx_mod_subscription,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_api_topic_metrics,brutal_purge,soft_purge,[]}]}, {"4.3.0", - [{update,emqx_mod_delayed,{advanced,[]}}, + [{load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]}, + {update,emqx_mod_delayed,{advanced,[]}}, {load_module,emqx_mod_presence,brutal_purge,soft_purge,[]}, {load_module,emqx_mod_api_topic_metrics,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.3.4",[{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}]}, + [{"4.3.4", + [{load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]}, + {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}]}, {<<"4\\.3\\.[2-3]">>, - [{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}, + [{load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]}, + {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}, {load_module,emqx_mod_presence,brutal_purge,soft_purge,[]}]}, {"4.3.1", - [{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}, + [{load_module,emqx_mod_subscription,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_api_topic_metrics,brutal_purge,soft_purge,[]}]}, {"4.3.0", - [{update,emqx_mod_delayed,{advanced,[]}}, + [{load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]}, + {update,emqx_mod_delayed,{advanced,[]}}, {load_module,emqx_mod_presence,brutal_purge,soft_purge,[]}, {load_module,emqx_mod_api_topic_metrics,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}]}. From c43f17920469eabc1b3a366369b345cefbcf622b Mon Sep 17 00:00:00 2001 From: firest Date: Tue, 22 Mar 2022 18:09:06 +0800 Subject: [PATCH 03/15] fix(mod_subscription): improve the log information --- lib-ce/emqx_modules/src/emqx_mod_subscription.erl | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib-ce/emqx_modules/src/emqx_mod_subscription.erl b/lib-ce/emqx_modules/src/emqx_mod_subscription.erl index 76b4b1ac9..1b6a2c1c7 100644 --- a/lib-ce/emqx_modules/src/emqx_mod_subscription.erl +++ b/lib-ce/emqx_modules/src/emqx_mod_subscription.erl @@ -47,10 +47,14 @@ on_client_connected(#{clientid := ClientId, username := Username}, _ConnInfo = # Fold = fun({Topic, SubOpts}, Acc) -> case rep(Topic, ClientId, Username) of - {error, _} -> + {error, Reason} -> + ?LOG(warning, "auto subscribe ignored, topic filter:~ts reason:~p~n", + [Topic, Reason]), Acc; <<>> -> - ?LOG(warning, "Topic can't be empty when auto subscribe"), + ?LOG(warning, "auto subscribe ignored, topic filter:~ts" + " reason: topic can't be empty~n", + [Topic]), Acc; NewTopic -> [{NewTopic, OptFun(SubOpts)} | Acc] @@ -82,7 +86,6 @@ rep([<<"%c">> | T], ClientId, Username, Acc) -> Username, [ClientId | Acc]); rep([<<"%u">> | _], _, undefined, _) -> - ?LOG(error, "Username undefined when auto subscribe"), {error, username_undefined}; rep([<<"%u">> | T], ClientId, Username, Acc) -> rep(T, From b12b72df994590a56590d25dd996ea2f220c9d54 Mon Sep 17 00:00:00 2001 From: firest Date: Wed, 23 Mar 2022 10:55:19 +0800 Subject: [PATCH 04/15] chore: update changes-4.3.md --- CHANGES-4.3.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES-4.3.md b/CHANGES-4.3.md index a7e161915..25760be08 100644 --- a/CHANGES-4.3.md +++ b/CHANGES-4.3.md @@ -50,6 +50,7 @@ File format: * Fix user or appid created, name only allow `^[A-Za-z]+[A-Za-z0-9-_]*$` * Fix subscribe http api crash by bad_qos `/mqtt/subscribe`,`/mqtt/subscribe_batch`. * Send DISCONNECT packet with reason code 0x98 if connection has been kicked [#7309] +* Auto subscribe to an empty topic will be simply ignored now ## v4.3.12 ### Important changes From 5275e6a30fab2531ee05ac15dcaede5321fc8567 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 23 Mar 2022 15:09:45 +0800 Subject: [PATCH 05/15] fix(rule): get the cached status when calling emqx_rule_engine:get_resource_status/1 --- .../emqx_rule_engine/src/emqx_rule_engine.erl | 9 +++---- .../src/emqx_rule_engine_api.erl | 26 ++++++++++++------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.erl b/apps/emqx_rule_engine/src/emqx_rule_engine.erl index 2eed25647..c8e69a17f 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.erl @@ -334,14 +334,11 @@ test_resource(#{type := Type, config := Config0}) -> -spec(get_resource_status(resource_id()) -> {ok, resource_status()} | {error, Reason :: term()}). get_resource_status(ResId) -> - case emqx_rule_registry:find_resource(ResId) of - {ok, #resource{type = ResType}} -> - {ok, #resource_type{on_status = {Mod, OnStatus}}} - = emqx_rule_registry:find_resource_type(ResType), - Status = fetch_resource_status(Mod, OnStatus, ResId), + case emqx_rule_registry:find_resource_params(ResId) of + {ok, #resource_params{status = Status}} -> {ok, Status}; not_found -> - {error, {resource_not_found, ResId}} + {error, resource_not_initialized} end. -spec(get_resource_params(resource_id()) -> {ok, map()} | {error, Reason :: term()}). diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine_api.erl b/apps/emqx_rule_engine/src/emqx_rule_engine_api.erl index 80de9be45..39ac1e9c2 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine_api.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_engine_api.erl @@ -295,13 +295,8 @@ do_create_resource(Create, ParsedParams) -> list_resources(#{}, _Params) -> Data0 = lists:foldr(fun maybe_record_to_map/2, [], emqx_rule_registry:get_resources()), - Data = lists:map(fun(Res = #{id := Id}) -> - Status = lists:all(fun(Node) -> - case rpc:call(Node, emqx_rule_registry, find_resource_params, [Id]) of - {ok, #resource_params{status = #{is_alive := true}}} -> true; - _ -> false - end - end, ekka_mnesia:running_nodes()), + Data = lists:map(fun(Res = #{id := ResId}) -> + Status = get_aggregated_status(ResId), maps:put(status, Status, Res) end, Data0), return({ok, Data}). @@ -309,12 +304,23 @@ list_resources(#{}, _Params) -> list_resources_by_type(#{type := Type}, _Params) -> return_all(emqx_rule_registry:get_resources_by_type(Type)). +get_aggregated_status(ResId) -> + lists:all(fun(Node) -> + case rpc:call(Node, emqx_rule_engine, get_resource_status, [ResId]) of + {ok, #{is_alive := true}} -> true; + _ -> false + end + end, ekka_mnesia:running_nodes()). + show_resource(#{id := Id}, _Params) -> case emqx_rule_registry:find_resource(Id) of {ok, R} -> Status = [begin - {ok, St} = rpc:call(Node, emqx_rule_engine, get_resource_status, [Id]), + St = case rpc:call(Node, emqx_rule_engine, get_resource_status, [Id]) of + {ok, St0} -> St0; + {error, _} -> #{is_alive => false} + end, maps:put(node, Node, St) end || Node <- ekka_mnesia:running_nodes()], return({ok, maps:put(status, Status, record_to_map(R))}); @@ -326,8 +332,8 @@ get_resource_status(#{id := Id}, _Params) -> case emqx_rule_engine:get_resource_status(Id) of {ok, Status} -> return({ok, Status}); - {error, {resource_not_found, ResId}} -> - return({error, 400, ?ERR_NO_RESOURCE(ResId)}) + {error, resource_not_initialized} -> + return({error, 400, ?ERR_NO_RESOURCE(Id)}) end. start_resource(#{id := Id}, _Params) -> From 99dfd8504ce4fb1645d063b9d9524d1bebe4a9d8 Mon Sep 17 00:00:00 2001 From: zhongwencool Date: Tue, 22 Mar 2022 22:55:56 +0800 Subject: [PATCH 06/15] fix: bad authorization format crash with 500 --- .../src/emqx_management.app.src | 2 +- apps/emqx_management/src/emqx_mgmt_http.erl | 7 +++--- lib-ce/emqx_dashboard/src/emqx_dashboard.erl | 22 +++++++++---------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/apps/emqx_management/src/emqx_management.app.src b/apps/emqx_management/src/emqx_management.app.src index e203c7a56..bee65781a 100644 --- a/apps/emqx_management/src/emqx_management.app.src +++ b/apps/emqx_management/src/emqx_management.app.src @@ -1,6 +1,6 @@ {application, emqx_management, [{description, "EMQ X Management API and CLI"}, - {vsn, "4.3.13"}, % strict semver, bump manually! + {vsn, "4.3.11"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_management_sup]}, {applications, [kernel,stdlib,minirest]}, diff --git a/apps/emqx_management/src/emqx_mgmt_http.erl b/apps/emqx_management/src/emqx_mgmt_http.erl index 8e92b7371..ced7d10b2 100644 --- a/apps/emqx_management/src/emqx_mgmt_http.erl +++ b/apps/emqx_management/src/emqx_mgmt_http.erl @@ -118,9 +118,10 @@ handle_request(_Method, _Path, Req) -> cowboy_req:reply(400, #{<<"content-type">> => <<"text/plain">>}, <<"Not found.">>, Req). authorize_appid(Req) -> - case cowboy_req:parse_header(<<"authorization">>, Req) of - {basic, AppId, AppSecret} -> emqx_mgmt_auth:is_authorized(AppId, AppSecret); - _ -> false + try + {basic, AppId, AppSecret} = cowboy_req:parse_header(<<"authorization">>, Req), + emqx_mgmt_auth:is_authorized(AppId, AppSecret) + catch _:_ -> false end. -ifdef(EMQX_ENTERPRISE). diff --git a/lib-ce/emqx_dashboard/src/emqx_dashboard.erl b/lib-ce/emqx_dashboard/src/emqx_dashboard.erl index 0390339d3..9ce60d51d 100644 --- a/lib-ce/emqx_dashboard/src/emqx_dashboard.erl +++ b/lib-ce/emqx_dashboard/src/emqx_dashboard.erl @@ -103,17 +103,17 @@ is_authorized(Req) -> is_authorized("/api/v4/auth", _Req) -> true; is_authorized(_Path, Req) -> - case cowboy_req:parse_header(<<"authorization">>, Req) of - {basic, Username, Password} -> - case emqx_dashboard_admin:check(iolist_to_binary(Username), - iolist_to_binary(Password)) of - ok -> true; - {error, Reason} -> - ?LOG(error, "[Dashboard] Authorization Failure: username=~s, reason=~p", - [Username, Reason]), - false - end; - _ -> false + try + {basic, Username, Password} = cowboy_req:parse_header(<<"authorization">>, Req), + case emqx_dashboard_admin:check(iolist_to_binary(Username), iolist_to_binary(Password)) of + ok -> true; + {error, Reason} -> + ?LOG(error, "[Dashboard] Authorization Failure: username=~s, reason=~p", + [Username, Reason]), + false + end + catch _:_ -> %% bad authorization header will crash. + false end. filter(#{app := emqx_modules}) -> true; From b993595c6d1d018f35ab6f4de4eb39ca63f3c13e Mon Sep 17 00:00:00 2001 From: zhongwencool Date: Wed, 23 Mar 2022 15:42:53 +0800 Subject: [PATCH 07/15] fix: add emqx_rule_funcs to appup.src --- .../src/emqx_rule_engine.appup.src | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src index 9f0e44379..fd6bbe862 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src @@ -2,11 +2,13 @@ {VSN, [{"4.3.7", [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}]}, {"4.3.6", [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.6"]}}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, @@ -15,6 +17,7 @@ [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.5"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -23,6 +26,7 @@ [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.4"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -31,6 +35,7 @@ [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.3"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -43,6 +48,7 @@ {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {apply,{emqx_stats,cancel_update,[rule_registery_stats]}}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, @@ -51,6 +57,7 @@ {update,emqx_rule_metrics,{advanced,["4.3.1"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {apply,{emqx_stats,cancel_update,[rule_registery_stats]}}, {load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, @@ -70,12 +77,14 @@ {<<".*">>,[]}], [{"4.3.7", [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}]}, {"4.3.6", [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.6"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, @@ -83,6 +92,7 @@ [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.5"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -91,6 +101,7 @@ [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.4"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -99,6 +110,7 @@ [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.3"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -108,6 +120,7 @@ [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.2"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {apply,{emqx_stats,cancel_update,[rule_registery_stats]}}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -118,6 +131,7 @@ [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.1"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {apply,{emqx_stats,cancel_update,[rule_registery_stats]}}, From e8c7388aa41dd50c98ba0373c2602666d281679a Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 23 Mar 2022 16:21:27 +0800 Subject: [PATCH 08/15] chore: update appup file for emqx_rule_engine --- .../src/emqx_rule_engine.appup.src | 47 +++++++++++++------ 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src index 9f0e44379..0ed0fee3a 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src @@ -1,10 +1,15 @@ %% -*- mode: erlang -*- +%% Unless you know what you are doing, DO NOT edit manually!! {VSN, [{"4.3.7", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}]}, {"4.3.6", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.6"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, @@ -12,7 +17,8 @@ {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, {"4.3.5", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.5"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, @@ -20,7 +26,8 @@ {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, {"4.3.4", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.4"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, @@ -28,7 +35,8 @@ {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, {"4.3.3", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.3"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, @@ -37,7 +45,8 @@ {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, {"4.3.2", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.2"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, @@ -47,7 +56,8 @@ {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, {"4.3.1", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.1"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -69,10 +79,14 @@ {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], [{"4.3.7", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}]}, {"4.3.6", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.6"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, @@ -80,7 +94,8 @@ {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, {"4.3.5", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.5"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, @@ -88,7 +103,8 @@ {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, {"4.3.4", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.4"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, @@ -96,7 +112,8 @@ {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, {"4.3.3", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.3"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, @@ -105,7 +122,8 @@ {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, {"4.3.2", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.2"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, @@ -115,7 +133,8 @@ {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, {"4.3.1", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.1"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, From a2085555e9a076c55f306b3b4516176b13d7e4a6 Mon Sep 17 00:00:00 2001 From: firest Date: Wed, 23 Mar 2022 17:37:06 +0800 Subject: [PATCH 09/15] fix(mod_subscription): fix test case error --- lib-ce/emqx_modules/test/emqx_mod_subscription_SUITE.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib-ce/emqx_modules/test/emqx_mod_subscription_SUITE.erl b/lib-ce/emqx_modules/test/emqx_mod_subscription_SUITE.erl index c2905754b..89a2678ef 100644 --- a/lib-ce/emqx_modules/test/emqx_mod_subscription_SUITE.erl +++ b/lib-ce/emqx_modules/test/emqx_mod_subscription_SUITE.erl @@ -60,7 +60,7 @@ t_suboption(_) -> Client_info = fun(Key, Client) -> maps:get(Key, maps:from_list(emqtt:info(Client)), undefined) end, Suboption = #{qos => ?QOS_2, nl => 1, rap => 1, rh => 2}, ?assertEqual(ok, emqx_mod_subscription:load([{<<"connected/%c/%u">>, Suboption}])), - {ok, C1} = emqtt:start_link([{proto_ver, v5}]), + {ok, C1} = emqtt:start_link([{proto_ver, v5}, {username, "admin"}]), {ok, _} = emqtt:connect(C1), timer:sleep(200), [CPid1] = emqx_cm:lookup_channels(Client_info(clientid, C1)), @@ -69,7 +69,7 @@ t_suboption(_) -> ?assertMatch({Sub1, #{qos := 2, nl := 1, rap := 1, rh := 2, subid := _}}, Suboption1), ok = emqtt:disconnect(C1), %% The subscription option is not valid for MQTT V3.1.1 - {ok, C2} = emqtt:start_link([{proto_ver, v4}]), + {ok, C2} = emqtt:start_link([{proto_ver, v4}, {username, "admin"}]), {ok, _} = emqtt:connect(C2), timer:sleep(200), [CPid2] = emqx_cm:lookup_channels(Client_info(clientid, C2)), From ac8bb41ea866fb22a018977253139afc9d31df8b Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 23 Mar 2022 18:25:19 +0800 Subject: [PATCH 10/15] fix(doc): update CHANGES-4.3.md for #7374 --- CHANGES-4.3.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGES-4.3.md b/CHANGES-4.3.md index 25760be08..146f29e23 100644 --- a/CHANGES-4.3.md +++ b/CHANGES-4.3.md @@ -31,7 +31,9 @@ File format: * Add load control app for future development. * Change the precision of float to 17 digits after the decimal point when formatting a float using payload templates of rule actions. The old precision is 10 digits before - this change. + this change. [#7336] +* Return the cached resource status when querying a resource using HTTP APIs. + This is to avoid blocking the HTTP request if the resource is unavailable. [#7374] ### Bug fixes From a4d2aa1dd4ecdea7df8a89207fca2ddbaa9fb1c9 Mon Sep 17 00:00:00 2001 From: JianBo He Date: Wed, 23 Mar 2022 18:11:14 +0800 Subject: [PATCH 11/15] chore: correct the app.src & appup.src --- apps/emqx_lwm2m/src/emqx_lwm2m.appup.src | 12 ++++++++---- apps/emqx_web_hook/src/emqx_web_hook.app.src | 2 +- apps/emqx_web_hook/src/emqx_web_hook.appup.src | 14 ++++---------- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/apps/emqx_lwm2m/src/emqx_lwm2m.appup.src b/apps/emqx_lwm2m/src/emqx_lwm2m.appup.src index e9f270397..a25d6cae1 100644 --- a/apps/emqx_lwm2m/src/emqx_lwm2m.appup.src +++ b/apps/emqx_lwm2m/src/emqx_lwm2m.appup.src @@ -6,15 +6,19 @@ [{load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}, - {<<"4\\.3\\.[3-5]">>, + {<<"4\\.3\\.[3-4]">>, [{load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}], + {load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}, + {"4.3.5", + [{load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}], [{<<"4\\.3\\.[0-1]">>, [{restart_application,emqx_lwm2m}]}, {"4.3.2", [{load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}, - {<<"4\\.3\\.[3-5]">>, + {<<"4\\.3\\.[3-4]">>, [{load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}]}. + {load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}, + {"4.3.5", + [{load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}]}. diff --git a/apps/emqx_web_hook/src/emqx_web_hook.app.src b/apps/emqx_web_hook/src/emqx_web_hook.app.src index 64cd28784..acabcd954 100644 --- a/apps/emqx_web_hook/src/emqx_web_hook.app.src +++ b/apps/emqx_web_hook/src/emqx_web_hook.app.src @@ -1,6 +1,6 @@ {application, emqx_web_hook, [{description, "EMQ X WebHook Plugin"}, - {vsn, "4.3.10"}, % strict semver, bump manually! + {vsn, "4.3.9"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_web_hook_sup]}, {applications, [kernel,stdlib,ehttpc]}, diff --git a/apps/emqx_web_hook/src/emqx_web_hook.appup.src b/apps/emqx_web_hook/src/emqx_web_hook.appup.src index d90663cca..7b3be1b13 100644 --- a/apps/emqx_web_hook/src/emqx_web_hook.appup.src +++ b/apps/emqx_web_hook/src/emqx_web_hook.appup.src @@ -1,34 +1,28 @@ %% -*- mode: erlang -*- {VSN, - [{<<"4\\.3\\.[0-2]$">>, + [{<<"4\\.3\\.[0-2]">>, [{apply,{application,stop,[emqx_web_hook]}}, {load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, - {<<"4\\.3\\.[3-7]$">>, + {<<"4\\.3\\.[3-7]">>, [{apply,{application,stop,[emqx_web_hook]}}, {load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {"4.3.8", [{load_module,emqx_web_hook,brutal_purge,soft_purge,[]}]}, - {"4.3.9", - [ %% nothing so far - ]}, {<<".*">>,[]}], - [{<<"4\\.3\\.[0-2]$">>, + [{<<"4\\.3\\.[0-2]">>, [{apply,{application,stop,[emqx_web_hook]}}, {load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, - {<<"4\\.3\\.[3-7]$">>, + {<<"4\\.3\\.[3-7]">>, [{apply,{application,stop,[emqx_web_hook]}}, {load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {"4.3.8", [{load_module,emqx_web_hook,brutal_purge,soft_purge,[]}]}, - {"4.3.9", - [ %% nothing so far - ]}, {<<".*">>,[]}]}. From 5492ab2cc986c376a834d7c0db927985844453e9 Mon Sep 17 00:00:00 2001 From: JianBo He Date: Wed, 23 Mar 2022 18:33:41 +0800 Subject: [PATCH 12/15] chore(bridge-mqtt): use `VSN` placeholder instead of vsn number --- apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.appup.src | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 fdf2dec81..5aa48cea7 100644 --- a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.appup.src +++ b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.appup.src @@ -1,6 +1,5 @@ %% -*-: erlang -*- - -{"4.3.4", +{VSN, [ {"4.3.3", [ {load_module, emqx_bridge_mqtt, brutal_purge, soft_purge, []} From b76372e6213f218efa16f703f2194019af97314f Mon Sep 17 00:00:00 2001 From: JianBo He Date: Wed, 23 Mar 2022 19:29:58 +0800 Subject: [PATCH 13/15] chore: remove duplicated emqx_rule_funcs in appup.src --- apps/emqx_rule_engine/src/emqx_rule_engine.appup.src | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src index c71a78d19..0ed0fee3a 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src @@ -12,7 +12,6 @@ {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.6"]}}, - {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, @@ -22,7 +21,6 @@ {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.5"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, - {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -32,7 +30,6 @@ {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.4"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, - {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -42,7 +39,6 @@ {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.3"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, - {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -56,7 +52,6 @@ {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {apply,{emqx_stats,cancel_update,[rule_registery_stats]}}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, - {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, @@ -66,7 +61,6 @@ {update,emqx_rule_metrics,{advanced,["4.3.1"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, - {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {apply,{emqx_stats,cancel_update,[rule_registery_stats]}}, {load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, @@ -96,7 +90,6 @@ {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.6"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, - {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, @@ -105,7 +98,6 @@ {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.5"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, - {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -115,7 +107,6 @@ {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.4"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, - {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -125,7 +116,6 @@ {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.3"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, - {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -136,7 +126,6 @@ {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.2"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, - {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {apply,{emqx_stats,cancel_update,[rule_registery_stats]}}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -148,7 +137,6 @@ {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {update,emqx_rule_metrics,{advanced,["4.3.1"]}}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, - {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {apply,{emqx_stats,cancel_update,[rule_registery_stats]}}, From 3868fb088cc0e2c2a5f447ad9cd1815ad54d93ca Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Wed, 23 Mar 2022 13:34:00 +0100 Subject: [PATCH 14/15] chore: bump emqx_web_hook to 4.3.10 --- apps/emqx_web_hook/src/emqx_web_hook.app.src | 2 +- apps/emqx_web_hook/src/emqx_web_hook.appup.src | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/emqx_web_hook/src/emqx_web_hook.app.src b/apps/emqx_web_hook/src/emqx_web_hook.app.src index acabcd954..64cd28784 100644 --- a/apps/emqx_web_hook/src/emqx_web_hook.app.src +++ b/apps/emqx_web_hook/src/emqx_web_hook.app.src @@ -1,6 +1,6 @@ {application, emqx_web_hook, [{description, "EMQ X WebHook Plugin"}, - {vsn, "4.3.9"}, % strict semver, bump manually! + {vsn, "4.3.10"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_web_hook_sup]}, {applications, [kernel,stdlib,ehttpc]}, diff --git a/apps/emqx_web_hook/src/emqx_web_hook.appup.src b/apps/emqx_web_hook/src/emqx_web_hook.appup.src index 7b3be1b13..3f0980b3c 100644 --- a/apps/emqx_web_hook/src/emqx_web_hook.appup.src +++ b/apps/emqx_web_hook/src/emqx_web_hook.appup.src @@ -12,6 +12,10 @@ {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {"4.3.8", [{load_module,emqx_web_hook,brutal_purge,soft_purge,[]}]}, + {"4.3.9", + [ %% nothing so far + %% 4.3.9 is taken by release 4.3.12 + ]}, {<<".*">>,[]}], [{<<"4\\.3\\.[0-2]">>, [{apply,{application,stop,[emqx_web_hook]}}, @@ -25,4 +29,8 @@ {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {"4.3.8", [{load_module,emqx_web_hook,brutal_purge,soft_purge,[]}]}, + {"4.3.9", + [ %% nothing so far + %% 4.3.9 is taken by release 4.3.12 + ]}, {<<".*">>,[]}]}. From 6e08ede0b026fd209b26732ade0735122269295e Mon Sep 17 00:00:00 2001 From: JianBo He Date: Thu, 24 Mar 2022 07:38:42 +0800 Subject: [PATCH 15/15] chore: update appup.src files by update-appup.sh --- .../src/emqx_rule_engine.appup.src | 8 ++++++-- lib-ce/emqx_modules/src/emqx_modules.appup.src | 14 ++++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src index 8c42ac493..0028cc988 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src @@ -2,7 +2,9 @@ %% Unless you know what you are doing, DO NOT edit manually!! {VSN, [{"4.4.1", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}]}, {"4.4.0", @@ -16,7 +18,9 @@ {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], [{"4.4.1", - [{load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}]}, {"4.4.0", diff --git a/lib-ce/emqx_modules/src/emqx_modules.appup.src b/lib-ce/emqx_modules/src/emqx_modules.appup.src index 9176467c3..7e79063f8 100644 --- a/lib-ce/emqx_modules/src/emqx_modules.appup.src +++ b/lib-ce/emqx_modules/src/emqx_modules.appup.src @@ -1,16 +1,22 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.4.1",[{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}]}, + [{"4.4.1", + [{load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]}, + {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}]}, {"4.4.0", - [{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}, + [{load_module,emqx_mod_subscription,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,[]}]}, {<<".*">>,[]}], - [{"4.4.1",[{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}]}, + [{"4.4.1", + [{load_module,emqx_mod_subscription,brutal_purge,soft_purge,[]}, + {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}]}, {"4.4.0", - [{load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}, + [{load_module,emqx_mod_subscription,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,[]}]},