From 98ce7e8bbdf54a797032e6da197e42b5f669146e Mon Sep 17 00:00:00 2001 From: Andrew Mayorov Date: Fri, 26 May 2023 21:53:01 +0300 Subject: [PATCH 01/10] test(ft): ensure no division by zero in coverage proptest --- apps/emqx_ft/test/props/prop_emqx_ft_assembly.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/emqx_ft/test/props/prop_emqx_ft_assembly.erl b/apps/emqx_ft/test/props/prop_emqx_ft_assembly.erl index 9a2b7df0b..db2f0c0b2 100644 --- a/apps/emqx_ft/test/props/prop_emqx_ft_assembly.erl +++ b/apps/emqx_ft/test/props/prop_emqx_ft_assembly.erl @@ -58,7 +58,7 @@ prop_coverage_likely_incomplete() -> {filesize_t(), segsizes_t(), filesize_t()}, ?FORALL( Fragments, - noshrink(segments_t(Filesize, Segsizes, Hole)), + noshrink(segments_t(Filesize, Segsizes, (Hole rem max(Filesize, 1)))), ?TIMEOUT( ?COVERAGE_TIMEOUT, begin @@ -174,7 +174,7 @@ segment_t(Filesize, Segsizes, Hole) -> ?SUCHTHATMAYBE( {Offset, Size}, segment_t(Filesize, Segsizes), - (Hole rem Filesize) =< Offset orelse (Hole rem Filesize) > (Offset + Size) + Hole =< Offset orelse Hole > (Offset + Size) ). segment_t(Filesize, Segsizes) -> From 8ccee19aa594dae83211a779c824ddce9e82ff5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9F=90=E6=96=87?= Date: Sun, 28 May 2023 22:54:35 +0800 Subject: [PATCH 02/10] feat: support emqx_conf:update([telemetry],Conf). --- apps/emqx_telemetry/src/emqx_telemetry_config.erl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/emqx_telemetry/src/emqx_telemetry_config.erl b/apps/emqx_telemetry/src/emqx_telemetry_config.erl index 9419db939..6da23370b 100644 --- a/apps/emqx_telemetry/src/emqx_telemetry_config.erl +++ b/apps/emqx_telemetry/src/emqx_telemetry_config.erl @@ -53,7 +53,9 @@ set_telemetry_status(Status) -> end. pre_config_update(_, {set_telemetry_status, Status}, RawConf) -> - {ok, RawConf#{<<"enable">> => Status}}. + {ok, RawConf#{<<"enable">> => Status}}; +pre_config_update(_, NewConf, _OldConf) -> + {ok, NewConf}. post_config_update( _, @@ -65,6 +67,11 @@ post_config_update( case Status of true -> emqx_telemetry:start_reporting(); false -> emqx_telemetry:stop_reporting() + end; +post_config_update(_, _UpdateReq, NewConf, _OldConf, _AppEnvs) -> + case NewConf of + #{enable := true} -> emqx_telemetry:start_reporting(); + #{enable := false} -> emqx_telemetry:stop_reporting() end. cfg_update(Path, Action, Params) -> From dcfe985ee9a7ec9d1f120eb52730697da2450192 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Mon, 29 May 2023 10:58:30 +0800 Subject: [PATCH 03/10] fix: redact api request to hide auth token --- apps/emqx_dashboard/src/emqx_dashboard_bad_api.erl | 5 +++-- apps/emqx_utils/src/emqx_utils.app.src | 2 +- apps/emqx_utils/src/emqx_utils.erl | 3 +++ changes/ce/fix-10851.en.md | 1 + 4 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 changes/ce/fix-10851.en.md diff --git a/apps/emqx_dashboard/src/emqx_dashboard_bad_api.erl b/apps/emqx_dashboard/src/emqx_dashboard_bad_api.erl index 0e7489d2d..6d65ac081 100644 --- a/apps/emqx_dashboard/src/emqx_dashboard_bad_api.erl +++ b/apps/emqx_dashboard/src/emqx_dashboard_bad_api.erl @@ -21,11 +21,12 @@ -export([init/2]). init(Req0, State) -> - ?SLOG(warning, #{msg => "unexpected_api_access", request => Req0}), + RedactedReq = emqx_utils:redact(Req0), + ?SLOG(warning, #{msg => "unexpected_api_access", request => RedactedReq}), Req = cowboy_req:reply( 404, #{<<"content-type">> => <<"application/json">>}, <<"{\"code\": \"API_NOT_EXIST\", \"message\": \"Request Path Not Found\"}">>, - Req0 + RedactedReq ), {ok, Req, State}. diff --git a/apps/emqx_utils/src/emqx_utils.app.src b/apps/emqx_utils/src/emqx_utils.app.src index dff55bc86..605093875 100644 --- a/apps/emqx_utils/src/emqx_utils.app.src +++ b/apps/emqx_utils/src/emqx_utils.app.src @@ -2,7 +2,7 @@ {application, emqx_utils, [ {description, "Miscellaneous utilities for EMQX apps"}, % strict semver, bump manually! - {vsn, "5.0.1"}, + {vsn, "5.0.2"}, {modules, [ emqx_utils, emqx_utils_api, diff --git a/apps/emqx_utils/src/emqx_utils.erl b/apps/emqx_utils/src/emqx_utils.erl index e9b2a1f9e..2c6ddd9c1 100644 --- a/apps/emqx_utils/src/emqx_utils.erl +++ b/apps/emqx_utils/src/emqx_utils.erl @@ -575,6 +575,9 @@ try_to_existing_atom(Convert, Data, Encoding) -> is_sensitive_key(token) -> true; is_sensitive_key("token") -> true; is_sensitive_key(<<"token">>) -> true; +is_sensitive_key(authorization) -> true; +is_sensitive_key("authorization") -> true; +is_sensitive_key(<<"authorization">>) -> true; is_sensitive_key(password) -> true; is_sensitive_key("password") -> true; is_sensitive_key(<<"password">>) -> true; diff --git a/changes/ce/fix-10851.en.md b/changes/ce/fix-10851.en.md new file mode 100644 index 000000000..1dbd2a10e --- /dev/null +++ b/changes/ce/fix-10851.en.md @@ -0,0 +1 @@ +Obfuscated sensitive data in the bad API logging. From cb05406a00d33f22bb743ed8dcd2f6ab52f0dc38 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Thu, 25 May 2023 17:35:00 +0800 Subject: [PATCH 04/10] fix: reboot `emqx_license` app for join cluster --- apps/emqx_machine/src/emqx_machine_boot.erl | 67 +++++++++++---------- changes/ce/fix-10820.en.md | 6 ++ 2 files changed, 40 insertions(+), 33 deletions(-) create mode 100644 changes/ce/fix-10820.en.md diff --git a/apps/emqx_machine/src/emqx_machine_boot.erl b/apps/emqx_machine/src/emqx_machine_boot.erl index 2ac0f2e9b..068f6b716 100644 --- a/apps/emqx_machine/src/emqx_machine_boot.erl +++ b/apps/emqx_machine/src/emqx_machine_boot.erl @@ -126,39 +126,40 @@ reboot_apps() -> BaseRebootApps ++ ConfigApps. basic_reboot_apps() -> - CE = - ?BASIC_REBOOT_APPS ++ - [ - emqx_prometheus, - emqx_modules, - emqx_dashboard, - emqx_connector, - emqx_gateway, - emqx_resource, - emqx_rule_engine, - emqx_bridge, - emqx_plugin_libs, - emqx_management, - emqx_retainer, - emqx_exhook, - emqx_authn, - emqx_authz, - emqx_slow_subs, - emqx_auto_subscribe, - emqx_plugins - ], - case emqx_release:edition() of - ce -> - CE ++ [emqx_telemetry]; - ee -> - CE ++ - [ - emqx_s3, - emqx_ft, - emqx_eviction_agent, - emqx_node_rebalance - ] - end. + ?BASIC_REBOOT_APPS ++ + [ + emqx_prometheus, + emqx_modules, + emqx_dashboard, + emqx_connector, + emqx_gateway, + emqx_resource, + emqx_rule_engine, + emqx_bridge, + emqx_plugin_libs, + emqx_management, + emqx_retainer, + emqx_exhook, + emqx_authn, + emqx_authz, + emqx_slow_subs, + emqx_auto_subscribe, + emqx_plugins + ] ++ basic_reboot_apps_edition(emqx_release:edition()). + +basic_reboot_apps_edition(ce) -> + [emqx_telemetry]; +basic_reboot_apps_edition(ee) -> + [ + emqx_license, + emqx_s3, + emqx_ft, + emqx_eviction_agent, + emqx_node_rebalance + ]; +%% unexcepted edition, should not happen +basic_reboot_apps_edition(_) -> + []. sorted_reboot_apps() -> Apps = [{App, app_deps(App)} || App <- reboot_apps()], diff --git a/changes/ce/fix-10820.en.md b/changes/ce/fix-10820.en.md new file mode 100644 index 000000000..7462a3a08 --- /dev/null +++ b/changes/ce/fix-10820.en.md @@ -0,0 +1,6 @@ +In case the cluster updated license before the new node join in. The new node will not apply the updated license. +After this change, the new joined node will use the cluster's license key. + +Sometimes the new node must start with a outdated license. +e.g. use emqx-operator deployed and needed to scale up after license expired. +At the time the cluster's license key already updated by API/CLI, but the new node won't use it. From 6f903694292057d9f3bb6582936bdcd2d4013b0d Mon Sep 17 00:00:00 2001 From: JimMoen Date: Fri, 26 May 2023 11:12:45 +0800 Subject: [PATCH 05/10] fix: make dialyzer happy --- apps/emqx_machine/src/emqx_machine_boot.erl | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/emqx_machine/src/emqx_machine_boot.erl b/apps/emqx_machine/src/emqx_machine_boot.erl index 068f6b716..4c5740bad 100644 --- a/apps/emqx_machine/src/emqx_machine_boot.erl +++ b/apps/emqx_machine/src/emqx_machine_boot.erl @@ -24,6 +24,7 @@ -export([stop_port_apps/0]). -dialyzer({no_match, [basic_reboot_apps/0]}). +-dialyzer({no_match, [basic_reboot_apps_edition/1]}). -ifdef(TEST). -export([sorted_reboot_apps/1, reboot_apps/0]). From 4dee1a242975d49bfaa4c6230fc2c99aaddb0765 Mon Sep 17 00:00:00 2001 From: Zhongwen Deng Date: Mon, 29 May 2023 12:27:00 +0800 Subject: [PATCH 06/10] test: add more test for emqx_telemetry --- apps/emqx_telemetry/src/emqx_telemetry.erl | 2 +- .../src/emqx_telemetry_config.erl | 14 ++- .../test/emqx_telemetry_api_SUITE.erl | 96 +++++++++++-------- 3 files changed, 68 insertions(+), 44 deletions(-) diff --git a/apps/emqx_telemetry/src/emqx_telemetry.erl b/apps/emqx_telemetry/src/emqx_telemetry.erl index bf4004dce..bf00a1301 100644 --- a/apps/emqx_telemetry/src/emqx_telemetry.erl +++ b/apps/emqx_telemetry/src/emqx_telemetry.erl @@ -121,7 +121,7 @@ start_reporting() -> %% @doc Stop the reporting timer. %% This is an async notification which never fails. -%% This is a no-op in enterprise eidtion. +%% This is a no-op in enterprise edition. stop_reporting() -> gen_server:cast(?MODULE, stop_reporting). diff --git a/apps/emqx_telemetry/src/emqx_telemetry_config.erl b/apps/emqx_telemetry/src/emqx_telemetry_config.erl index 6da23370b..180ff5c36 100644 --- a/apps/emqx_telemetry/src/emqx_telemetry_config.erl +++ b/apps/emqx_telemetry/src/emqx_telemetry_config.erl @@ -32,11 +32,12 @@ -export([ on_server_start/0, on_server_stop/0, - is_official_version/1 + is_official_version/1, + is_official_version/0 ]). is_enabled() -> - IsOfficial = ?MODULE:is_official_version(emqx_release:version()), + IsOfficial = ?MODULE:is_official_version(), emqx_conf:get([telemetry, enable], IsOfficial). on_server_start() -> @@ -69,9 +70,9 @@ post_config_update( false -> emqx_telemetry:stop_reporting() end; post_config_update(_, _UpdateReq, NewConf, _OldConf, _AppEnvs) -> - case NewConf of - #{enable := true} -> emqx_telemetry:start_reporting(); - #{enable := false} -> emqx_telemetry:stop_reporting() + case maps:get(enable, NewConf, ?MODULE:is_official_version()) of + true -> emqx_telemetry:start_reporting(); + false -> emqx_telemetry:stop_reporting() end. cfg_update(Path, Action, Params) -> @@ -81,6 +82,9 @@ cfg_update(Path, Action, Params) -> #{override_to => cluster} ). +is_official_version() -> + is_official_version(emqx_release:version()). + is_official_version(Version) -> Pt = "^\\d+\\.\\d+(?:\\.\\d+)?(?:(-(?:alpha|beta|rc)\\.[1-9][0-9]*))?$", match =:= re:run(Version, Pt, [{capture, none}]). diff --git a/apps/emqx_telemetry/test/emqx_telemetry_api_SUITE.erl b/apps/emqx_telemetry/test/emqx_telemetry_api_SUITE.erl index e8289ff90..e0021080e 100644 --- a/apps/emqx_telemetry/test/emqx_telemetry_api_SUITE.erl +++ b/apps/emqx_telemetry/test/emqx_telemetry_api_SUITE.erl @@ -30,6 +30,7 @@ all() -> init_per_suite(Config) -> ok = emqx_common_test_helpers:load_config(emqx_modules_schema, ?BASE_CONF), + ok = emqx_common_test_helpers:load_config(emqx_telemetry_schema, ?BASE_CONF), ok = emqx_mgmt_api_test_util:init_suite( [emqx_conf, emqx_authn, emqx_authz, emqx_telemetry], fun set_special_configs/1 @@ -52,32 +53,26 @@ end_per_suite(_Config) -> ok. init_per_testcase(t_status_non_official, Config) -> - meck:new(emqx_telemetry, [non_strict, passthrough]), - meck:expect(emqx_telemetry, official_version, 1, false), + meck:new(emqx_telemetry_config, [non_strict, passthrough]), + meck:expect(emqx_telemetry_config, is_official_version, 0, false), + %% check non-official telemetry is disable by default + {ok, _} = emqx:update_config([telemetry], #{}), Config; -init_per_testcase(t_status, Config) -> - meck:new(emqx_telemetry, [non_strict, passthrough]), - meck:expect(emqx_telemetry, enable, fun() -> ok end), - {ok, _, _} = - request( - put, - uri(["telemetry", "status"]), - #{<<"enable">> => true} - ), +init_per_testcase(t_status_official, Config) -> + meck:new(emqx_telemetry_config, [non_strict, passthrough]), + meck:expect(emqx_telemetry_config, is_official_version, 0, true), + %% check official telemetry is enable by default + {ok, _} = emqx:update_config([telemetry], #{}), Config; init_per_testcase(_TestCase, Config) -> - {ok, _, _} = - request( - put, - uri(["telemetry", "status"]), - #{<<"enable">> => true} - ), + %% Force enable telemetry to check data. + {ok, _} = emqx:update_config([telemetry], #{<<"enable">> => true}), Config. end_per_testcase(t_status_non_official, _Config) -> - meck:unload(emqx_telemetry); + meck:unload(emqx_telemetry_config); end_per_testcase(t_status, _Config) -> - meck:unload(emqx_telemetry); + meck:unload(emqx_telemetry_config); end_per_testcase(_TestCase, _Config) -> ok. @@ -95,39 +90,50 @@ set_special_configs(_App) -> %% Tests %%------------------------------------------------------------------------------ -t_status(_) -> +%% official's telemetry is enabled by default +t_status_official(_) -> + check_status(true). + +%% non official's telemetry is disabled by default +t_status_non_official(_) -> + check_status(false). + +check_status(Default) -> + ct:pal("Check telemetry status:~p~n", [emqx_telemetry_config:is_official_version()]), + ?assertEqual(Default, is_telemetry_process_enabled()), ?assertMatch( {ok, 200, _}, request( put, uri(["telemetry", "status"]), - #{<<"enable">> => false} + #{<<"enable">> => (not Default)} ) ), {ok, 200, Result0} = request(get, uri(["telemetry", "status"])), - ?assertEqual( - #{<<"enable">> => false}, + #{<<"enable">> => (not Default)}, emqx_utils_json:decode(Result0) ), + ?assertEqual((not Default), is_telemetry_process_enabled()), ?assertMatch( {ok, 400, _}, request( put, uri(["telemetry", "status"]), - #{<<"enable">> => false} + #{<<"enable">> => (not Default)} ) ), + ?assertEqual((not Default), is_telemetry_process_enabled()), ?assertMatch( {ok, 200, _}, request( put, uri(["telemetry", "status"]), - #{<<"enable">> => true} + #{<<"enable">> => Default} ) ), @@ -135,30 +141,24 @@ t_status(_) -> request(get, uri(["telemetry", "status"])), ?assertEqual( - #{<<"enable">> => true}, + #{<<"enable">> => Default}, emqx_utils_json:decode(Result1) ), + ?assertEqual(Default, is_telemetry_process_enabled()), ?assertMatch( {ok, 400, _}, request( put, uri(["telemetry", "status"]), - #{<<"enable">> => true} + #{<<"enable">> => Default} ) - ). - -t_status_non_official(_) -> - ?assertMatch( - {ok, 200, _}, - request( - put, - uri(["telemetry", "status"]), - #{<<"enable">> => false} - ) - ). + ), + ?assertEqual(Default, is_telemetry_process_enabled()), + ok. t_data(_) -> + ?assert(is_telemetry_process_enabled()), {ok, 200, Result} = request(get, uri(["telemetry", "data"])), @@ -191,3 +191,23 @@ t_data(_) -> request(get, uri(["telemetry", "data"])), ok. + +%% Support emqx:update_config([telemetry], Conf). +t_conf_update(_) -> + Conf = emqx:get_raw_config([telemetry]), + ?assert(is_telemetry_process_enabled()), + {ok, 200, Result1} = request(get, uri(["telemetry", "status"])), + ?assertEqual(#{<<"enable">> => true}, emqx_utils_json:decode(Result1)), + {ok, _} = emqx:update_config([telemetry], Conf#{<<"enable">> => false}), + {ok, 200, Result2} = request(get, uri(["telemetry", "status"])), + ?assertEqual(#{<<"enable">> => false}, emqx_utils_json:decode(Result2)), + ?assertNot(is_telemetry_process_enabled()), + %% reset to true + {ok, _} = emqx:update_config([telemetry], Conf#{<<"enable">> => true}), + ?assert(is_telemetry_process_enabled()), + ok. + +is_telemetry_process_enabled() -> + %% timer is not undefined. + Timer = element(6, sys:get_state(emqx_telemetry)), + is_reference(Timer). From 8c814bc8615908f8925c7882253bd3b301f8c6f9 Mon Sep 17 00:00:00 2001 From: Zhongwen Deng Date: Fri, 26 May 2023 19:31:13 +0800 Subject: [PATCH 07/10] fix: only report enable authn/authz in telemetry --- apps/emqx_authn/src/emqx_authn.erl | 2 +- apps/emqx_authz/src/emqx_authz.erl | 2 +- apps/emqx_authz/test/emqx_authz_SUITE.erl | 2 +- changes/ce/fix-10833.en.md | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 changes/ce/fix-10833.en.md diff --git a/apps/emqx_authn/src/emqx_authn.erl b/apps/emqx_authn/src/emqx_authn.erl index 15efeb673..515c3bfd6 100644 --- a/apps/emqx_authn/src/emqx_authn.erl +++ b/apps/emqx_authn/src/emqx_authn.erl @@ -106,7 +106,7 @@ get_enabled_authns() -> AuthnTypes = lists:usort([ Type || #{authenticators := As} <- Chains, - #{id := Type} <- As + #{id := Type, enable := true} <- As ]), OverriddenListeners = lists:foldl( diff --git a/apps/emqx_authz/src/emqx_authz.erl b/apps/emqx_authz/src/emqx_authz.erl index c7db65992..7ceacdb68 100644 --- a/apps/emqx_authz/src/emqx_authz.erl +++ b/apps/emqx_authz/src/emqx_authz.erl @@ -417,7 +417,7 @@ do_authorize( end. get_enabled_authzs() -> - lists:usort([Type || #{type := Type} <- lookup()]). + lists:usort([Type || #{type := Type, enable := true} <- lookup()]). %%-------------------------------------------------------------------- %% Internal function diff --git a/apps/emqx_authz/test/emqx_authz_SUITE.erl b/apps/emqx_authz/test/emqx_authz_SUITE.erl index 9c1b7fd51..39c414617 100644 --- a/apps/emqx_authz/test/emqx_authz_SUITE.erl +++ b/apps/emqx_authz/test/emqx_authz_SUITE.erl @@ -366,7 +366,7 @@ t_get_enabled_authzs_none_enabled(_Config) -> ?assertEqual([], emqx_authz:get_enabled_authzs()). t_get_enabled_authzs_some_enabled(_Config) -> - {ok, _} = emqx_authz:update(?CMD_REPLACE, [?SOURCE4]), + {ok, _} = emqx_authz:update(?CMD_REPLACE, [?SOURCE4, ?SOURCE5#{<<"enable">> := false}]), ?assertEqual([postgresql], emqx_authz:get_enabled_authzs()). t_subscribe_deny_disconnect_publishes_last_will_testament(_Config) -> diff --git a/changes/ce/fix-10833.en.md b/changes/ce/fix-10833.en.md new file mode 100644 index 000000000..fb09e4542 --- /dev/null +++ b/changes/ce/fix-10833.en.md @@ -0,0 +1 @@ +Only include enabled authenticators and authorizers in telemetry report, not all of them. From 79f686149970d706e182ef0f674fe80b2a28e867 Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Mon, 29 May 2023 09:17:59 -0300 Subject: [PATCH 08/10] chore: prepare to tag v5.0.26 --- apps/emqx/include/emqx_release.hrl | 2 +- apps/emqx_dashboard/src/emqx_dashboard.app.src | 2 +- deploy/charts/emqx/Chart.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/emqx/include/emqx_release.hrl b/apps/emqx/include/emqx_release.hrl index f9154f987..e13dd0e52 100644 --- a/apps/emqx/include/emqx_release.hrl +++ b/apps/emqx/include/emqx_release.hrl @@ -32,7 +32,7 @@ %% `apps/emqx/src/bpapi/README.md' %% Community edition --define(EMQX_RELEASE_CE, "5.0.26-alpha.1"). +-define(EMQX_RELEASE_CE, "5.0.26"). %% Enterprise edition -define(EMQX_RELEASE_EE, "5.0.4"). diff --git a/apps/emqx_dashboard/src/emqx_dashboard.app.src b/apps/emqx_dashboard/src/emqx_dashboard.app.src index 02fbdfb74..04658ab3c 100644 --- a/apps/emqx_dashboard/src/emqx_dashboard.app.src +++ b/apps/emqx_dashboard/src/emqx_dashboard.app.src @@ -2,7 +2,7 @@ {application, emqx_dashboard, [ {description, "EMQX Web Dashboard"}, % strict semver, bump manually! - {vsn, "5.0.21"}, + {vsn, "5.0.22"}, {modules, []}, {registered, [emqx_dashboard_sup]}, {applications, [kernel, stdlib, mnesia, minirest, emqx, emqx_ctl]}, diff --git a/deploy/charts/emqx/Chart.yaml b/deploy/charts/emqx/Chart.yaml index ee2ae4be2..11bc95951 100644 --- a/deploy/charts/emqx/Chart.yaml +++ b/deploy/charts/emqx/Chart.yaml @@ -14,8 +14,8 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. -version: 5.0.25 +version: 5.0.26 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. -appVersion: 5.0.25 +appVersion: 5.0.26 From 1f5714b3f01b169deaf1cfac56ffdbb6985f53ff Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Mon, 29 May 2023 09:31:30 -0300 Subject: [PATCH 09/10] docs: Generate changelog for v5.0.26 --- changes/v5.0.26.en.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/changes/v5.0.26.en.md b/changes/v5.0.26.en.md index c79131bec..54f40eddb 100644 --- a/changes/v5.0.26.en.md +++ b/changes/v5.0.26.en.md @@ -1,4 +1,4 @@ -# +# v5.0.26 ## Enhancements @@ -105,3 +105,14 @@ - [#10817](https://github.com/emqx/emqx/pull/10817) Fix the error of not being able to configure `auto_restart_interval` as infinity - [#10818](https://github.com/emqx/emqx/pull/10818) Fixing `emqx_ctl traces` command. + +- [#10820](https://github.com/emqx/emqx/pull/10820) In case the cluster updated license before the new node join in. The new node will not apply the updated license. + After this change, the new joined node will use the cluster's license key. + + Sometimes the new node must start with a outdated license. + e.g. use emqx-operator deployed and needed to scale up after license expired. + At the time the cluster's license key already updated by API/CLI, but the new node won't use it. + +- [#10833](https://github.com/emqx/emqx/pull/10833) Only include enabled authenticators and authorizers in telemetry report, not all of them. + +- [#10851](https://github.com/emqx/emqx/pull/10851) Obfuscated sensitive data in the bad API logging. From d12c393abcda426d79cb1344294b49ef6cdc5824 Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Mon, 29 May 2023 16:46:26 -0300 Subject: [PATCH 10/10] ci(docker): don't fetch deps outside docker build context The dependencies outside EMQX are symlinked with full paths from the GH action environment. When we run `buildx`, the paths are all wrong, and the documentation generation fails when it tries to prepare the library paths. --- .github/workflows/build_and_push_docker_images.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build_and_push_docker_images.yaml b/.github/workflows/build_and_push_docker_images.yaml index 64fc6d5b0..8c426b2dc 100644 --- a/.github/workflows/build_and_push_docker_images.yaml +++ b/.github/workflows/build_and_push_docker_images.yaml @@ -97,7 +97,6 @@ jobs: env: PROFILE: ${{ steps.get_profile.outputs.PROFILE }} run: | - PROFILE=$PROFILE make -C source deps-$PROFILE zip -ryq source.zip source/* source/.[^.]* - uses: actions/upload-artifact@v3 with: