diff --git a/apps/emqx/src/emqx_schema.erl b/apps/emqx/src/emqx_schema.erl index a80be2424..2d71a1d69 100644 --- a/apps/emqx/src/emqx_schema.erl +++ b/apps/emqx/src/emqx_schema.erl @@ -331,10 +331,7 @@ fields("mqtt") -> ]; fields("zone") -> - Fields = ["mqtt", "stats", "flapping_detect", "force_shutdown", - "conn_congestion", "rate_limit", "quota", "force_gc", - "overload_protection" - ], + Fields = emqx_zone_schema:roots(), [{F, ref(emqx_zone_schema, F)} || F <- Fields]; fields("rate_limit") -> diff --git a/apps/emqx/src/emqx_zone_schema.erl b/apps/emqx/src/emqx_zone_schema.erl index 013ffb22f..1d24f9481 100644 --- a/apps/emqx/src/emqx_zone_schema.erl +++ b/apps/emqx/src/emqx_zone_schema.erl @@ -20,7 +20,12 @@ namespace() -> zone. -roots() -> []. +%% this shcema module is not used at root level. +%% roots are added only for document generation. +roots() -> ["mqtt", "stats", "flapping_detect", "force_shutdown", + "conn_congestion", "rate_limit", "quota", "force_gc", + "overload_protection" + ]. %% zone schemas are clones from the same name from root level %% only not allowed to have default values.