From 5b38d592f02cdcbf67744e0577aed0ab08823a13 Mon Sep 17 00:00:00 2001 From: zmstone Date: Thu, 18 Apr 2024 13:16:29 +0200 Subject: [PATCH] feat(http): add `is_template` as HTTP headers field property is_template was designed to be type property. however for HTTP headers, it's a map() type, instead of creating a new type for it, it's easier to just add it as a field property. --- apps/emqx_bridge_http/src/emqx_bridge_http_connector.erl | 3 ++- apps/emqx_bridge_http/src/emqx_bridge_http_schema.erl | 3 ++- apps/emqx_dashboard/src/emqx_dashboard_swagger.erl | 6 +++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/apps/emqx_bridge_http/src/emqx_bridge_http_connector.erl b/apps/emqx_bridge_http/src/emqx_bridge_http_connector.erl index 4eef6968b..e8143d87f 100644 --- a/apps/emqx_bridge_http/src/emqx_bridge_http_connector.erl +++ b/apps/emqx_bridge_http/src/emqx_bridge_http_connector.erl @@ -130,7 +130,8 @@ fields("request") -> })}, {path, hoconsc:mk(emqx_schema:template(), #{required => false, desc => ?DESC("path")})}, {body, hoconsc:mk(emqx_schema:template(), #{required => false, desc => ?DESC("body")})}, - {headers, hoconsc:mk(map(), #{required => false, desc => ?DESC("headers")})}, + {headers, + hoconsc:mk(map(), #{required => false, desc => ?DESC("headers"), is_template => true})}, {max_retries, sc( non_neg_integer(), diff --git a/apps/emqx_bridge_http/src/emqx_bridge_http_schema.erl b/apps/emqx_bridge_http/src/emqx_bridge_http_schema.erl index 8b33b1523..cadbcf0d2 100644 --- a/apps/emqx_bridge_http/src/emqx_bridge_http_schema.erl +++ b/apps/emqx_bridge_http/src/emqx_bridge_http_schema.erl @@ -270,7 +270,8 @@ headers_field() -> <<"content-type">> => <<"application/json">>, <<"keep-alive">> => <<"timeout=5">> }, - desc => ?DESC("config_headers") + desc => ?DESC("config_headers"), + is_template => true } )}. diff --git a/apps/emqx_dashboard/src/emqx_dashboard_swagger.erl b/apps/emqx_dashboard/src/emqx_dashboard_swagger.erl index 7a5ea1939..4ada5994c 100644 --- a/apps/emqx_dashboard/src/emqx_dashboard_swagger.erl +++ b/apps/emqx_dashboard/src/emqx_dashboard_swagger.erl @@ -57,7 +57,11 @@ allowEmptyValue, deprecated, minimum, - maximum + maximum, + %% is_template is a type property, + %% but some exceptions are made for them to be field property + %% for example, HTTP headers (which is a map type) + is_template ]). -define(INIT_SCHEMA, #{