Browse Source

fix(mongodb_action): make `batch_size` hidden and fixed in the API

Fixes https://emqx.atlassian.net/browse/ED-1171

The old bridge schema already had this override, but it had not been ported to actions.
Thales Macedo Garitezi 2 years ago
parent
commit
a5e7db793b

+ 11 - 4
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")
             })}

+ 1 - 1
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,

+ 12 - 1
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) ->

+ 1 - 0
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.