diff --git a/apps/emqx_bridge/src/schema/emqx_bridge_v2_schema.erl b/apps/emqx_bridge/src/schema/emqx_bridge_v2_schema.erl index 74239ffc0..fd0fb076c 100644 --- a/apps/emqx_bridge/src/schema/emqx_bridge_v2_schema.erl +++ b/apps/emqx_bridge/src/schema/emqx_bridge_v2_schema.erl @@ -50,8 +50,8 @@ ]). -export([ - make_producer_action_schema/1, - make_consumer_action_schema/1, + make_producer_action_schema/1, make_producer_action_schema/2, + make_consumer_action_schema/1, make_consumer_action_schema/2, top_level_common_action_keys/0, project_to_actions_resource_opts/1 ]). @@ -282,12 +282,19 @@ top_level_common_action_keys() -> %%====================================================================================== make_producer_action_schema(ActionParametersRef) -> + make_producer_action_schema(ActionParametersRef, _Opts = #{}). + +make_producer_action_schema(ActionParametersRef, Opts) -> [ {local_topic, mk(binary(), #{required => false, desc => ?DESC(mqtt_topic)})} - | make_consumer_action_schema(ActionParametersRef) + | make_consumer_action_schema(ActionParametersRef, Opts) ]. make_consumer_action_schema(ActionParametersRef) -> + make_consumer_action_schema(ActionParametersRef, _Opts = #{}). + +make_consumer_action_schema(ActionParametersRef, Opts) -> + ResourceOptsRef = maps:get(resource_opts_ref, Opts, ref(?MODULE, resource_opts)), [ {enable, mk(boolean(), #{desc => ?DESC("config_enable"), default => true})}, {connector, @@ -297,7 +304,7 @@ make_consumer_action_schema(ActionParametersRef) -> {description, emqx_schema:description_schema()}, {parameters, ActionParametersRef}, {resource_opts, - mk(ref(?MODULE, resource_opts), #{ + mk(ResourceOptsRef, #{ default => #{}, desc => ?DESC(emqx_resource_schema, "resource_opts") })} 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 f361d5276..198c5f8e8 100644 --- a/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src +++ b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.app.src @@ -1,6 +1,6 @@ {application, emqx_bridge_mongodb, [ {description, "EMQX Enterprise MongoDB Bridge"}, - {vsn, "0.2.2"}, + {vsn, "0.2.3"}, {registered, []}, {applications, [ kernel, diff --git a/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.erl b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.erl index 5ba73303f..e8eb93624 100644 --- a/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.erl +++ b/apps/emqx_bridge_mongodb/src/emqx_bridge_mongodb.erl @@ -86,7 +86,8 @@ fields(mongodb_action) -> emqx_bridge_v2_schema:make_producer_action_schema( mk(ref(?MODULE, action_parameters), #{ required => true, desc => ?DESC(action_parameters) - }) + }), + #{resource_opts_ref => ref(?MODULE, action_resource_opts)} ); fields(action_parameters) -> [ @@ -95,6 +96,14 @@ fields(action_parameters) -> ]; fields(connector_resource_opts) -> emqx_connector_schema:resource_opts_fields(); +fields(action_resource_opts) -> + emqx_bridge_v2_schema:resource_opts_fields([ + {batch_size, #{ + importance => ?IMPORTANCE_HIDDEN, + converter => fun(_, _) -> 1 end, + desc => ?DESC("batch_size") + }} + ]); fields(resource_opts) -> fields("creation_opts"); fields(mongodb_rs) -> @@ -213,6 +222,8 @@ desc("creation_opts") -> ?DESC(emqx_resource_schema, "creation_opts"); desc(resource_opts) -> ?DESC(emqx_resource_schema, "resource_opts"); +desc(action_resource_opts) -> + ?DESC(emqx_resource_schema, "resource_opts"); desc(connector_resource_opts) -> ?DESC(emqx_resource_schema, "resource_opts"); desc(mongodb_rs) -> diff --git a/changes/ee/fix-12317.en.md b/changes/ee/fix-12317.en.md new file mode 100644 index 000000000..c114c4a2a --- /dev/null +++ b/changes/ee/fix-12317.en.md @@ -0,0 +1 @@ +Removed the `resource_opts.batch_size` field from the MongoDB Action schema, as it's still not supported.