From c37097a15062c53125de58c855c67e1c27e27aa6 Mon Sep 17 00:00:00 2001 From: firest Date: Thu, 25 Jan 2024 22:58:16 +0800 Subject: [PATCH] feat(dashboard): expose the `swagger_support` option --- apps/emqx_dashboard/src/emqx_dashboard.erl | 3 ++- apps/emqx_dashboard/src/emqx_dashboard_schema.erl | 6 ++++++ rel/i18n/emqx_dashboard_schema.hocon | 5 +++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/apps/emqx_dashboard/src/emqx_dashboard.erl b/apps/emqx_dashboard/src/emqx_dashboard.erl index a4438f6c7..85647e67a 100644 --- a/apps/emqx_dashboard/src/emqx_dashboard.erl +++ b/apps/emqx_dashboard/src/emqx_dashboard.erl @@ -76,7 +76,8 @@ start_listeners(Listeners) -> security => [#{'basicAuth' => []}, #{'bearerAuth' => []}], swagger_global_spec => GlobalSpec, dispatch => dispatch(), - middlewares => [?EMQX_MIDDLE, cowboy_router, cowboy_handler] + middlewares => [?EMQX_MIDDLE, cowboy_router, cowboy_handler], + swagger_support => emqx:get_config([dashboard, swagger_support], true) }, {OkListeners, ErrListeners} = lists:foldl( diff --git a/apps/emqx_dashboard/src/emqx_dashboard_schema.erl b/apps/emqx_dashboard/src/emqx_dashboard_schema.erl index 59be9706e..5577b47c8 100644 --- a/apps/emqx_dashboard/src/emqx_dashboard_schema.erl +++ b/apps/emqx_dashboard/src/emqx_dashboard_schema.erl @@ -56,6 +56,7 @@ fields("dashboard") -> } )}, {cors, fun cors/1}, + {swagger_support, fun swagger_support/1}, {i18n_lang, fun i18n_lang/1}, {bootstrap_users_file, ?HOCON( @@ -272,6 +273,11 @@ cors(required) -> false; cors(desc) -> ?DESC(cors); cors(_) -> undefined. +swagger_support(type) -> boolean(); +swagger_support(default) -> true; +swagger_support(desc) -> ?DESC(swagger_support); +swagger_support(_) -> undefined. + %% TODO: change it to string type %% It will be up to the dashboard package which languages to support i18n_lang(type) -> ?ENUM([en, zh]); diff --git a/rel/i18n/emqx_dashboard_schema.hocon b/rel/i18n/emqx_dashboard_schema.hocon index 524e633aa..4ee5f32d8 100644 --- a/rel/i18n/emqx_dashboard_schema.hocon +++ b/rel/i18n/emqx_dashboard_schema.hocon @@ -143,4 +143,9 @@ ssl_options.desc: ssl_options.label: """SSL options""" +swagger_support.desc: +"""Enable or disable support for swagger API documentation.""" + +swagger_support.label: +"""Swagger Support""" }