diff --git a/apps/emqx_conf/src/emqx_conf.erl b/apps/emqx_conf/src/emqx_conf.erl index 1efeb4d69..f9e64ffa6 100644 --- a/apps/emqx_conf/src/emqx_conf.erl +++ b/apps/emqx_conf/src/emqx_conf.erl @@ -203,14 +203,30 @@ gen_config_md(Dir, SchemaModule, Lang) -> -spec schema_module() -> module(). schema_module() -> case os:getenv("SCHEMA_MOD") of - false -> emqx_conf_schema; - Value -> list_to_existing_atom(Value) + false -> + resolve_schema_module(); + Value -> + list_to_existing_atom(Value) end. %%-------------------------------------------------------------------- %% Internal functions %%-------------------------------------------------------------------- +-ifdef(TEST). +resolve_schema_module() -> + case os:getenv("PROFILE") of + "emqx" -> + emqx_conf_schema; + "emqx-enterprise" -> + emqx_enterprise_schema + end. +-else. +-spec resolve_schema_module() -> no_return(). +resolve_schema_module() -> + error("SCHEMA_MOD environment variable is not set"). +-endif. + %% @doc Make a resolver function that can be used to lookup the description by hocon_schema_json dump. make_desc_resolver(Lang) -> fun diff --git a/apps/emqx_management/src/emqx_mgmt_api_configs.erl b/apps/emqx_management/src/emqx_mgmt_api_configs.erl index 29afa9d09..d5879be36 100644 --- a/apps/emqx_management/src/emqx_mgmt_api_configs.erl +++ b/apps/emqx_management/src/emqx_mgmt_api_configs.erl @@ -38,12 +38,21 @@ -define(OPTS, #{rawconf_with_defaults => true, override_to => cluster}). -define(TAGS, ["Configs"]). +-if(?EMQX_RELEASE_EDITION == ee). +-define(ROOT_KEYS_EE, [ + <<"file_transfer">> +]). +-else. +-define(ROOT_KEYS_EE, []). +-endif. + -define(ROOT_KEYS, [ <<"dashboard">>, <<"alarm">>, <<"sys_topics">>, <<"sysmon">>, <<"log">> + | ?ROOT_KEYS_EE ]). %% erlfmt-ignore diff --git a/changes/ee/fix-11731.en.md b/changes/ee/fix-11731.en.md new file mode 100644 index 000000000..5584da337 --- /dev/null +++ b/changes/ee/fix-11731.en.md @@ -0,0 +1 @@ +Add file_transfer feature configs to hot-config schema.