From e3c16be3c4b3bc2691802212f2c5736d981f5bb4 Mon Sep 17 00:00:00 2001 From: Andrew Mayorov Date: Thu, 8 Jun 2023 08:13:42 +0300 Subject: [PATCH] fix(ftschema): ensure `translate` follow `emqx_config` behavior So that atom keys won't unexpectedly get to converters / validators. --- apps/emqx_ft/src/emqx_ft_schema.erl | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/apps/emqx_ft/src/emqx_ft_schema.erl b/apps/emqx_ft/src/emqx_ft_schema.erl index d7df09a54..6ee7c5e10 100644 --- a/apps/emqx_ft/src/emqx_ft_schema.erl +++ b/apps/emqx_ft/src/emqx_ft_schema.erl @@ -288,12 +288,7 @@ validator(filename) -> ]; validator(backend) -> fun(Config) -> - Enabled = maps:filter( - fun(_, Backend) -> - maps:get(enable, Backend, false) or maps:get(<<"enable">>, Backend, false) - end, - Config - ), + Enabled = maps:filter(fun(_, #{<<"enable">> := E}) -> E end, Config), case maps:to_list(Enabled) of [{_Type, _BackendConfig}] -> ok; @@ -334,12 +329,9 @@ ref(Ref) -> translate(Conf) -> [Root] = roots(), - maps:get( - Root, - hocon_tconf:check_plain( - ?MODULE, #{atom_to_binary(Root) => Conf}, #{atom_key => true}, [Root] - ) - ). + RootRaw = atom_to_binary(Root), + ConfChecked = hocon_tconf:check_plain(?MODULE, #{RootRaw => Conf}, #{}, [Root]), + emqx_utils_maps:unsafe_atom_key_map(maps:get(RootRaw, ConfChecked)). -spec backend(emqx_config:config()) -> {_Type :: atom(), emqx_config:config()}.