refactor: MongoDB bridge to use the new app structure
This commit is contained in:
parent
1dfbb7ac80
commit
e3199ef813
|
@ -25,7 +25,7 @@ User can create a rule and easily ingest IoT data into MongoDB by leveraging
|
|||
- Several APIs are provided for bridge management, which includes create bridge,
|
||||
update bridge, get bridge, stop or restart bridge and list bridges etc.
|
||||
|
||||
Refer to [API Docs - Bridges](https://docs.emqx.com/en/enterprise/v5.0/admin/api-docs.html#tag/Bridges)
|
||||
- Refer to [API Docs - Bridges](https://docs.emqx.com/en/enterprise/v5.0/admin/api-docs.html#tag/Bridges)
|
||||
for more detailed information.
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
mongo
|
||||
mongo_rs_sharded
|
|
@ -0,0 +1,11 @@
|
|||
%% -*- mode: erlang; -*-
|
||||
{erl_opts, [debug_info]}.
|
||||
{deps, [ {emqx_connector, {path, "../../apps/emqx_connector"}}
|
||||
, {emqx_resource, {path, "../../apps/emqx_resource"}}
|
||||
, {emqx_bridge, {path, "../../apps/emqx_bridge"}}
|
||||
, {emqx_ee_bridge, {path, "../../lib-ee/emqx_ee_bridge"}}
|
||||
]}.
|
||||
|
||||
{shell, [
|
||||
{apps, [emqx_bridge_mongodb]}
|
||||
]}.
|
|
@ -1,8 +1,14 @@
|
|||
{application, emqx_bridge_mongodb, [
|
||||
{description, "EMQX Enterprise MongoDB Bridge"},
|
||||
{vsn, "0.1.0"},
|
||||
{vsn, "0.2.0"},
|
||||
{registered, []},
|
||||
{applications, [kernel, stdlib]},
|
||||
{applications, [kernel,
|
||||
stdlib,
|
||||
emqx_connector,
|
||||
emqx_resource,
|
||||
emqx_bridge,
|
||||
emqx_ee_bridge,
|
||||
mongodb]},
|
||||
{env, []},
|
||||
{modules, []},
|
||||
{links, []}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
%%--------------------------------------------------------------------
|
||||
%% Copyright (c) 2022-2023 EMQ Technologies Co., Ltd. All Rights Reserved.
|
||||
%%--------------------------------------------------------------------
|
||||
-module(emqx_ee_bridge_mongodb).
|
||||
-module(emqx_bridge_mongodb).
|
||||
|
||||
-include_lib("typerefl/include/types.hrl").
|
||||
-include_lib("hocon/include/hoconsc.hrl").
|
|
@ -2,7 +2,7 @@
|
|||
%% Copyright (c) 2022-2023 EMQ Technologies Co., Ltd. All Rights Reserved.
|
||||
%%--------------------------------------------------------------------
|
||||
|
||||
-module(emqx_ee_connector_mongodb).
|
||||
-module(emqx_bridge_mongodb_connector).
|
||||
|
||||
-behaviour(emqx_resource).
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
%% Copyright (c) 2022-2023 EMQ Technologies Co., Ltd. All Rights Reserved.
|
||||
%%--------------------------------------------------------------------
|
||||
|
||||
-module(emqx_ee_bridge_mongodb_SUITE).
|
||||
-module(emqx_bridge_mongodb_SUITE).
|
||||
|
||||
-compile(nowarn_export_all).
|
||||
-compile(export_all).
|
|
@ -1,6 +1,4 @@
|
|||
toxiproxy
|
||||
mongo
|
||||
mongo_rs_sharded
|
||||
mysql
|
||||
redis
|
||||
redis_cluster
|
||||
|
|
|
@ -27,9 +27,9 @@ api_schemas(Method) ->
|
|||
api_ref(emqx_bridge_cassandra, <<"cassandra">>, Method),
|
||||
api_ref(emqx_ee_bridge_mysql, <<"mysql">>, Method),
|
||||
api_ref(emqx_bridge_pgsql, <<"pgsql">>, Method),
|
||||
api_ref(emqx_ee_bridge_mongodb, <<"mongodb_rs">>, Method ++ "_rs"),
|
||||
api_ref(emqx_ee_bridge_mongodb, <<"mongodb_sharded">>, Method ++ "_sharded"),
|
||||
api_ref(emqx_ee_bridge_mongodb, <<"mongodb_single">>, Method ++ "_single"),
|
||||
api_ref(emqx_bridge_mongodb, Method ++ "_rs"),
|
||||
api_ref(emqx_bridge_mongodb, Method ++ "_sharded"),
|
||||
api_ref(emqx_bridge_mongodb, Method ++ "_single"),
|
||||
api_ref(emqx_ee_bridge_hstreamdb, <<"hstreamdb">>, Method),
|
||||
api_ref(emqx_bridge_influxdb, <<"influxdb_api_v1">>, Method ++ "_api_v1"),
|
||||
api_ref(emqx_bridge_influxdb, <<"influxdb_api_v2">>, Method ++ "_api_v2"),
|
||||
|
@ -57,7 +57,7 @@ schema_modules() ->
|
|||
emqx_ee_bridge_hstreamdb,
|
||||
emqx_bridge_gcp_pubsub,
|
||||
emqx_bridge_influxdb,
|
||||
emqx_ee_bridge_mongodb,
|
||||
emqx_bridge_mongodb,
|
||||
emqx_ee_bridge_mysql,
|
||||
emqx_ee_bridge_redis,
|
||||
emqx_bridge_pgsql,
|
||||
|
@ -96,9 +96,9 @@ resource_type(cassandra) -> emqx_bridge_cassandra_connector;
|
|||
resource_type(hstreamdb) -> emqx_ee_connector_hstreamdb;
|
||||
resource_type(gcp_pubsub) -> emqx_bridge_gcp_pubsub_impl_producer;
|
||||
resource_type(gcp_pubsub_consumer) -> emqx_bridge_gcp_pubsub_impl_consumer;
|
||||
resource_type(mongodb_rs) -> emqx_ee_connector_mongodb;
|
||||
resource_type(mongodb_sharded) -> emqx_ee_connector_mongodb;
|
||||
resource_type(mongodb_single) -> emqx_ee_connector_mongodb;
|
||||
resource_type(mongodb_rs) -> emqx_bridge_mongodb_connector;
|
||||
resource_type(mongodb_sharded) -> emqx_bridge_mongodb_connector;
|
||||
resource_type(mongodb_single) -> emqx_bridge_mongodb_connector;
|
||||
resource_type(mysql) -> emqx_connector_mysql;
|
||||
resource_type(influxdb_api_v1) -> emqx_bridge_influxdb_connector;
|
||||
resource_type(influxdb_api_v2) -> emqx_bridge_influxdb_connector;
|
||||
|
@ -203,7 +203,7 @@ mongodb_structs() ->
|
|||
[
|
||||
{Type,
|
||||
mk(
|
||||
hoconsc:map(name, ref(emqx_ee_bridge_mongodb, Type)),
|
||||
hoconsc:map(name, ref(emqx_bridge_mongodb, Type)),
|
||||
#{
|
||||
desc => <<"MongoDB Bridge Config">>,
|
||||
required => false
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
emqx_ee_bridge_mongodb {
|
||||
emqx_bridge_mongodb {
|
||||
|
||||
collection.desc:
|
||||
"""The collection where data will be stored into"""
|
|
@ -0,0 +1,57 @@
|
|||
emqx_bridge_mongodb {
|
||||
|
||||
collection.desc:
|
||||
"""数据将被存储到的集合"""
|
||||
|
||||
collection.label:
|
||||
"""将要使用的集合(Collection)"""
|
||||
|
||||
desc_config.desc:
|
||||
"""为MongoDB桥配置"""
|
||||
|
||||
desc_config.label:
|
||||
"""MongoDB桥配置"""
|
||||
|
||||
desc_name.desc:
|
||||
"""桥接名称。"""
|
||||
|
||||
desc_name.label:
|
||||
"""桥接名称"""
|
||||
|
||||
desc_type.desc:
|
||||
"""桥接类型。"""
|
||||
|
||||
desc_type.label:
|
||||
"""桥接类型"""
|
||||
|
||||
enable.desc:
|
||||
"""启用或停用该MongoDB桥"""
|
||||
|
||||
enable.label:
|
||||
"""启用或禁用"""
|
||||
|
||||
mongodb_rs_conf.desc:
|
||||
"""MongoDB(Replica Set)配置"""
|
||||
|
||||
mongodb_rs_conf.label:
|
||||
"""MongoDB(Replica Set)配置"""
|
||||
|
||||
mongodb_sharded_conf.desc:
|
||||
"""MongoDB (Sharded)配置"""
|
||||
|
||||
mongodb_sharded_conf.label:
|
||||
"""MongoDB (Sharded)配置"""
|
||||
|
||||
mongodb_single_conf.desc:
|
||||
"""MongoDB(独立)配置"""
|
||||
|
||||
mongodb_single_conf.label:
|
||||
"""MongoDB(独立)配置"""
|
||||
|
||||
payload_template.desc:
|
||||
"""用于格式化写入 MongoDB 的消息模板。 如果未定义,规则引擎会使用 JSON 格式序列化所有的可见输入,例如 clientid, topic, payload 等。"""
|
||||
|
||||
payload_template.label:
|
||||
"""有效载荷模板"""
|
||||
|
||||
}
|
Loading…
Reference in New Issue