refactor: change confs for dashboard listeners from array to map
Don't use arrays in the config path to make it easier to change configs via environments varibles.
This commit is contained in:
parent
7cc99284ba
commit
8e6b98af68
|
@ -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
|
||||||
|
@ -37,7 +33,6 @@ dashboard {
|
||||||
# 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(
|
||||||
|
@ -201,3 +206,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).
|
||||||
|
|
Loading…
Reference in New Issue