Merge pull request #7658 from terry-xiaoyu/dashboard_conf_no_array
refactor: change confs for dashboard listeners from array to map
This commit is contained in:
commit
86e8498bce
|
@ -10,9 +10,7 @@ dashboard {
|
||||||
sample_interval = 10s
|
sample_interval = 10s
|
||||||
## JWT token expiration time.
|
## JWT token expiration time.
|
||||||
token_expired_time = 60m
|
token_expired_time = 60m
|
||||||
listeners = [
|
listeners.http {
|
||||||
{
|
|
||||||
protocol = http
|
|
||||||
num_acceptors = 4
|
num_acceptors = 4
|
||||||
max_connections = 512
|
max_connections = 512
|
||||||
bind = 18083
|
bind = 18083
|
||||||
|
@ -21,11 +19,9 @@ dashboard {
|
||||||
inet6 = false
|
inet6 = false
|
||||||
ipv6_v6only = false
|
ipv6_v6only = false
|
||||||
}
|
}
|
||||||
# ,
|
#listeners.https {
|
||||||
# {
|
|
||||||
# protocol = https
|
|
||||||
# bind = "127.0.0.1:18084"
|
# bind = "127.0.0.1:18084"
|
||||||
# num_acceptors = 2
|
# num_acceptors = 4
|
||||||
# backlog = 512
|
# backlog = 512
|
||||||
# send_timeout = 5s
|
# send_timeout = 5s
|
||||||
# inet6 = false
|
# inet6 = false
|
||||||
|
@ -36,8 +32,7 @@ dashboard {
|
||||||
# verify = verify_peer
|
# verify = verify_peer
|
||||||
# versions = ["tlsv1.3","tlsv1.2","tlsv1.1","tlsv1"]
|
# versions = ["tlsv1.3","tlsv1.2","tlsv1.1","tlsv1"]
|
||||||
# ciphers = ["TLS_AES_256_GCM_SHA384","TLS_AES_128_GCM_SHA256","TLS_CHACHA20_POLY1305_SHA256","TLS_AES_128_CCM_SHA256","TLS_AES_128_CCM_8_SHA256","ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-ECDSA-AES256-SHA384","ECDHE-RSA-AES256-SHA384","ECDHE-ECDSA-DES-CBC3-SHA","ECDH-ECDSA-AES256-GCM-SHA384","ECDH-RSA-AES256-GCM-SHA384","ECDH-ECDSA-AES256-SHA384","ECDH-RSA-AES256-SHA384","DHE-DSS-AES256-GCM-SHA384","DHE-DSS-AES256-SHA256","AES256-GCM-SHA384","AES256-SHA256","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES128-GCM-SHA256","ECDHE-ECDSA-AES128-SHA256","ECDHE-RSA-AES128-SHA256","ECDH-ECDSA-AES128-GCM-SHA256","ECDH-RSA-AES128-GCM-SHA256","ECDH-ECDSA-AES128-SHA256","ECDH-RSA-AES128-SHA256","DHE-DSS-AES128-GCM-SHA256","DHE-DSS-AES128-SHA256","AES128-GCM-SHA256","AES128-SHA256","ECDHE-ECDSA-AES256-SHA","ECDHE-RSA-AES256-SHA","DHE-DSS-AES256-SHA","ECDH-ECDSA-AES256-SHA","ECDH-RSA-AES256-SHA","AES256-SHA","ECDHE-ECDSA-AES128-SHA","ECDHE-RSA-AES128-SHA","DHE-DSS-AES128-SHA","ECDH-ECDSA-AES128-SHA","ECDH-RSA-AES128-SHA","AES128-SHA"]
|
# ciphers = ["TLS_AES_256_GCM_SHA384","TLS_AES_128_GCM_SHA256","TLS_CHACHA20_POLY1305_SHA256","TLS_AES_128_CCM_SHA256","TLS_AES_128_CCM_8_SHA256","ECDHE-ECDSA-AES256-GCM-SHA384","ECDHE-RSA-AES256-GCM-SHA384","ECDHE-ECDSA-AES256-SHA384","ECDHE-RSA-AES256-SHA384","ECDHE-ECDSA-DES-CBC3-SHA","ECDH-ECDSA-AES256-GCM-SHA384","ECDH-RSA-AES256-GCM-SHA384","ECDH-ECDSA-AES256-SHA384","ECDH-RSA-AES256-SHA384","DHE-DSS-AES256-GCM-SHA384","DHE-DSS-AES256-SHA256","AES256-GCM-SHA384","AES256-SHA256","ECDHE-ECDSA-AES128-GCM-SHA256","ECDHE-RSA-AES128-GCM-SHA256","ECDHE-ECDSA-AES128-SHA256","ECDHE-RSA-AES128-SHA256","ECDH-ECDSA-AES128-GCM-SHA256","ECDH-RSA-AES128-GCM-SHA256","ECDH-ECDSA-AES128-SHA256","ECDH-RSA-AES128-SHA256","DHE-DSS-AES128-GCM-SHA256","DHE-DSS-AES128-SHA256","AES128-GCM-SHA256","AES128-SHA256","ECDHE-ECDSA-AES256-SHA","ECDHE-RSA-AES256-SHA","DHE-DSS-AES256-SHA","ECDH-ECDSA-AES256-SHA","ECDH-RSA-AES256-SHA","AES256-SHA","ECDHE-ECDSA-AES128-SHA","ECDHE-RSA-AES128-SHA","DHE-DSS-AES128-SHA","ECDH-ECDSA-AES128-SHA","ECDH-RSA-AES128-SHA","AES128-SHA"]
|
||||||
# }
|
#}
|
||||||
]
|
|
||||||
|
|
||||||
## CORS Support. don't set cors true if you don't know what it means.
|
## CORS Support. don't set cors true if you don't know what it means.
|
||||||
# cors = false
|
# cors = false
|
||||||
|
|
|
@ -155,16 +155,10 @@ apps() ->
|
||||||
].
|
].
|
||||||
|
|
||||||
listeners(Listeners) ->
|
listeners(Listeners) ->
|
||||||
[
|
lists:map(fun({Protocol, Conf}) ->
|
||||||
begin
|
{Conf1, Bind} = ip_port(Conf),
|
||||||
Protocol = maps:get(protocol, ListenerOption0, http),
|
{listener_name(Protocol, Conf1), Protocol, Bind, ranch_opts(Conf1)}
|
||||||
{ListenerOption, Bind} = ip_port(ListenerOption0),
|
end, maps:to_list(Listeners)).
|
||||||
Name = listener_name(Protocol, ListenerOption),
|
|
||||||
RanchOptions = ranch_opts(maps:without([protocol], ListenerOption)),
|
|
||||||
{Name, Protocol, Bind, RanchOptions}
|
|
||||||
end
|
|
||||||
|| ListenerOption0 <- Listeners
|
|
||||||
].
|
|
||||||
|
|
||||||
ip_port(Opts) -> ip_port(maps:take(bind, Opts), Opts).
|
ip_port(Opts) -> ip_port(maps:take(bind, Opts), Opts).
|
||||||
|
|
||||||
|
|
|
@ -31,12 +31,7 @@ fields("dashboard") ->
|
||||||
[
|
[
|
||||||
{listeners,
|
{listeners,
|
||||||
sc(
|
sc(
|
||||||
hoconsc:array(
|
ref("listeners"),
|
||||||
hoconsc:union([
|
|
||||||
hoconsc:ref(?MODULE, "http"),
|
|
||||||
hoconsc:ref(?MODULE, "https")
|
|
||||||
])
|
|
||||||
),
|
|
||||||
#{
|
#{
|
||||||
desc =>
|
desc =>
|
||||||
"HTTP(s) listeners are identified by their protocol type and are\n"
|
"HTTP(s) listeners are identified by their protocol type and are\n"
|
||||||
|
@ -71,17 +66,27 @@ fields("dashboard") ->
|
||||||
{cors, fun cors/1},
|
{cors, fun cors/1},
|
||||||
{i18n_lang, fun i18n_lang/1}
|
{i18n_lang, fun i18n_lang/1}
|
||||||
];
|
];
|
||||||
fields("http") ->
|
fields("listeners") ->
|
||||||
[
|
[
|
||||||
{"protocol",
|
{"http",
|
||||||
sc(
|
sc(
|
||||||
hoconsc:enum([http, https]),
|
ref("http"),
|
||||||
#{
|
#{
|
||||||
desc => ?DESC("protocol"),
|
desc => "TCP listeners",
|
||||||
required => true,
|
required => {false, recursively}
|
||||||
default => http
|
|
||||||
}
|
}
|
||||||
)},
|
)},
|
||||||
|
{"https",
|
||||||
|
sc(
|
||||||
|
ref("https"),
|
||||||
|
#{
|
||||||
|
desc => "SSL listeners",
|
||||||
|
required => {false, recursively}
|
||||||
|
}
|
||||||
|
)}
|
||||||
|
];
|
||||||
|
fields("http") ->
|
||||||
|
[
|
||||||
{"bind", fun bind/1},
|
{"bind", fun bind/1},
|
||||||
{"num_acceptors",
|
{"num_acceptors",
|
||||||
sc(
|
sc(
|
||||||
|
@ -142,6 +147,8 @@ fields("https") ->
|
||||||
|
|
||||||
desc("dashboard") ->
|
desc("dashboard") ->
|
||||||
"Configuration for EMQX dashboard.";
|
"Configuration for EMQX dashboard.";
|
||||||
|
desc("listeners") ->
|
||||||
|
"Configuration for the dashboard listener.";
|
||||||
desc("http") ->
|
desc("http") ->
|
||||||
"Configuration for the dashboard listener (plaintext).";
|
"Configuration for the dashboard listener (plaintext).";
|
||||||
desc("https") ->
|
desc("https") ->
|
||||||
|
@ -201,3 +208,5 @@ i18n_lang(desc) -> "Internationalization language support.";
|
||||||
i18n_lang(_) -> undefined.
|
i18n_lang(_) -> undefined.
|
||||||
|
|
||||||
sc(Type, Meta) -> hoconsc:mk(Type, Meta).
|
sc(Type, Meta) -> hoconsc:mk(Type, Meta).
|
||||||
|
|
||||||
|
ref(Field) -> hoconsc:ref(?MODULE, Field).
|
||||||
|
|
|
@ -75,7 +75,7 @@ end_per_suite(_Config) ->
|
||||||
mria:stop().
|
mria:stop().
|
||||||
|
|
||||||
set_special_configs(emqx_management) ->
|
set_special_configs(emqx_management) ->
|
||||||
Listeners = [#{protocol => http, port => 8081}],
|
Listeners = #{http => #{port => 8081}},
|
||||||
Config = #{listeners => Listeners,
|
Config = #{listeners => Listeners,
|
||||||
applications => [#{id => "admin", secret => "public"}]},
|
applications => [#{id => "admin", secret => "public"}]},
|
||||||
emqx_config:put([emqx_management], Config),
|
emqx_config:put([emqx_management], Config),
|
||||||
|
|
|
@ -32,8 +32,11 @@ set_default_config() ->
|
||||||
set_default_config(<<"admin">>).
|
set_default_config(<<"admin">>).
|
||||||
|
|
||||||
set_default_config(DefaultUsername) ->
|
set_default_config(DefaultUsername) ->
|
||||||
Config = #{listeners => [#{protocol => http,
|
Config = #{listeners => #{
|
||||||
port => 18083}],
|
http => #{
|
||||||
|
port => 18083
|
||||||
|
}
|
||||||
|
},
|
||||||
default_username => DefaultUsername,
|
default_username => DefaultUsername,
|
||||||
default_password => <<"public">>,
|
default_password => <<"public">>,
|
||||||
i18n_lang => en
|
i18n_lang => en
|
||||||
|
|
Loading…
Reference in New Issue