65 lines
2.4 KiB
Erlang
65 lines
2.4 KiB
Erlang
%%-*- mode: erlang -*-
|
|
|
|
{mapping, "exhook.request_failed_action", "emqx_exhook.request_failed_action", [
|
|
{default, "deny"},
|
|
{datatype, {enum, [ignore, deny]}}
|
|
]}.
|
|
|
|
{mapping, "exhook.request_timeout", "emqx_exhook.request_timeout", [
|
|
{default, "5s"},
|
|
{datatype, {duration, ms}}
|
|
]}.
|
|
|
|
{mapping, "exhook.auto_reconnect", "emqx_exhook.auto_reconnect", [
|
|
{default, "60s"},
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{translation, "emqx_exhook.auto_reconnect", fun(Conf) ->
|
|
case cuttlefish:conf_get("exhook.auto_reconnect", Conf) of
|
|
"false" -> false;
|
|
Dur ->
|
|
case cuttlefish_duration:parse(Dur, ms) of
|
|
Ms when is_integer(Ms) -> Ms;
|
|
{error, Reason} -> error(Reason)
|
|
end
|
|
end
|
|
end}.
|
|
|
|
{mapping, "exhook.server.$name.url", "emqx_exhook.servers", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{mapping, "exhook.server.$name.ssl.cacertfile", "emqx_exhook.servers", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{mapping, "exhook.server.$name.ssl.certfile", "emqx_exhook.servers", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{mapping, "exhook.server.$name.ssl.keyfile", "emqx_exhook.servers", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{translation, "emqx_exhook.servers", fun(Conf) ->
|
|
Filter = fun(Opts) -> [{K, V} || {K, V} <- Opts, V =/= undefined] end,
|
|
ServerOptions = fun(Prefix) ->
|
|
case http_uri:parse(cuttlefish:conf_get(Prefix ++ ".url", Conf)) of
|
|
{ok, {http, _, Host, Port, _, _}} ->
|
|
[{scheme, http}, {host, Host}, {port, Port}];
|
|
{ok, {https, _, Host, Port, _, _}} ->
|
|
[{scheme, https}, {host, Host}, {port, Port},
|
|
{ssl_options,
|
|
Filter([{ssl, true},
|
|
{certfile, cuttlefish:conf_get(Prefix ++ ".ssl.certfile", Conf, undefined)},
|
|
{keyfile, cuttlefish:conf_get(Prefix ++ ".ssl.keyfile", Conf, undefined)},
|
|
{cacertfile, cuttlefish:conf_get(Prefix ++ ".ssl.cacertfile", Conf, undefined)}
|
|
])}];
|
|
_ -> error(invalid_server_options)
|
|
end
|
|
end,
|
|
[{list_to_atom(Name), ServerOptions("exhook.server." ++ Name)}
|
|
|| {["exhook", "server", Name, "url"], _} <- cuttlefish_variable:filter_by_prefix("exhook.server", Conf)]
|
|
end}.
|