From e3199ef81338437464c675833ace66d532a595f0 Mon Sep 17 00:00:00 2001 From: Kjell Winblad Date: Wed, 10 May 2023 16:59:41 +0200 Subject: [PATCH 1/8] refactor: MongoDB bridge to use the new app structure --- apps/emqx_bridge_mongodb/README.md | 2 +- apps/emqx_bridge_mongodb/docker-ct | 2 + apps/emqx_bridge_mongodb/rebar.config | 11 ++++ .../src/emqx_bridge_mongodb.app.src | 10 +++- .../src/emqx_bridge_mongodb.erl | 2 +- .../src/emqx_bridge_mongodb_connector.erl | 2 +- .../test/emqx_bridge_mongodb_SUITE.erl | 2 +- lib-ee/emqx_ee_bridge/docker-ct | 2 - lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl | 16 +++--- ...ongodb.hocon => emqx_bridge_mongodb.hocon} | 2 +- rel/i18n/zh/emqx_bridge_mongodb.hocon | 57 +++++++++++++++++++ 11 files changed, 91 insertions(+), 17 deletions(-) create mode 100644 apps/emqx_bridge_mongodb/docker-ct create mode 100644 apps/emqx_bridge_mongodb/rebar.config rename lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_mongodb.erl => apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.erl (99%) rename lib-ee/emqx_ee_connector/src/emqx_ee_connector_mongodb.erl => apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb_connector.erl (99%) rename lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_mongodb_SUITE.erl => apps/emqx_bridge_mongodb/test/emqx_bridge_mongodb_SUITE.erl (99%) rename rel/i18n/{emqx_ee_bridge_mongodb.hocon => emqx_bridge_mongodb.hocon} (98%) create mode 100644 rel/i18n/zh/emqx_bridge_mongodb.hocon diff --git a/apps/emqx_bridge_mongodb/README.md b/apps/emqx_bridge_mongodb/README.md index 63a541dc5..c0c552756 100644 --- a/apps/emqx_bridge_mongodb/README.md +++ b/apps/emqx_bridge_mongodb/README.md @@ -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. diff --git a/apps/emqx_bridge_mongodb/docker-ct b/apps/emqx_bridge_mongodb/docker-ct new file mode 100644 index 000000000..f350a379c --- /dev/null +++ b/apps/emqx_bridge_mongodb/docker-ct @@ -0,0 +1,2 @@ +mongo +mongo_rs_sharded diff --git a/apps/emqx_bridge_mongodb/rebar.config b/apps/emqx_bridge_mongodb/rebar.config new file mode 100644 index 000000000..42fcc1f26 --- /dev/null +++ b/apps/emqx_bridge_mongodb/rebar.config @@ -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]} +]}. diff --git a/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src index 008a9e164..3a3a0955d 100644 --- a/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src +++ b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src @@ -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, []} diff --git a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_mongodb.erl b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.erl similarity index 99% rename from lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_mongodb.erl rename to apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.erl index e115bbf37..694d13fa7 100644 --- a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge_mongodb.erl +++ b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.erl @@ -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"). diff --git a/lib-ee/emqx_ee_connector/src/emqx_ee_connector_mongodb.erl b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb_connector.erl similarity index 99% rename from lib-ee/emqx_ee_connector/src/emqx_ee_connector_mongodb.erl rename to apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb_connector.erl index 202b0fe06..b6f7e4939 100644 --- a/lib-ee/emqx_ee_connector/src/emqx_ee_connector_mongodb.erl +++ b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb_connector.erl @@ -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). diff --git a/lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_mongodb_SUITE.erl b/apps/emqx_bridge_mongodb/test/emqx_bridge_mongodb_SUITE.erl similarity index 99% rename from lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_mongodb_SUITE.erl rename to apps/emqx_bridge_mongodb/test/emqx_bridge_mongodb_SUITE.erl index e21182591..5077cd174 100644 --- a/lib-ee/emqx_ee_bridge/test/emqx_ee_bridge_mongodb_SUITE.erl +++ b/apps/emqx_bridge_mongodb/test/emqx_bridge_mongodb_SUITE.erl @@ -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). diff --git a/lib-ee/emqx_ee_bridge/docker-ct b/lib-ee/emqx_ee_bridge/docker-ct index 7cbc30567..26430609e 100644 --- a/lib-ee/emqx_ee_bridge/docker-ct +++ b/lib-ee/emqx_ee_bridge/docker-ct @@ -1,6 +1,4 @@ toxiproxy -mongo -mongo_rs_sharded mysql redis redis_cluster diff --git a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl b/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl index b418f9e15..6eec44388 100644 --- a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl +++ b/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl @@ -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 diff --git a/rel/i18n/emqx_ee_bridge_mongodb.hocon b/rel/i18n/emqx_bridge_mongodb.hocon similarity index 98% rename from rel/i18n/emqx_ee_bridge_mongodb.hocon rename to rel/i18n/emqx_bridge_mongodb.hocon index b703bf5a5..4edd1182d 100644 --- a/rel/i18n/emqx_ee_bridge_mongodb.hocon +++ b/rel/i18n/emqx_bridge_mongodb.hocon @@ -1,4 +1,4 @@ -emqx_ee_bridge_mongodb { +emqx_bridge_mongodb { collection.desc: """The collection where data will be stored into""" diff --git a/rel/i18n/zh/emqx_bridge_mongodb.hocon b/rel/i18n/zh/emqx_bridge_mongodb.hocon new file mode 100644 index 000000000..9a4c7d954 --- /dev/null +++ b/rel/i18n/zh/emqx_bridge_mongodb.hocon @@ -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: +"""有效载荷模板""" + +} From b78a75bb5ca8222b34c561f5cf7fa77333b124ee Mon Sep 17 00:00:00 2001 From: Kjell Winblad Date: Wed, 10 May 2023 18:22:55 +0200 Subject: [PATCH 2/8] refactor: the MongoDB connector into its own application --- apps/emqx_authn/rebar.config | 3 ++- apps/emqx_authn/src/emqx_authn.app.src | 2 +- apps/emqx_authz/rebar.config | 3 ++- apps/emqx_authz/src/emqx_authz.app.src | 3 ++- apps/emqx_bridge_mongodb/rebar.config | 1 + .../src/emqx_bridge_mongodb.app.src | 2 +- apps/emqx_connector/docker-ct | 1 - apps/emqx_connector/rebar.config | 1 - apps/emqx_mongodb/README.md | 15 +++++++++++++++ apps/emqx_mongodb/docker-ct | 1 + apps/emqx_mongodb/rebar.config | 7 +++++++ .../src/emqx_connector_mongo.erl | 2 +- apps/emqx_mongodb/src/emqx_mongodb.app.src | 16 ++++++++++++++++ .../test/emqx_connector_mongo_SUITE.erl | 0 .../test/emqx_connector_mongo_tests.erl | 0 apps/emqx_oracle/README.md | 2 +- mix.exs | 1 + rebar.config.erl | 1 + 18 files changed, 52 insertions(+), 9 deletions(-) create mode 100644 apps/emqx_mongodb/README.md create mode 100644 apps/emqx_mongodb/docker-ct create mode 100644 apps/emqx_mongodb/rebar.config rename apps/{emqx_connector => emqx_mongodb}/src/emqx_connector_mongo.erl (99%) create mode 100644 apps/emqx_mongodb/src/emqx_mongodb.app.src rename apps/{emqx_connector => emqx_mongodb}/test/emqx_connector_mongo_SUITE.erl (100%) rename apps/{emqx_connector => emqx_mongodb}/test/emqx_connector_mongo_tests.erl (100%) diff --git a/apps/emqx_authn/rebar.config b/apps/emqx_authn/rebar.config index 5f0043c39..fb2f35f41 100644 --- a/apps/emqx_authn/rebar.config +++ b/apps/emqx_authn/rebar.config @@ -3,7 +3,8 @@ {deps, [ {emqx, {path, "../emqx"}}, {emqx_utils, {path, "../emqx_utils"}}, - {emqx_connector, {path, "../emqx_connector"}} + {emqx_connector, {path, "../emqx_connector"}}, + {emqx_mongodb, {path, "../emqx_mongodb"}} ]}. {edoc_opts, [{preprocess, true}]}. diff --git a/apps/emqx_authn/src/emqx_authn.app.src b/apps/emqx_authn/src/emqx_authn.app.src index 571ac88b7..5f81232a4 100644 --- a/apps/emqx_authn/src/emqx_authn.app.src +++ b/apps/emqx_authn/src/emqx_authn.app.src @@ -4,7 +4,7 @@ {vsn, "0.1.22"}, {modules, []}, {registered, [emqx_authn_sup, emqx_authn_registry]}, - {applications, [kernel, stdlib, emqx_resource, emqx_connector, ehttpc, epgsql, mysql, jose]}, + {applications, [kernel, stdlib, emqx_resource, emqx_connector, ehttpc, epgsql, mysql, jose, emqx_mongodb]}, {mod, {emqx_authn_app, []}}, {env, []}, {licenses, ["Apache-2.0"]}, diff --git a/apps/emqx_authz/rebar.config b/apps/emqx_authz/rebar.config index 9fd61b060..32e344e69 100644 --- a/apps/emqx_authz/rebar.config +++ b/apps/emqx_authz/rebar.config @@ -4,7 +4,8 @@ {deps, [ {emqx, {path, "../emqx"}}, {emqx_utils, {path, "../emqx_utils"}}, - {emqx_connector, {path, "../emqx_connector"}} + {emqx_connector, {path, "../emqx_connector"}}, + {emqx_mongodb, {path, "../emqx_mongodb"}} ]}. {shell, [ diff --git a/apps/emqx_authz/src/emqx_authz.app.src b/apps/emqx_authz/src/emqx_authz.app.src index 929f292a7..cfdae07ce 100644 --- a/apps/emqx_authz/src/emqx_authz.app.src +++ b/apps/emqx_authz/src/emqx_authz.app.src @@ -9,7 +9,8 @@ stdlib, crypto, emqx_resource, - emqx_connector + emqx_connector, + emqx_mongodb ]}, {env, []}, {modules, []}, diff --git a/apps/emqx_bridge_mongodb/rebar.config b/apps/emqx_bridge_mongodb/rebar.config index 42fcc1f26..1605fc967 100644 --- a/apps/emqx_bridge_mongodb/rebar.config +++ b/apps/emqx_bridge_mongodb/rebar.config @@ -3,6 +3,7 @@ {deps, [ {emqx_connector, {path, "../../apps/emqx_connector"}} , {emqx_resource, {path, "../../apps/emqx_resource"}} , {emqx_bridge, {path, "../../apps/emqx_bridge"}} + , {emqx_mongodb, {path, "../../apps/emqx_mongodb"}} , {emqx_ee_bridge, {path, "../../lib-ee/emqx_ee_bridge"}} ]}. diff --git a/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src index 3a3a0955d..b392be2b1 100644 --- a/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src +++ b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src @@ -8,7 +8,7 @@ emqx_resource, emqx_bridge, emqx_ee_bridge, - mongodb]}, + emqx_mongodb]}, {env, []}, {modules, []}, {links, []} diff --git a/apps/emqx_connector/docker-ct b/apps/emqx_connector/docker-ct index 5a4056927..866d0c40d 100644 --- a/apps/emqx_connector/docker-ct +++ b/apps/emqx_connector/docker-ct @@ -1,4 +1,3 @@ -mongo redis redis_cluster mysql diff --git a/apps/emqx_connector/rebar.config b/apps/emqx_connector/rebar.config index 03be87356..a90cdaa58 100644 --- a/apps/emqx_connector/rebar.config +++ b/apps/emqx_connector/rebar.config @@ -12,7 +12,6 @@ {eldap2, {git, "https://github.com/emqx/eldap2", {tag, "v0.2.2"}}}, {mysql, {git, "https://github.com/emqx/mysql-otp", {tag, "1.7.2"}}}, {epgsql, {git, "https://github.com/emqx/epgsql", {tag, "4.7.0.1"}}}, - {mongodb, {git, "https://github.com/emqx/mongodb-erlang", {tag, "v3.0.19"}}}, %% NOTE: mind ecpool version when updating eredis_cluster version {eredis_cluster, {git, "https://github.com/emqx/eredis_cluster", {tag, "0.8.1"}}} ]}. diff --git a/apps/emqx_mongodb/README.md b/apps/emqx_mongodb/README.md new file mode 100644 index 000000000..7141a929e --- /dev/null +++ b/apps/emqx_mongodb/README.md @@ -0,0 +1,15 @@ +# MongoDB Connector + +This application houses the MongoDB connector. The MongoDB connector is used by +emqx_authz, emqx_authn and emqx_bridge_mongodb applications to connect to +MongoDB. + +## Contributing + +Please see our [contributing.md](../../CONTRIBUTING.md). + +## License + +Apache License, Version 2.0 + +See [APL.txt](../../APL.txt). diff --git a/apps/emqx_mongodb/docker-ct b/apps/emqx_mongodb/docker-ct new file mode 100644 index 000000000..b9c3499d5 --- /dev/null +++ b/apps/emqx_mongodb/docker-ct @@ -0,0 +1 @@ +mongo diff --git a/apps/emqx_mongodb/rebar.config b/apps/emqx_mongodb/rebar.config new file mode 100644 index 000000000..e8a7e281d --- /dev/null +++ b/apps/emqx_mongodb/rebar.config @@ -0,0 +1,7 @@ +%% -*- mode: erlang; -*- + +{erl_opts, [debug_info]}. +{deps, [ {emqx_connector, {path, "../../apps/emqx_connector"}} + , {emqx_resource, {path, "../../apps/emqx_resource"}} + , {mongodb, {git, "https://github.com/emqx/mongodb-erlang", {tag, "v3.0.19"}}} + ]}. diff --git a/apps/emqx_connector/src/emqx_connector_mongo.erl b/apps/emqx_mongodb/src/emqx_connector_mongo.erl similarity index 99% rename from apps/emqx_connector/src/emqx_connector_mongo.erl rename to apps/emqx_mongodb/src/emqx_connector_mongo.erl index 368ce18a0..f70f4ea76 100644 --- a/apps/emqx_connector/src/emqx_connector_mongo.erl +++ b/apps/emqx_mongodb/src/emqx_connector_mongo.erl @@ -15,7 +15,7 @@ %%-------------------------------------------------------------------- -module(emqx_connector_mongo). --include("emqx_connector.hrl"). +-include_lib("emqx_connector/include/emqx_connector.hrl"). -include_lib("typerefl/include/types.hrl"). -include_lib("hocon/include/hoconsc.hrl"). -include_lib("emqx/include/logger.hrl"). diff --git a/apps/emqx_mongodb/src/emqx_mongodb.app.src b/apps/emqx_mongodb/src/emqx_mongodb.app.src new file mode 100644 index 000000000..56419e37b --- /dev/null +++ b/apps/emqx_mongodb/src/emqx_mongodb.app.src @@ -0,0 +1,16 @@ +{application, emqx_mongodb, [ + {description, "EMQX MongoDB Connector"}, + {vsn, "0.1.0"}, + {registered, []}, + {applications, [ + kernel, + stdlib, + mongodb, + emqx_connector, + emqx_resource + ]}, + {env, []}, + {modules, []}, + + {links, []} +]}. diff --git a/apps/emqx_connector/test/emqx_connector_mongo_SUITE.erl b/apps/emqx_mongodb/test/emqx_connector_mongo_SUITE.erl similarity index 100% rename from apps/emqx_connector/test/emqx_connector_mongo_SUITE.erl rename to apps/emqx_mongodb/test/emqx_connector_mongo_SUITE.erl diff --git a/apps/emqx_connector/test/emqx_connector_mongo_tests.erl b/apps/emqx_mongodb/test/emqx_connector_mongo_tests.erl similarity index 100% rename from apps/emqx_connector/test/emqx_connector_mongo_tests.erl rename to apps/emqx_mongodb/test/emqx_connector_mongo_tests.erl diff --git a/apps/emqx_oracle/README.md b/apps/emqx_oracle/README.md index 873d52259..2ac44504e 100644 --- a/apps/emqx_oracle/README.md +++ b/apps/emqx_oracle/README.md @@ -11,4 +11,4 @@ Please see our [contributing.md](../../CONTRIBUTING.md). ## License -See [BSL](./BSL.txt). +See [BSL](../../APL.txt). diff --git a/mix.exs b/mix.exs index d038bac49..b0863b5ce 100644 --- a/mix.exs +++ b/mix.exs @@ -377,6 +377,7 @@ defmodule EMQXUmbrella.MixProject do emqx_psk: :permanent, emqx_slow_subs: :permanent, emqx_plugins: :permanent, + emqx_mongodb: :permanent, emqx_mix: :none ] ++ if(enable_quicer?(), do: [quicer: :permanent], else: []) ++ diff --git a/rebar.config.erl b/rebar.config.erl index 8d8e7c437..8aa65a5e8 100644 --- a/rebar.config.erl +++ b/rebar.config.erl @@ -439,6 +439,7 @@ relx_apps(ReleaseType, Edition) -> emqx_prometheus, emqx_psk, emqx_slow_subs, + emqx_mongodb, emqx_plugins ] ++ [quicer || is_quicer_supported()] ++ From fa2c2a300a64099744c0e509ba376d5a5cfbf3ae Mon Sep 17 00:00:00 2001 From: Kjell Winblad Date: Wed, 10 May 2023 19:06:21 +0200 Subject: [PATCH 3/8] refactor: rename emqx_connector_mongo to emqx_mongodb This renaming is consistent with the naming in the only other connector only application emqx_oracle. --- .../src/simple_authn/emqx_authn_mongodb.erl | 10 +- .../test/emqx_authn_mongo_tls_SUITE.erl | 2 +- apps/emqx_authz/src/emqx_authz_api_schema.erl | 6 +- apps/emqx_authz/src/emqx_authz_mongodb.erl | 4 +- apps/emqx_authz/src/emqx_authz_schema.erl | 6 +- .../src/emqx_bridge_mongodb.erl | 6 +- .../src/emqx_bridge_mongodb_connector.erl | 12 +- ...x_connector_mongo.erl => emqx_mongodb.erl} | 2 +- ...mongo_SUITE.erl => emqx_mongodb_SUITE.erl} | 6 +- ...mongo_tests.erl => emqx_mongodb_tests.erl} | 6 +- ...nnector_mongo.hocon => emqx_mongodb.hocon} | 2 +- rel/i18n/zh/emqx_mongodb.hocon | 152 ++++++++++++++++++ 12 files changed, 183 insertions(+), 31 deletions(-) rename apps/emqx_mongodb/src/{emqx_connector_mongo.erl => emqx_mongodb.erl} (99%) rename apps/emqx_mongodb/test/{emqx_connector_mongo_SUITE.erl => emqx_mongodb_SUITE.erl} (97%) rename apps/emqx_mongodb/test/{emqx_connector_mongo_tests.erl => emqx_mongodb_tests.erl} (97%) rename rel/i18n/{emqx_connector_mongo.hocon => emqx_mongodb.hocon} (99%) create mode 100644 rel/i18n/zh/emqx_mongodb.hocon diff --git a/apps/emqx_authn/src/simple_authn/emqx_authn_mongodb.erl b/apps/emqx_authn/src/simple_authn/emqx_authn_mongodb.erl index 1a766b975..4498d3d8d 100644 --- a/apps/emqx_authn/src/simple_authn/emqx_authn_mongodb.erl +++ b/apps/emqx_authn/src/simple_authn/emqx_authn_mongodb.erl @@ -60,11 +60,11 @@ roots() -> ]. fields(mongo_single) -> - common_fields() ++ emqx_connector_mongo:fields(single); + common_fields() ++ emqx_mongodb:fields(single); fields(mongo_rs) -> - common_fields() ++ emqx_connector_mongo:fields(rs); + common_fields() ++ emqx_mongodb:fields(rs); fields(mongo_sharded) -> - common_fields() ++ emqx_connector_mongo:fields(sharded). + common_fields() ++ emqx_mongodb:fields(sharded). desc(mongo_single) -> ?DESC(single); @@ -140,14 +140,14 @@ create(Config0) -> {Config, State} = parse_config(Config0), {ok, _Data} = emqx_authn_utils:create_resource( ResourceId, - emqx_connector_mongo, + emqx_mongodb, Config ), {ok, State#{resource_id => ResourceId}}. update(Config0, #{resource_id := ResourceId} = _State) -> {Config, NState} = parse_config(Config0), - case emqx_authn_utils:update_resource(emqx_connector_mongo, Config, ResourceId) of + case emqx_authn_utils:update_resource(emqx_mongodb, Config, ResourceId) of {error, Reason} -> error({load_config_error, Reason}); {ok, _} -> diff --git a/apps/emqx_authn/test/emqx_authn_mongo_tls_SUITE.erl b/apps/emqx_authn/test/emqx_authn_mongo_tls_SUITE.erl index 3725bc051..34f906dd9 100644 --- a/apps/emqx_authn/test/emqx_authn_mongo_tls_SUITE.erl +++ b/apps/emqx_authn/test/emqx_authn_mongo_tls_SUITE.erl @@ -64,7 +64,7 @@ end_per_suite(_Config) -> %% Tests %%------------------------------------------------------------------------------ -%% emqx_connector_mongo connects asynchronously, +%% emqx_mongodb connects asynchronously, %% so we check failure/success indirectly (through snabbkaffe). %% openssl s_client -tls1_2 -cipher ECDHE-RSA-AES256-GCM-SHA384 \ diff --git a/apps/emqx_authz/src/emqx_authz_api_schema.erl b/apps/emqx_authz/src/emqx_authz_api_schema.erl index 049c84713..f841fb9b1 100644 --- a/apps/emqx_authz/src/emqx_authz_api_schema.erl +++ b/apps/emqx_authz/src/emqx_authz_api_schema.erl @@ -60,13 +60,13 @@ fields(built_in_database) -> authz_common_fields(built_in_database); fields(mongo_single) -> authz_mongo_common_fields() ++ - emqx_connector_mongo:fields(single); + emqx_mongodb:fields(single); fields(mongo_rs) -> authz_mongo_common_fields() ++ - emqx_connector_mongo:fields(rs); + emqx_mongodb:fields(rs); fields(mongo_sharded) -> authz_mongo_common_fields() ++ - emqx_connector_mongo:fields(sharded); + emqx_mongodb:fields(sharded); fields(mysql) -> authz_common_fields(mysql) ++ [{query, query()}] ++ diff --git a/apps/emqx_authz/src/emqx_authz_mongodb.erl b/apps/emqx_authz/src/emqx_authz_mongodb.erl index 8d04a3229..e82ff64e1 100644 --- a/apps/emqx_authz/src/emqx_authz_mongodb.erl +++ b/apps/emqx_authz/src/emqx_authz_mongodb.erl @@ -50,13 +50,13 @@ description() -> create(#{filter := Filter} = Source) -> ResourceId = emqx_authz_utils:make_resource_id(?MODULE), - {ok, _Data} = emqx_authz_utils:create_resource(ResourceId, emqx_connector_mongo, Source), + {ok, _Data} = emqx_authz_utils:create_resource(ResourceId, emqx_mongodb, Source), FilterTemp = emqx_authz_utils:parse_deep(Filter, ?PLACEHOLDERS), Source#{annotations => #{id => ResourceId}, filter_template => FilterTemp}. update(#{filter := Filter} = Source) -> FilterTemp = emqx_authz_utils:parse_deep(Filter, ?PLACEHOLDERS), - case emqx_authz_utils:update_resource(emqx_connector_mongo, Source) of + case emqx_authz_utils:update_resource(emqx_mongodb, Source) of {error, Reason} -> error({load_config_error, Reason}); {ok, Id} -> diff --git a/apps/emqx_authz/src/emqx_authz_schema.erl b/apps/emqx_authz/src/emqx_authz_schema.erl index b19c62441..18afacb23 100644 --- a/apps/emqx_authz/src/emqx_authz_schema.erl +++ b/apps/emqx_authz/src/emqx_authz_schema.erl @@ -109,15 +109,15 @@ fields(builtin_db) -> fields(mongo_single) -> authz_common_fields(mongodb) ++ mongo_common_fields() ++ - emqx_connector_mongo:fields(single); + emqx_mongodb:fields(single); fields(mongo_rs) -> authz_common_fields(mongodb) ++ mongo_common_fields() ++ - emqx_connector_mongo:fields(rs); + emqx_mongodb:fields(rs); fields(mongo_sharded) -> authz_common_fields(mongodb) ++ mongo_common_fields() ++ - emqx_connector_mongo:fields(sharded); + emqx_mongodb:fields(sharded); fields(mysql) -> authz_common_fields(mysql) ++ connector_fields(mysql) ++ diff --git a/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.erl b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.erl index 694d13fa7..72485815f 100644 --- a/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.erl +++ b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.erl @@ -56,11 +56,11 @@ fields("creation_opts") -> }} ]); fields(mongodb_rs) -> - emqx_connector_mongo:fields(rs) ++ fields("config"); + emqx_mongodb:fields(rs) ++ fields("config"); fields(mongodb_sharded) -> - emqx_connector_mongo:fields(sharded) ++ fields("config"); + emqx_mongodb:fields(sharded) ++ fields("config"); fields(mongodb_single) -> - emqx_connector_mongo:fields(single) ++ fields("config"); + emqx_mongodb:fields(single) ++ fields("config"); fields("post_rs") -> fields(mongodb_rs) ++ type_and_name_fields(mongodb_rs); fields("post_sharded") -> diff --git a/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb_connector.erl b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb_connector.erl index b6f7e4939..eb0a22e9c 100644 --- a/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb_connector.erl +++ b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb_connector.erl @@ -25,10 +25,10 @@ %% `emqx_resource' API %%======================================================================================== -callback_mode() -> emqx_connector_mongo:callback_mode(). +callback_mode() -> emqx_mongodb:callback_mode(). on_start(InstanceId, Config) -> - case emqx_connector_mongo:on_start(InstanceId, Config) of + case emqx_mongodb:on_start(InstanceId, Config) of {ok, ConnectorState} -> PayloadTemplate0 = maps:get(payload_template, Config, undefined), PayloadTemplate = preprocess_template(PayloadTemplate0), @@ -45,7 +45,7 @@ on_start(InstanceId, Config) -> end. on_stop(InstanceId, _State = #{connector_state := ConnectorState}) -> - emqx_connector_mongo:on_stop(InstanceId, ConnectorState). + emqx_mongodb:on_stop(InstanceId, ConnectorState). on_query(InstanceId, {send_message, Message0}, State) -> #{ @@ -57,14 +57,14 @@ on_query(InstanceId, {send_message, Message0}, State) -> collection => emqx_placeholder:proc_tmpl(CollectionTemplate, Message0) }, Message = render_message(PayloadTemplate, Message0), - Res = emqx_connector_mongo:on_query(InstanceId, {send_message, Message}, NewConnectorState), + Res = emqx_mongodb:on_query(InstanceId, {send_message, Message}, NewConnectorState), ?tp(mongo_ee_connector_on_query_return, #{result => Res}), Res; on_query(InstanceId, Request, _State = #{connector_state := ConnectorState}) -> - emqx_connector_mongo:on_query(InstanceId, Request, ConnectorState). + emqx_mongodb:on_query(InstanceId, Request, ConnectorState). on_get_status(InstanceId, _State = #{connector_state := ConnectorState}) -> - emqx_connector_mongo:on_get_status(InstanceId, ConnectorState). + emqx_mongodb:on_get_status(InstanceId, ConnectorState). %%======================================================================================== %% Helper fns diff --git a/apps/emqx_mongodb/src/emqx_connector_mongo.erl b/apps/emqx_mongodb/src/emqx_mongodb.erl similarity index 99% rename from apps/emqx_mongodb/src/emqx_connector_mongo.erl rename to apps/emqx_mongodb/src/emqx_mongodb.erl index f70f4ea76..9daffd43f 100644 --- a/apps/emqx_mongodb/src/emqx_connector_mongo.erl +++ b/apps/emqx_mongodb/src/emqx_mongodb.erl @@ -13,7 +13,7 @@ %% See the License for the specific language governing permissions and %% limitations under the License. %%-------------------------------------------------------------------- --module(emqx_connector_mongo). +-module(emqx_mongodb). -include_lib("emqx_connector/include/emqx_connector.hrl"). -include_lib("typerefl/include/types.hrl"). diff --git a/apps/emqx_mongodb/test/emqx_connector_mongo_SUITE.erl b/apps/emqx_mongodb/test/emqx_mongodb_SUITE.erl similarity index 97% rename from apps/emqx_mongodb/test/emqx_connector_mongo_SUITE.erl rename to apps/emqx_mongodb/test/emqx_mongodb_SUITE.erl index 9067c85de..3ee876934 100644 --- a/apps/emqx_mongodb/test/emqx_connector_mongo_SUITE.erl +++ b/apps/emqx_mongodb/test/emqx_mongodb_SUITE.erl @@ -13,7 +13,7 @@ % %% limitations under the License. % %%-------------------------------------------------------------------- --module(emqx_connector_mongo_SUITE). +-module(emqx_mongodb_SUITE). -compile(nowarn_export_all). -compile(export_all). @@ -24,7 +24,7 @@ -include_lib("stdlib/include/assert.hrl"). -define(MONGO_HOST, "mongo"). --define(MONGO_RESOURCE_MOD, emqx_connector_mongo). +-define(MONGO_RESOURCE_MOD, emqx_mongodb). all() -> emqx_common_test_helpers:all(?MODULE). @@ -60,7 +60,7 @@ end_per_testcase(_, _Config) -> t_lifecycle(_Config) -> perform_lifecycle_check( - <<"emqx_connector_mongo_SUITE">>, + <<"emqx_mongodb_SUITE">>, mongo_config() ). diff --git a/apps/emqx_mongodb/test/emqx_connector_mongo_tests.erl b/apps/emqx_mongodb/test/emqx_mongodb_tests.erl similarity index 97% rename from apps/emqx_mongodb/test/emqx_connector_mongo_tests.erl rename to apps/emqx_mongodb/test/emqx_mongodb_tests.erl index 3cfe52b98..4207998b7 100644 --- a/apps/emqx_mongodb/test/emqx_connector_mongo_tests.erl +++ b/apps/emqx_mongodb/test/emqx_mongodb_tests.erl @@ -14,7 +14,7 @@ %% limitations under the License. %%-------------------------------------------------------------------- --module(emqx_connector_mongo_tests). +-module(emqx_mongodb_tests). -include_lib("eunit/include/eunit.hrl"). @@ -84,12 +84,12 @@ bad_query_string_test() -> ). resolve(Config) -> - emqx_connector_mongo:maybe_resolve_srv_and_txt_records(Config). + emqx_mongodb:maybe_resolve_srv_and_txt_records(Config). checked_config(Hocon) -> {ok, Config} = hocon:binary(Hocon), hocon_tconf:check_plain( - emqx_connector_mongo, + emqx_mongodb, #{<<"config">> => Config}, #{atom_key => true} ). diff --git a/rel/i18n/emqx_connector_mongo.hocon b/rel/i18n/emqx_mongodb.hocon similarity index 99% rename from rel/i18n/emqx_connector_mongo.hocon rename to rel/i18n/emqx_mongodb.hocon index facbab3a3..b1830868d 100644 --- a/rel/i18n/emqx_connector_mongo.hocon +++ b/rel/i18n/emqx_mongodb.hocon @@ -1,4 +1,4 @@ -emqx_connector_mongo { +emqx_mongodb { auth_source.desc: """Database name associated with the user's credentials.""" diff --git a/rel/i18n/zh/emqx_mongodb.hocon b/rel/i18n/zh/emqx_mongodb.hocon new file mode 100644 index 000000000..2d3c5c16d --- /dev/null +++ b/rel/i18n/zh/emqx_mongodb.hocon @@ -0,0 +1,152 @@ +emqx_mongodb { + +auth_source.desc: +"""与用户证书关联的数据库名称。""" + +auth_source.label: +"""认证源""" + +connect_timeout.desc: +"""超时重连的等待时间。""" + +connect_timeout.label: +"""连接超时""" + +desc_rs.desc: +"""配置 Replica Set""" + +desc_rs.label: +"""配置 Replica Set""" + +desc_sharded.desc: +"""配置 Sharded Cluster""" + +desc_sharded.label: +"""配置 Sharded Cluster""" + +desc_single.desc: +"""配置 Single 模式""" + +desc_single.label: +"""配置 Single 模式""" + +desc_topology.desc: +"""配置 Topology""" + +desc_topology.label: +"""配置 Topology""" + +heartbeat_period.desc: +"""控制驱动程序何时检查MongoDB部署的状态。指定检查的间隔时间,从上一次检查结束到下一次检查开始计算。如果连接数增加(例如,如果你增加池子的大小,就会发生这种情况),你可能也需要增加这个周期,以避免在MongoDB日志文件中创建太多的日志条目。""" + +heartbeat_period.label: +"""心跳期""" + +local_threshold.desc: +"""在多个合适的MongoDB实例中进行选择的延迟窗口的大小。""" + +local_threshold.label: +"""本地阈值""" + +max_overflow.desc: +"""最大溢出。""" + +max_overflow.label: +"""最大溢出""" + +min_heartbeat_period.desc: +"""心跳间的最小间隙""" + +min_heartbeat_period.label: +"""最小心跳周期""" + +overflow_check_period.desc: +"""检查是否有超过配置的工人的周期("溢出")。""" + +overflow_check_period.label: +"""溢出检查周期""" + +overflow_ttl.desc: +"""当池内工人太多时,等待多久清除多余工人。""" + +overflow_ttl.label: +"""溢出TTL""" + +r_mode.desc: +"""读模式。""" + +r_mode.label: +"""读模式""" + +replica_set_name.desc: +"""副本集的名称。""" + +replica_set_name.label: +"""副本集名称""" + +rs_mongo_type.desc: +"""Replica set模式。当 MongoDB 服务运行在 replica-set 模式下,该配置必须设置为 'rs'。""" + +rs_mongo_type.label: +"""Replica set 模式""" + +server.desc: +"""将要连接的 IPv4 或 IPv6 地址,或者主机名。
+主机名具有以下形式:`Host[:Port]`。
+如果未指定 `[:Port]`,则使用 MongoDB 默认端口 27017。""" + +server.label: +"""服务器地址""" + +server_selection_timeout.desc: +"""指定在抛出异常之前为服务器选择阻断多长时间。""" + +server_selection_timeout.label: +"""服务器选择超时""" + +servers.desc: +"""集群将要连接的节点列表。 节点之间用逗号分隔,如:`Node[,Node].` +每个节点的配置为:将要连接的 IPv4 或 IPv6 地址或主机名。 +主机名具有以下形式:`Host[:Port]`。 +如果未指定 `[:Port]`,则使用 MongoDB 默认端口 27017。""" + +servers.label: +"""服务器列表""" + +sharded_mongo_type.desc: +"""Sharded cluster模式。当 MongoDB 服务运行在 sharded 模式下,该配置必须设置为 'sharded'。""" + +sharded_mongo_type.label: +"""Sharded cluster 模式""" + +single_mongo_type.desc: +"""Standalone 模式。当 MongoDB 服务运行在 standalone 模式下,该配置必须设置为 'single'。""" + +single_mongo_type.label: +"""Standalone 模式""" + +socket_timeout.desc: +"""在尝试超时之前,在套接字上尝试发送或接收的持续时间。""" + +socket_timeout.label: +"""套接字操作超时""" + +srv_record.desc: +"""使用 DNS SRV 记录。""" + +srv_record.label: +"""SRV 记录""" + +w_mode.desc: +"""写模式。""" + +w_mode.label: +"""写模式""" + +wait_queue_timeout.desc: +"""工作者等待连接可用的最长时间。""" + +wait_queue_timeout.label: +"""等待队列超时""" + +} From a65d7688738b7ca37661322c21a070bca904bbaf Mon Sep 17 00:00:00 2001 From: Kjell Winblad Date: Mon, 15 May 2023 16:48:11 +0200 Subject: [PATCH 4/8] style: fix format issues --- apps/emqx_authn/src/emqx_authn.app.src | 4 +++- .../src/emqx_bridge_mongodb.app.src | 16 +++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/apps/emqx_authn/src/emqx_authn.app.src b/apps/emqx_authn/src/emqx_authn.app.src index 5f81232a4..1cb4c8eca 100644 --- a/apps/emqx_authn/src/emqx_authn.app.src +++ b/apps/emqx_authn/src/emqx_authn.app.src @@ -4,7 +4,9 @@ {vsn, "0.1.22"}, {modules, []}, {registered, [emqx_authn_sup, emqx_authn_registry]}, - {applications, [kernel, stdlib, emqx_resource, emqx_connector, ehttpc, epgsql, mysql, jose, emqx_mongodb]}, + {applications, [ + kernel, stdlib, emqx_resource, emqx_connector, ehttpc, epgsql, mysql, jose, emqx_mongodb + ]}, {mod, {emqx_authn_app, []}}, {env, []}, {licenses, ["Apache-2.0"]}, diff --git a/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src index b392be2b1..b10c92aef 100644 --- a/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src +++ b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src @@ -2,13 +2,15 @@ {description, "EMQX Enterprise MongoDB Bridge"}, {vsn, "0.2.0"}, {registered, []}, - {applications, [kernel, - stdlib, - emqx_connector, - emqx_resource, - emqx_bridge, - emqx_ee_bridge, - emqx_mongodb]}, + {applications, [ + kernel, + stdlib, + emqx_connector, + emqx_resource, + emqx_bridge, + emqx_ee_bridge, + emqx_mongodb + ]}, {env, []}, {modules, []}, {links, []} From f9107e9dc9a79c5c3a8f1807e6dc104a4c8139c7 Mon Sep 17 00:00:00 2001 From: Kjell Winblad Date: Wed, 17 May 2023 11:26:08 +0200 Subject: [PATCH 5/8] docs: add changelog --- changes/ce/feat-10667.en.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/ce/feat-10667.en.md diff --git a/changes/ce/feat-10667.en.md b/changes/ce/feat-10667.en.md new file mode 100644 index 000000000..b38ac5674 --- /dev/null +++ b/changes/ce/feat-10667.en.md @@ -0,0 +1 @@ +The MongoDB connector and bridge have been refactored to a separate app to improve code structure. From a91a478d42b02bf9f288b8a11565fb9b93c9fcf6 Mon Sep 17 00:00:00 2001 From: Kjell Winblad Date: Wed, 17 May 2023 16:49:31 +0200 Subject: [PATCH 6/8] build: fix order in mix.exs list due to CI script --- apps/emqx_bridge_mongodb/rebar.config | 1 - lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl | 6 +++--- mix.exs | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/emqx_bridge_mongodb/rebar.config b/apps/emqx_bridge_mongodb/rebar.config index 1605fc967..568a1837d 100644 --- a/apps/emqx_bridge_mongodb/rebar.config +++ b/apps/emqx_bridge_mongodb/rebar.config @@ -4,7 +4,6 @@ , {emqx_resource, {path, "../../apps/emqx_resource"}} , {emqx_bridge, {path, "../../apps/emqx_bridge"}} , {emqx_mongodb, {path, "../../apps/emqx_mongodb"}} - , {emqx_ee_bridge, {path, "../../lib-ee/emqx_ee_bridge"}} ]}. {shell, [ diff --git a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl b/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl index 6eec44388..4a430bea7 100644 --- a/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl +++ b/lib-ee/emqx_ee_bridge/src/emqx_ee_bridge.erl @@ -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_bridge_mongodb, Method ++ "_rs"), - api_ref(emqx_bridge_mongodb, Method ++ "_sharded"), - api_ref(emqx_bridge_mongodb, Method ++ "_single"), + api_ref(emqx_bridge_mongodb, <<"mongodb_rs">>, Method ++ "_rs"), + api_ref(emqx_bridge_mongodb, <<"mongodb_sharded">>, Method ++ "_sharded"), + api_ref(emqx_bridge_mongodb, <<"mongodb_single">>, 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"), diff --git a/mix.exs b/mix.exs index b0863b5ce..97ac0bb76 100644 --- a/mix.exs +++ b/mix.exs @@ -376,8 +376,8 @@ defmodule EMQXUmbrella.MixProject do emqx_prometheus: :permanent, emqx_psk: :permanent, emqx_slow_subs: :permanent, - emqx_plugins: :permanent, emqx_mongodb: :permanent, + emqx_plugins: :permanent, emqx_mix: :none ] ++ if(enable_quicer?(), do: [quicer: :permanent], else: []) ++ From 8281b746953f37c18e4f69f290831715fa98057d Mon Sep 17 00:00:00 2001 From: Kjell Winblad Date: Mon, 19 Jun 2023 12:10:07 +0200 Subject: [PATCH 7/8] docs: remove translations that should go to https://github.com/emqx/emqx-i18n --- rel/i18n/zh/emqx_bridge_mongodb.hocon | 57 ---------- rel/i18n/zh/emqx_mongodb.hocon | 152 -------------------------- 2 files changed, 209 deletions(-) delete mode 100644 rel/i18n/zh/emqx_bridge_mongodb.hocon delete mode 100644 rel/i18n/zh/emqx_mongodb.hocon diff --git a/rel/i18n/zh/emqx_bridge_mongodb.hocon b/rel/i18n/zh/emqx_bridge_mongodb.hocon deleted file mode 100644 index 9a4c7d954..000000000 --- a/rel/i18n/zh/emqx_bridge_mongodb.hocon +++ /dev/null @@ -1,57 +0,0 @@ -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: -"""有效载荷模板""" - -} diff --git a/rel/i18n/zh/emqx_mongodb.hocon b/rel/i18n/zh/emqx_mongodb.hocon deleted file mode 100644 index 2d3c5c16d..000000000 --- a/rel/i18n/zh/emqx_mongodb.hocon +++ /dev/null @@ -1,152 +0,0 @@ -emqx_mongodb { - -auth_source.desc: -"""与用户证书关联的数据库名称。""" - -auth_source.label: -"""认证源""" - -connect_timeout.desc: -"""超时重连的等待时间。""" - -connect_timeout.label: -"""连接超时""" - -desc_rs.desc: -"""配置 Replica Set""" - -desc_rs.label: -"""配置 Replica Set""" - -desc_sharded.desc: -"""配置 Sharded Cluster""" - -desc_sharded.label: -"""配置 Sharded Cluster""" - -desc_single.desc: -"""配置 Single 模式""" - -desc_single.label: -"""配置 Single 模式""" - -desc_topology.desc: -"""配置 Topology""" - -desc_topology.label: -"""配置 Topology""" - -heartbeat_period.desc: -"""控制驱动程序何时检查MongoDB部署的状态。指定检查的间隔时间,从上一次检查结束到下一次检查开始计算。如果连接数增加(例如,如果你增加池子的大小,就会发生这种情况),你可能也需要增加这个周期,以避免在MongoDB日志文件中创建太多的日志条目。""" - -heartbeat_period.label: -"""心跳期""" - -local_threshold.desc: -"""在多个合适的MongoDB实例中进行选择的延迟窗口的大小。""" - -local_threshold.label: -"""本地阈值""" - -max_overflow.desc: -"""最大溢出。""" - -max_overflow.label: -"""最大溢出""" - -min_heartbeat_period.desc: -"""心跳间的最小间隙""" - -min_heartbeat_period.label: -"""最小心跳周期""" - -overflow_check_period.desc: -"""检查是否有超过配置的工人的周期("溢出")。""" - -overflow_check_period.label: -"""溢出检查周期""" - -overflow_ttl.desc: -"""当池内工人太多时,等待多久清除多余工人。""" - -overflow_ttl.label: -"""溢出TTL""" - -r_mode.desc: -"""读模式。""" - -r_mode.label: -"""读模式""" - -replica_set_name.desc: -"""副本集的名称。""" - -replica_set_name.label: -"""副本集名称""" - -rs_mongo_type.desc: -"""Replica set模式。当 MongoDB 服务运行在 replica-set 模式下,该配置必须设置为 'rs'。""" - -rs_mongo_type.label: -"""Replica set 模式""" - -server.desc: -"""将要连接的 IPv4 或 IPv6 地址,或者主机名。
-主机名具有以下形式:`Host[:Port]`。
-如果未指定 `[:Port]`,则使用 MongoDB 默认端口 27017。""" - -server.label: -"""服务器地址""" - -server_selection_timeout.desc: -"""指定在抛出异常之前为服务器选择阻断多长时间。""" - -server_selection_timeout.label: -"""服务器选择超时""" - -servers.desc: -"""集群将要连接的节点列表。 节点之间用逗号分隔,如:`Node[,Node].` -每个节点的配置为:将要连接的 IPv4 或 IPv6 地址或主机名。 -主机名具有以下形式:`Host[:Port]`。 -如果未指定 `[:Port]`,则使用 MongoDB 默认端口 27017。""" - -servers.label: -"""服务器列表""" - -sharded_mongo_type.desc: -"""Sharded cluster模式。当 MongoDB 服务运行在 sharded 模式下,该配置必须设置为 'sharded'。""" - -sharded_mongo_type.label: -"""Sharded cluster 模式""" - -single_mongo_type.desc: -"""Standalone 模式。当 MongoDB 服务运行在 standalone 模式下,该配置必须设置为 'single'。""" - -single_mongo_type.label: -"""Standalone 模式""" - -socket_timeout.desc: -"""在尝试超时之前,在套接字上尝试发送或接收的持续时间。""" - -socket_timeout.label: -"""套接字操作超时""" - -srv_record.desc: -"""使用 DNS SRV 记录。""" - -srv_record.label: -"""SRV 记录""" - -w_mode.desc: -"""写模式。""" - -w_mode.label: -"""写模式""" - -wait_queue_timeout.desc: -"""工作者等待连接可用的最长时间。""" - -wait_queue_timeout.label: -"""等待队列超时""" - -} From 36b7aef04c5e3a310f7735e62ba24678262e8949 Mon Sep 17 00:00:00 2001 From: Kjell Winblad Date: Mon, 26 Jun 2023 14:35:29 +0200 Subject: [PATCH 8/8] chore: bump versions --- apps/emqx_authz/src/emqx_authz.app.src | 2 +- lib-ee/emqx_ee_connector/src/emqx_ee_connector.app.src | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/emqx_authz/src/emqx_authz.app.src b/apps/emqx_authz/src/emqx_authz.app.src index cfdae07ce..db73b4e37 100644 --- a/apps/emqx_authz/src/emqx_authz.app.src +++ b/apps/emqx_authz/src/emqx_authz.app.src @@ -1,7 +1,7 @@ %% -*- mode: erlang -*- {application, emqx_authz, [ {description, "An OTP application"}, - {vsn, "0.1.22"}, + {vsn, "0.1.23"}, {registered, []}, {mod, {emqx_authz_app, []}}, {applications, [ diff --git a/lib-ee/emqx_ee_connector/src/emqx_ee_connector.app.src b/lib-ee/emqx_ee_connector/src/emqx_ee_connector.app.src index 702b9ff09..9fe22d020 100644 --- a/lib-ee/emqx_ee_connector/src/emqx_ee_connector.app.src +++ b/lib-ee/emqx_ee_connector/src/emqx_ee_connector.app.src @@ -1,6 +1,6 @@ {application, emqx_ee_connector, [ {description, "EMQX Enterprise connectors"}, - {vsn, "0.1.14"}, + {vsn, "0.1.15"}, {registered, []}, {applications, [ kernel,