feat(influx): accept wrapped secrets as passwords

This commit is contained in:
Andrew Mayorov 2023-11-13 14:39:43 +07:00
parent 7d6c9d2daa
commit 5d620465e2
No known key found for this signature in database
GPG Key ID: 2837C62ACFBFED5D
2 changed files with 7 additions and 11 deletions

View File

@ -1,6 +1,6 @@
{application, emqx_bridge_influxdb, [ {application, emqx_bridge_influxdb, [
{description, "EMQX Enterprise InfluxDB Bridge"}, {description, "EMQX Enterprise InfluxDB Bridge"},
{vsn, "0.1.5"}, {vsn, "0.1.6"},
{registered, []}, {registered, []},
{applications, [ {applications, [
kernel, kernel,

View File

@ -192,20 +192,14 @@ fields(influxdb_api_v1) ->
[ [
{database, mk(binary(), #{required => true, desc => ?DESC("database")})}, {database, mk(binary(), #{required => true, desc => ?DESC("database")})},
{username, mk(binary(), #{desc => ?DESC("username")})}, {username, mk(binary(), #{desc => ?DESC("username")})},
{password, {password, emqx_schema_secret:mk(#{desc => ?DESC("password")})}
mk(binary(), #{
desc => ?DESC("password"),
format => <<"password">>,
sensitive => true,
converter => fun emqx_schema:password_converter/2
})}
] ++ emqx_connector_schema_lib:ssl_fields(); ] ++ emqx_connector_schema_lib:ssl_fields();
fields(influxdb_api_v2) -> fields(influxdb_api_v2) ->
fields(common) ++ fields(common) ++
[ [
{bucket, mk(binary(), #{required => true, desc => ?DESC("bucket")})}, {bucket, mk(binary(), #{required => true, desc => ?DESC("bucket")})},
{org, mk(binary(), #{required => true, desc => ?DESC("org")})}, {org, mk(binary(), #{required => true, desc => ?DESC("org")})},
{token, mk(binary(), #{required => true, desc => ?DESC("token")})} {token, emqx_schema_secret:mk(#{required => true, desc => ?DESC("token")})}
] ++ emqx_connector_schema_lib:ssl_fields(). ] ++ emqx_connector_schema_lib:ssl_fields().
server() -> server() ->
@ -363,7 +357,8 @@ protocol_config(#{
{version, v2}, {version, v2},
{bucket, str(Bucket)}, {bucket, str(Bucket)},
{org, str(Org)}, {org, str(Org)},
{token, Token} %% TODO: teach `influxdb` to accept 0-arity closures as passwords.
{token, emqx_secret:unwrap(Token)}
] ++ ssl_config(SSL). ] ++ ssl_config(SSL).
ssl_config(#{enable := false}) -> ssl_config(#{enable := false}) ->
@ -383,7 +378,8 @@ username(_) ->
[]. [].
password(#{password := Password}) -> password(#{password := Password}) ->
[{password, str(Password)}]; %% TODO: teach `influxdb` to accept 0-arity closures as passwords.
[{password, emqx_secret:unwrap(Password)}];
password(_) -> password(_) ->
[]. [].