diff --git a/apps/emqx_bridge/i18n/emqx_bridge_api.conf b/apps/emqx_bridge/i18n/emqx_bridge_api.conf index ed71a9ba6..e8bb2403a 100644 --- a/apps/emqx_bridge/i18n/emqx_bridge_api.conf +++ b/apps/emqx_bridge/i18n/emqx_bridge_api.conf @@ -24,12 +24,12 @@ emqx_bridge_api { desc_param_path_node { desc { - en: """The bridge Id. Must be of format {type}:{name}""" - zh: """Bridge ID , 格式为 {type}:{name}""" + en: """The node name, e.g. emqx@127.0.0.1""" + zh: """节点名,比如 emqx@127.0.0.1""" } label: { - en: "Bridge ID" - zh: "Bridge ID" + en: "The node name" + zh: "节点名" } } diff --git a/apps/emqx_bridge/i18n/emqx_bridge_schema.conf b/apps/emqx_bridge/i18n/emqx_bridge_schema.conf index ff7239cef..b1a8e56f9 100644 --- a/apps/emqx_bridge/i18n/emqx_bridge_schema.conf +++ b/apps/emqx_bridge/i18n/emqx_bridge_schema.conf @@ -14,12 +14,13 @@ emqx_bridge_schema { desc_connector { desc { en: """ -The connector ID to be used for this bridge. Connector IDs must be of format: +The ID or the configs of the connector to be used for this bridge. Connector IDs must be of format: {type}:{name}.
In config files, you can find the corresponding config entry for a connector by such path: 'connectors.{type}.{name}'.
""" - zh: """Bridge 使用的 Connector 的 ID。Connector ID 的格式必须为:{type}:{name}.
+ zh: """ +Bridge 使用的 Connector 的 ID 或者配置。Connector ID 的格式必须为:{type}:{name}.
在配置文件中,您可以通过以下路径找到 Connector 的相应配置条目:'connector.{type}.{name}'。
""" } label: { diff --git a/apps/emqx_bridge/src/emqx_bridge_mqtt_schema.erl b/apps/emqx_bridge/src/emqx_bridge_mqtt_schema.erl index 15e24024a..9fc06ec0e 100644 --- a/apps/emqx_bridge/src/emqx_bridge_mqtt_schema.erl +++ b/apps/emqx_bridge/src/emqx_bridge_mqtt_schema.erl @@ -13,11 +13,11 @@ roots() -> []. fields("ingress") -> [emqx_bridge_schema:direction_field(ingress, emqx_connector_mqtt_schema:ingress_desc())] ++ - emqx_bridge_schema:common_bridge_fields() ++ + emqx_bridge_schema:common_bridge_fields(mqtt_connector_ref()) ++ proplists:delete(hookpoint, emqx_connector_mqtt_schema:fields("ingress")); fields("egress") -> [emqx_bridge_schema:direction_field(egress, emqx_connector_mqtt_schema:egress_desc())] ++ - emqx_bridge_schema:common_bridge_fields() ++ + emqx_bridge_schema:common_bridge_fields(mqtt_connector_ref()) ++ emqx_connector_mqtt_schema:fields("egress"); fields("post_ingress") -> [ @@ -63,3 +63,6 @@ name_field() -> desc => ?DESC("desc_name") } )}. + +mqtt_connector_ref() -> + ?R_REF(emqx_connector_mqtt_schema, "connector"). diff --git a/apps/emqx_bridge/src/emqx_bridge_schema.erl b/apps/emqx_bridge/src/emqx_bridge_schema.erl index 584c67b85..d512df323 100644 --- a/apps/emqx_bridge/src/emqx_bridge_schema.erl +++ b/apps/emqx_bridge/src/emqx_bridge_schema.erl @@ -14,7 +14,7 @@ ]). -export([ - common_bridge_fields/0, + common_bridge_fields/1, metrics_status_fields/0, direction_field/2 ]). @@ -50,7 +50,7 @@ http_schema(Method) -> | Schemas ]). -common_bridge_fields() -> +common_bridge_fields(ConnectorRef) -> [ {enable, mk( @@ -62,7 +62,7 @@ common_bridge_fields() -> )}, {connector, mk( - binary(), + hoconsc:union([binary(), ConnectorRef]), #{ required => true, example => <<"mqtt:my_mqtt_connector">>,