fix(syskeeper): homogenize the Syskeeper bridge and update license data

This commit is contained in:
firest 2023-11-10 10:42:53 +08:00
parent 548e39e799
commit 447c933ff8
8 changed files with 61 additions and 27 deletions

View File

@ -93,7 +93,8 @@
T == iotdb;
T == kinesis_producer;
T == greptimedb;
T == azure_event_hub_producer
T == azure_event_hub_producer;
T == syskeeper_forwarder
).
-define(ROOT_KEY, bridges).

View File

@ -134,11 +134,8 @@ desc(_) ->
schema_homogeneous_test() ->
case
lists:filtermap(
fun
({syskeeper_forwarder, _Schema}) ->
false;
({_Name, Schema}) ->
is_bad_schema(Schema)
fun({_Name, Schema}) ->
is_bad_schema(Schema)
end,
fields(actions)
)

View File

@ -1,5 +1,5 @@
%%--------------------------------------------------------------------
%% Copyright (c) 2022 EMQ Technologies Co., Ltd. All Rights Reserved.
%% Copyright (c) 2023 EMQ Technologies Co., Ltd. All Rights Reserved.
%%--------------------------------------------------------------------
-ifndef(EMQX_BRIDGE_SYSKEEPER).
-define(EMQX_BRIDGE_SYSKEEPER, true).

View File

@ -1,5 +1,5 @@
{application, emqx_bridge_syskeeper, [
{description, "EMQX Enterprise Bridge"},
{description, "EMQX Enterprise Data bridge for Syskeeper"},
{vsn, "0.1.0"},
{registered, []},
{applications, [

View File

@ -1,5 +1,5 @@
%%--------------------------------------------------------------------
%% Copyright (c) 2022 EMQ Technologies Co., Ltd. All Rights Reserved.
%% Copyright (c) 2023 EMQ Technologies Co., Ltd. All Rights Reserved.
%%--------------------------------------------------------------------
-module(emqx_bridge_syskeeper).
@ -59,9 +59,11 @@ values(put) ->
#{
enable => true,
connector => <<"syskeeper_forwarder">>,
target_topic => <<"${topic}">>,
target_qos => <<"-1">>,
template => <<"${payload}">>,
parameters => #{
target_topic => <<"${topic}">>,
target_qos => <<"-1">>,
template => <<"${payload}">>
},
resource_opts => #{
worker_pool_size => 16
}
@ -69,7 +71,7 @@ values(put) ->
%% -------------------------------------------------------------------------------------------------
%% Hocon Schema Definitions
namespace() -> "bridge_syskeeper".
namespace() -> "syskeeper".
roots() -> [].
@ -81,6 +83,24 @@ fields(config) ->
mk(binary(), #{
desc => ?DESC(emqx_connector_schema, "connector_field"), required => true
})},
{parameters,
mk(
ref(?MODULE, "parameters"),
#{required => true, desc => ?DESC("parameters")}
)},
{local_topic, mk(binary(), #{required => false, desc => ?DESC(mqtt_topic)})},
{resource_opts,
mk(
ref(?MODULE, "creation_opts"),
#{
required => false,
default => #{},
desc => ?DESC(emqx_resource_schema, <<"resource_opts">>)
}
)}
];
fields("parameters") ->
[
{target_topic,
mk(
binary(),
@ -95,15 +115,6 @@ fields(config) ->
mk(
binary(),
#{desc => ?DESC("template"), default => <<"${payload}">>}
)},
{resource_opts,
mk(
ref(?MODULE, "creation_opts"),
#{
required => false,
default => #{},
desc => ?DESC(emqx_resource_schema, <<"resource_opts">>)
}
)}
];
fields("creation_opts") ->
@ -119,6 +130,8 @@ desc(config) ->
?DESC("desc_config");
desc(Method) when Method =:= "get"; Method =:= "put"; Method =:= "post" ->
["Configuration for Syskeeper using `", string:to_upper(Method), "` method."];
desc("parameters") ->
?DESC("parameters");
desc("creation_opts" = Name) ->
emqx_resource_schema:desc(Name);
desc(_) ->

View File

@ -206,11 +206,18 @@ status_result(true) -> connected;
status_result(false) -> connecting;
status_result({error, _}) -> connecting.
on_add_channel(_InstanceId, #{channels := Channels} = OldState, ChannelId, #{
target_topic := TargetTopic,
target_qos := TargetQoS,
template := Template
}) ->
on_add_channel(
_InstanceId,
#{channels := Channels} = OldState,
ChannelId,
#{
parameters := #{
target_topic := TargetTopic,
target_qos := TargetQoS,
template := Template
}
}
) ->
case maps:is_key(ChannelId, Channels) of
true ->
{error, already_exists};

View File

@ -106,6 +106,11 @@ syskeeper_config(Config) ->
"actions.~s.~s {\n"
" enable = true\n"
" connector = ~ts\n"
" parameters = {\n"
" target_topic = \"${topic}\"\n"
" target_qos = -1\n"
" template = \"${payload}\"\n"
" },\n"
" resource_opts = {\n"
" request_ttl = 500ms\n"
" batch_size = ~b\n"

View File

@ -42,4 +42,15 @@ target_qos.desc:
target_qos.label:
"""Target QoS"""
parameters.desc:
"""Syskeeper data bridge parameters"""
parameters.label:
"""Parameters"""
mqtt_topic.desc:
"""MQTT topic or topic filter as data source (bridge input). If rule action is used as data source, this config should be left empty, otherwise messages will be duplicated in Syskeeper."""
mqtt_topic.label:
"""Source MQTT Topic"""
}