s0l4r commented on issue #2753:
URL: 
https://github.com/apache/apisix-dashboard/issues/2753#issuecomment-1448464340

   > I tested in the latest version of dashboard and found no errors.
   
   That is weird!
   I deployed the dashboard using Helmchart:
   `apisix-dashboard    apisix-system   1               2023-02-24 
13:22:11.245901 +0100 CET    deployed        apisix-dashboard-0.8.0  3.0.0`
   
   Checking the error logs in the dashboard container:
   
   ```
   2023-02-28T16:07:06.233Z     ERROR   store/validate.go:251   schema validate 
failed:s: 
{"allOf":[{"oneOf":[{"required":["uri"]},{"required":["uris"]}]},{"oneOf":[{"not":{"anyOf":[{"required":["host"]},{"required":["hosts"]}]}},{"required":["host"]},{"required":["hosts"]}]},{"oneOf":[{"not":{"anyOf":[{"required":["remote_addr"]},{"required":["remote_addrs"]}]}},{"required":["remote_addr"]},{"required":["remote_addrs"]}]}],"anyOf":[{"required":["plugins","uri"]},{"required":["upstream","uri"]},{"required":["upstream_id","uri"]},{"required":["service_id","uri"]},{"required":["plugins","uris"]},{"required":["upstream","uris"]},{"required":["upstream_id","uris"]},{"required":["service_id","uris"]},{"required":["script","uri"]},{"required":["script","uris"]}],"not":{"anyOf":[{"required":["plugins","script"]},{"required":["plugin_config_id","script"]}]},"properties":{"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"enable_websocket":{"description":"enable
 websocket for 
 
request","type":"boolean"},"filter_func":{"minLength":10,"pattern":"^function","type":"string"},"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"hosts":{"items":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"labels":{"description":"key/value
 pairs to specify attributes","patternProperties":{".*":{"description":"value 
of 
label","maxLength":64,"minLength":1,"pattern":"^\\S+$","type":"string"}},"type":"object"},"methods":{"items":{"description":"HTTP
 
method","enum":["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PURGE","PUT","TRACE"],"type":"string"},"type":"array","uniqueItems":true},"name":{"maxLength":100,"minLength":1,"type":"string"},"plugin_config_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]}
 
,"plugins":{"type":"object"},"priority":{"default":0,"type":"integer"},"remote_addr":{"anyOf":[{"format":"ipv4","title":"IPv4","type":"string"},{"pattern":"^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([12]?[0-9]|3[0-2])$","title":"IPv4/CIDR","type":"string"},{"format":"ipv6","title":"IPv6","type":"string"},{"pattern":"^([a-fA-F0-9]{0,4}:){1,8}(:[a-fA-F0-9]{0,4}){0,8}([a-fA-F0-9]{0,4})?/[0-9]{1,3}$","title":"IPv6/CIDR","type":"string"}],"description":"client
 
IP","type":"string"},"remote_addrs":{"items":{"anyOf":[{"format":"ipv4","title":"IPv4","type":"string"},{"pattern":"^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([12]?[0-9]|3[0-2])$","title":"IPv4/CIDR","type":"string"
 
},{"format":"ipv6","title":"IPv6","type":"string"},{"pattern":"^([a-fA-F0-9]{0,4}:){1,8}(:[a-fA-F0-9]{0,4}){0,8}([a-fA-F0-9]{0,4})?/[0-9]{1,3}$","title":"IPv6/CIDR","type":"string"}],"description":"client
 
IP","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"script":{"maxLength":102400,"minLength":10,"type":"string"},"script_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"service_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"status":{"default":1,"description":"route
 status, 1 to enable, 0 to 
disable","enum":[0,1],"type":"integer"},"timeout":{"properties":{"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"},"send":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","read","send"],"type":"object"},"update_time":{"type":"integer"},"upstream":{"oneOf":[{"required":[
 
"nodes","type"]},{"required":["discovery_type","service_name","type"]}],"properties":{"checks":{"anyOf":[{"required":["active"]},{"required":["active","passive"]}],"properties":{"active":{"properties":{"concurrency":{"default":10,"type":"integer"},"healthy":{"properties":{"http_statuses":{"default":[200,302],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"interval":{"default":1,"minimum":1,"type":"integer"},"successes":{"default":2,"maximum":254,"minimum":1,"type":"integer"}},"type":"object"},"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"http_path":{"default":"/","type":"string"},"https_verify_certificate":{"default":true,"type":"boolean"},"port":{"maximum":65535,"minimum":1,"type":"integer"},"req_headers":{"items":{"type":"string","uniqueItems":true},"minItems":1,"type":"array"},"timeout":{"default":1,"type":"number"},"type":{"default":"http","enum":["http","https","tcp"],"type":"string"},"unhealthy":{"pro
 
perties":{"http_failures":{"default":5,"maximum":254,"minimum":1,"type":"integer"},"http_statuses":{"default":[404,429,500,501,502,503,504,505],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"interval":{"default":1,"minimum":1,"type":"integer"},"tcp_failures":{"default":2,"maximum":254,"minimum":1,"type":"integer"},"timeouts":{"default":3,"maximum":254,"minimum":1,"type":"integer"}},"type":"object"}},"type":"object"},"passive":{"properties":{"healthy":{"properties":{"http_statuses":{"default":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"successes":{"default":5,"maximum":254,"minimum":0,"type":"integer"}},"type":"object"},"type":{"default":"http","enum":["http","https","tcp"],"type":"string"},"unhealthy":{"properties":{"http_failures":{"default":5,"maximum":254,"minimum":0,"type":"integer"},"ht
 
tp_statuses":{"default":[429,500,503],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"tcp_failures":{"default":2,"maximum":254,"minimum":0,"type":"integer"},"timeouts":{"default":7,"maximum":254,"minimum":0,"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"},"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"discovery_args":{"properties":{"group_name":{"description":"group
 name","type":"string"},"namespace_id":{"description":"namespace 
id","type":"string"}},"type":"object"},"discovery_type":{"description":"discovery
 
type","type":"string"},"hash_on":{"default":"vars","enum":["consumer","cookie","header","vars","vars_combinations"],"type":"string"},"id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"keepalive_pool":{"properties":{"idle_timeout":{"default":60,"minimum":0,"type":"number"},"requests":{"default":1000,
 
"minimum":1,"type":"integer"},"size":{"default":320,"minimum":1,"type":"integer"}},"type":"object"},"key":{"description":"the
 key of chash for dynamic load 
balancing","type":"string"},"labels":{"description":"key/value pairs to specify 
attributes","patternProperties":{".*":{"description":"value of 
label","maxLength":64,"minLength":1,"pattern":"^\\S+$","type":"string"}},"type":"object"},"name":{"maxLength":100,"minLength":1,"type":"string"},"nodes":{"anyOf":[{"patternProperties":{".*":{"description":"weight
 of 
node","minimum":0,"type":"integer"}},"type":"object"},{"items":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"metadata":{"description":"metadata
 of node","type":"object"},"port":{"description":"port of 
node","minimum":1,"type":"integer"},"priority":{"default":0,"description":"priority
 of node","type":"integer"},"weight":{"description":"weight of 
node","minimum":0,"type":"integer"}},"required":["host","port","weight"],"type":"object"},"type":"a
 rray"}]},"pass_host":{"default":"pass","description":"mod of host 
passing","enum":["node","pass","rewrite"],"type":"string"},"retries":{"minimum":0,"type":"integer"},"retry_timeout":{"minimum":0,"type":"number"},"scheme":{"default":"http","description":"The
 scheme of the upstream. For L7 proxy, it can be one of grpc/grpcs/http/https. 
For L4 proxy, it can be one of tcp/tls/udp. For specific protocols, it can be 
kafka.","enum":["grpc","grpcs","http","https","kafka","tcp","tls","udp"]},"service_name":{"maxLength":256,"minLength":1,"type":"string"},"timeout":{"properties":{"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"},"send":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","read","send"],"type":"object"},"tls":{"dependencies":{"client_cert":{"not":{"required":["client_cert_id"]},"required":["client_key"]},"client_cert_id":{"not":{"required":["client_client","client_key"]}},"client_key":{"not":{"required":["client_cert_id"]},"
 
required":["client_cert"]}},"properties":{"client_cert":{"maxLength":65536,"minLength":128,"type":"string"},"client_cert_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"client_key":{"maxLength":65536,"minLength":128,"type":"string"},"verify":{"default":false,"description":"Turn
 on server certificate verification, currently only kafka upstream is 
supported","type":"boolean"}},"type":"object"},"type":{"description":"algorithms
 of load 
balancing","type":"string"},"update_time":{"type":"integer"},"upstream_host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"}},"type":"object"},"upstream_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"uri":{"maxLength":4096,"minLength":1,"type":"string"},"uris":{"items":{"description":"HTTP
 
uri","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"vars":{"type":"array"}},"type":"
 object"}, obj: &entity.Route{BaseInfo:entity.BaseInfo{ID:"449748215462363821", 
CreateTime:1677600426, UpdateTime:1677600426}, URI:"", 
Uris:[]string{"/pet/*/uploadImage"}, Name:"Test 
import_pet/{petId}/uploadImage", Desc:"", Priority:0, Methods:[]string{"POST"}, 
Host:"", Hosts:[]string(nil), RemoteAddr:"", RemoteAddrs:[]string(nil), 
Vars:[]interface {}(nil), FilterFunc:"", Script:interface {}(nil), 
ScriptID:interface {}(nil), Plugins:map[string]interface {}{}, 
PluginConfigID:interface {}(nil), Upstream:(*entity.UpstreamDef)(nil), 
ServiceID:interface {}(nil), UpstreamID:"Test import", ServiceProtocol:"", 
Labels:map[string]string(nil), EnableWebsocket:false, Status:0x0}
   2023-02-28T16:07:06.236Z     ERROR   store/store.go:224      data validate 
failed: schema validate failed: upstream_id: Must validate at least one schema 
(anyOf)
   upstream_id: Does not match pattern '^[a-zA-Z0-9-_.]+$', 
&{{449748215462363821 1677600426 1677600426}  [/pet/*/uploadImage] Test 
import_pet/{petId}/uploadImage  0 [POST]  []  [] []  <nil> <nil> map[] <nil> 
<nil> <nil> Test import  map[] false 0}
   2023-02-28T16:07:06.237Z     ERROR   store/validate.go:251   schema validate 
failed:s: 
{"allOf":[{"oneOf":[{"required":["uri"]},{"required":["uris"]}]},{"oneOf":[{"not":{"anyOf":[{"required":["host"]},{"required":["hosts"]}]}},{"required":["host"]},{"required":["hosts"]}]},{"oneOf":[{"not":{"anyOf":[{"required":["remote_addr"]},{"required":["remote_addrs"]}]}},{"required":["remote_addr"]},{"required":["remote_addrs"]}]}],"anyOf":[{"required":["plugins","uri"]},{"required":["upstream","uri"]},{"required":["upstream_id","uri"]},{"required":["service_id","uri"]},{"required":["plugins","uris"]},{"required":["upstream","uris"]},{"required":["upstream_id","uris"]},{"required":["service_id","uris"]},{"required":["script","uri"]},{"required":["script","uris"]}],"not":{"anyOf":[{"required":["plugins","script"]},{"required":["plugin_config_id","script"]}]},"properties":{"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"enable_websocket":{"description":"enable
 websocket for 
 
request","type":"boolean"},"filter_func":{"minLength":10,"pattern":"^function","type":"string"},"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"hosts":{"items":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"labels":{"description":"key/value
 pairs to specify attributes","patternProperties":{".*":{"description":"value 
of 
label","maxLength":64,"minLength":1,"pattern":"^\\S+$","type":"string"}},"type":"object"},"methods":{"items":{"description":"HTTP
 
method","enum":["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PURGE","PUT","TRACE"],"type":"string"},"type":"array","uniqueItems":true},"name":{"maxLength":100,"minLength":1,"type":"string"},"plugin_config_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]}
 
,"plugins":{"type":"object"},"priority":{"default":0,"type":"integer"},"remote_addr":{"anyOf":[{"format":"ipv4","title":"IPv4","type":"string"},{"pattern":"^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([12]?[0-9]|3[0-2])$","title":"IPv4/CIDR","type":"string"},{"format":"ipv6","title":"IPv6","type":"string"},{"pattern":"^([a-fA-F0-9]{0,4}:){1,8}(:[a-fA-F0-9]{0,4}){0,8}([a-fA-F0-9]{0,4})?/[0-9]{1,3}$","title":"IPv6/CIDR","type":"string"}],"description":"client
 
IP","type":"string"},"remote_addrs":{"items":{"anyOf":[{"format":"ipv4","title":"IPv4","type":"string"},{"pattern":"^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([12]?[0-9]|3[0-2])$","title":"IPv4/CIDR","type":"string"
 
},{"format":"ipv6","title":"IPv6","type":"string"},{"pattern":"^([a-fA-F0-9]{0,4}:){1,8}(:[a-fA-F0-9]{0,4}){0,8}([a-fA-F0-9]{0,4})?/[0-9]{1,3}$","title":"IPv6/CIDR","type":"string"}],"description":"client
 
IP","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"script":{"maxLength":102400,"minLength":10,"type":"string"},"script_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"service_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"status":{"default":1,"description":"route
 status, 1 to enable, 0 to 
disable","enum":[0,1],"type":"integer"},"timeout":{"properties":{"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"},"send":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","read","send"],"type":"object"},"update_time":{"type":"integer"},"upstream":{"oneOf":[{"required":[
 
"nodes","type"]},{"required":["discovery_type","service_name","type"]}],"properties":{"checks":{"anyOf":[{"required":["active"]},{"required":["active","passive"]}],"properties":{"active":{"properties":{"concurrency":{"default":10,"type":"integer"},"healthy":{"properties":{"http_statuses":{"default":[200,302],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"interval":{"default":1,"minimum":1,"type":"integer"},"successes":{"default":2,"maximum":254,"minimum":1,"type":"integer"}},"type":"object"},"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"http_path":{"default":"/","type":"string"},"https_verify_certificate":{"default":true,"type":"boolean"},"port":{"maximum":65535,"minimum":1,"type":"integer"},"req_headers":{"items":{"type":"string","uniqueItems":true},"minItems":1,"type":"array"},"timeout":{"default":1,"type":"number"},"type":{"default":"http","enum":["http","https","tcp"],"type":"string"},"unhealthy":{"pro
 
perties":{"http_failures":{"default":5,"maximum":254,"minimum":1,"type":"integer"},"http_statuses":{"default":[404,429,500,501,502,503,504,505],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"interval":{"default":1,"minimum":1,"type":"integer"},"tcp_failures":{"default":2,"maximum":254,"minimum":1,"type":"integer"},"timeouts":{"default":3,"maximum":254,"minimum":1,"type":"integer"}},"type":"object"}},"type":"object"},"passive":{"properties":{"healthy":{"properties":{"http_statuses":{"default":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"successes":{"default":5,"maximum":254,"minimum":0,"type":"integer"}},"type":"object"},"type":{"default":"http","enum":["http","https","tcp"],"type":"string"},"unhealthy":{"properties":{"http_failures":{"default":5,"maximum":254,"minimum":0,"type":"integer"},"ht
 
tp_statuses":{"default":[429,500,503],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"tcp_failures":{"default":2,"maximum":254,"minimum":0,"type":"integer"},"timeouts":{"default":7,"maximum":254,"minimum":0,"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"},"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"discovery_args":{"properties":{"group_name":{"description":"group
 name","type":"string"},"namespace_id":{"description":"namespace 
id","type":"string"}},"type":"object"},"discovery_type":{"description":"discovery
 
type","type":"string"},"hash_on":{"default":"vars","enum":["consumer","cookie","header","vars","vars_combinations"],"type":"string"},"id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"keepalive_pool":{"properties":{"idle_timeout":{"default":60,"minimum":0,"type":"number"},"requests":{"default":1000,
 
"minimum":1,"type":"integer"},"size":{"default":320,"minimum":1,"type":"integer"}},"type":"object"},"key":{"description":"the
 key of chash for dynamic load 
balancing","type":"string"},"labels":{"description":"key/value pairs to specify 
attributes","patternProperties":{".*":{"description":"value of 
label","maxLength":64,"minLength":1,"pattern":"^\\S+$","type":"string"}},"type":"object"},"name":{"maxLength":100,"minLength":1,"type":"string"},"nodes":{"anyOf":[{"patternProperties":{".*":{"description":"weight
 of 
node","minimum":0,"type":"integer"}},"type":"object"},{"items":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"metadata":{"description":"metadata
 of node","type":"object"},"port":{"description":"port of 
node","minimum":1,"type":"integer"},"priority":{"default":0,"description":"priority
 of node","type":"integer"},"weight":{"description":"weight of 
node","minimum":0,"type":"integer"}},"required":["host","port","weight"],"type":"object"},"type":"a
 rray"}]},"pass_host":{"default":"pass","description":"mod of host 
passing","enum":["node","pass","rewrite"],"type":"string"},"retries":{"minimum":0,"type":"integer"},"retry_timeout":{"minimum":0,"type":"number"},"scheme":{"default":"http","description":"The
 scheme of the upstream. For L7 proxy, it can be one of grpc/grpcs/http/https. 
For L4 proxy, it can be one of tcp/tls/udp. For specific protocols, it can be 
kafka.","enum":["grpc","grpcs","http","https","kafka","tcp","tls","udp"]},"service_name":{"maxLength":256,"minLength":1,"type":"string"},"timeout":{"properties":{"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"},"send":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","read","send"],"type":"object"},"tls":{"dependencies":{"client_cert":{"not":{"required":["client_cert_id"]},"required":["client_key"]},"client_cert_id":{"not":{"required":["client_client","client_key"]}},"client_key":{"not":{"required":["client_cert_id"]},"
 
required":["client_cert"]}},"properties":{"client_cert":{"maxLength":65536,"minLength":128,"type":"string"},"client_cert_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"client_key":{"maxLength":65536,"minLength":128,"type":"string"},"verify":{"default":false,"description":"Turn
 on server certificate verification, currently only kafka upstream is 
supported","type":"boolean"}},"type":"object"},"type":{"description":"algorithms
 of load 
balancing","type":"string"},"update_time":{"type":"integer"},"upstream_host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"}},"type":"object"},"upstream_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"uri":{"maxLength":4096,"minLength":1,"type":"string"},"uris":{"items":{"description":"HTTP
 
uri","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"vars":{"type":"array"}},"type":"
 object"}, obj: &entity.Route{BaseInfo:entity.BaseInfo{ID:"449748215495918253", 
CreateTime:1677600426, UpdateTime:1677600426}, URI:"", 
Uris:[]string{"/store/order"}, Name:"Test import_store/order", Desc:"", 
Priority:0, Methods:[]string{"POST"}, Host:"", Hosts:[]string(nil), 
RemoteAddr:"", RemoteAddrs:[]string(nil), Vars:[]interface {}(nil), 
FilterFunc:"", Script:interface {}(nil), ScriptID:interface {}(nil), 
Plugins:map[string]interface {}{}, PluginConfigID:interface {}(nil), 
Upstream:(*entity.UpstreamDef)(nil), ServiceID:interface {}(nil), 
UpstreamID:"Test import", ServiceProtocol:"", Labels:map[string]string(nil), 
EnableWebsocket:false, Status:0x0}
   2023-02-28T16:07:06.237Z     ERROR   store/store.go:224      data validate 
failed: schema validate failed: upstream_id: Must validate at least one schema 
(anyOf)
   upstream_id: Does not match pattern '^[a-zA-Z0-9-_.]+$', 
&{{449748215495918253 1677600426 1677600426}  [/store/order] Test 
import_store/order  0 [POST]  []  [] []  <nil> <nil> map[] <nil> <nil> <nil> 
Test import  map[] false 0}
   2023-02-28T16:07:06.239Z     ERROR   store/validate.go:251   schema validate 
failed:s: 
{"allOf":[{"oneOf":[{"required":["uri"]},{"required":["uris"]}]},{"oneOf":[{"not":{"anyOf":[{"required":["host"]},{"required":["hosts"]}]}},{"required":["host"]},{"required":["hosts"]}]},{"oneOf":[{"not":{"anyOf":[{"required":["remote_addr"]},{"required":["remote_addrs"]}]}},{"required":["remote_addr"]},{"required":["remote_addrs"]}]}],"anyOf":[{"required":["plugins","uri"]},{"required":["upstream","uri"]},{"required":["upstream_id","uri"]},{"required":["service_id","uri"]},{"required":["plugins","uris"]},{"required":["upstream","uris"]},{"required":["upstream_id","uris"]},{"required":["service_id","uris"]},{"required":["script","uri"]},{"required":["script","uris"]}],"not":{"anyOf":[{"required":["plugins","script"]},{"required":["plugin_config_id","script"]}]},"properties":{"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"enable_websocket":{"description":"enable
 websocket for 
 
request","type":"boolean"},"filter_func":{"minLength":10,"pattern":"^function","type":"string"},"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"hosts":{"items":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"labels":{"description":"key/value
 pairs to specify attributes","patternProperties":{".*":{"description":"value 
of 
label","maxLength":64,"minLength":1,"pattern":"^\\S+$","type":"string"}},"type":"object"},"methods":{"items":{"description":"HTTP
 
method","enum":["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PURGE","PUT","TRACE"],"type":"string"},"type":"array","uniqueItems":true},"name":{"maxLength":100,"minLength":1,"type":"string"},"plugin_config_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]}
 
,"plugins":{"type":"object"},"priority":{"default":0,"type":"integer"},"remote_addr":{"anyOf":[{"format":"ipv4","title":"IPv4","type":"string"},{"pattern":"^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([12]?[0-9]|3[0-2])$","title":"IPv4/CIDR","type":"string"},{"format":"ipv6","title":"IPv6","type":"string"},{"pattern":"^([a-fA-F0-9]{0,4}:){1,8}(:[a-fA-F0-9]{0,4}){0,8}([a-fA-F0-9]{0,4})?/[0-9]{1,3}$","title":"IPv6/CIDR","type":"string"}],"description":"client
 
IP","type":"string"},"remote_addrs":{"items":{"anyOf":[{"format":"ipv4","title":"IPv4","type":"string"},{"pattern":"^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([12]?[0-9]|3[0-2])$","title":"IPv4/CIDR","type":"string"
 
},{"format":"ipv6","title":"IPv6","type":"string"},{"pattern":"^([a-fA-F0-9]{0,4}:){1,8}(:[a-fA-F0-9]{0,4}){0,8}([a-fA-F0-9]{0,4})?/[0-9]{1,3}$","title":"IPv6/CIDR","type":"string"}],"description":"client
 
IP","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"script":{"maxLength":102400,"minLength":10,"type":"string"},"script_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"service_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"status":{"default":1,"description":"route
 status, 1 to enable, 0 to 
disable","enum":[0,1],"type":"integer"},"timeout":{"properties":{"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"},"send":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","read","send"],"type":"object"},"update_time":{"type":"integer"},"upstream":{"oneOf":[{"required":[
 
"nodes","type"]},{"required":["discovery_type","service_name","type"]}],"properties":{"checks":{"anyOf":[{"required":["active"]},{"required":["active","passive"]}],"properties":{"active":{"properties":{"concurrency":{"default":10,"type":"integer"},"healthy":{"properties":{"http_statuses":{"default":[200,302],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"interval":{"default":1,"minimum":1,"type":"integer"},"successes":{"default":2,"maximum":254,"minimum":1,"type":"integer"}},"type":"object"},"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"http_path":{"default":"/","type":"string"},"https_verify_certificate":{"default":true,"type":"boolean"},"port":{"maximum":65535,"minimum":1,"type":"integer"},"req_headers":{"items":{"type":"string","uniqueItems":true},"minItems":1,"type":"array"},"timeout":{"default":1,"type":"number"},"type":{"default":"http","enum":["http","https","tcp"],"type":"string"},"unhealthy":{"pro
 
perties":{"http_failures":{"default":5,"maximum":254,"minimum":1,"type":"integer"},"http_statuses":{"default":[404,429,500,501,502,503,504,505],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"interval":{"default":1,"minimum":1,"type":"integer"},"tcp_failures":{"default":2,"maximum":254,"minimum":1,"type":"integer"},"timeouts":{"default":3,"maximum":254,"minimum":1,"type":"integer"}},"type":"object"}},"type":"object"},"passive":{"properties":{"healthy":{"properties":{"http_statuses":{"default":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"successes":{"default":5,"maximum":254,"minimum":0,"type":"integer"}},"type":"object"},"type":{"default":"http","enum":["http","https","tcp"],"type":"string"},"unhealthy":{"properties":{"http_failures":{"default":5,"maximum":254,"minimum":0,"type":"integer"},"ht
 
tp_statuses":{"default":[429,500,503],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"tcp_failures":{"default":2,"maximum":254,"minimum":0,"type":"integer"},"timeouts":{"default":7,"maximum":254,"minimum":0,"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"},"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"discovery_args":{"properties":{"group_name":{"description":"group
 name","type":"string"},"namespace_id":{"description":"namespace 
id","type":"string"}},"type":"object"},"discovery_type":{"description":"discovery
 
type","type":"string"},"hash_on":{"default":"vars","enum":["consumer","cookie","header","vars","vars_combinations"],"type":"string"},"id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"keepalive_pool":{"properties":{"idle_timeout":{"default":60,"minimum":0,"type":"number"},"requests":{"default":1000,
 
"minimum":1,"type":"integer"},"size":{"default":320,"minimum":1,"type":"integer"}},"type":"object"},"key":{"description":"the
 key of chash for dynamic load 
balancing","type":"string"},"labels":{"description":"key/value pairs to specify 
attributes","patternProperties":{".*":{"description":"value of 
label","maxLength":64,"minLength":1,"pattern":"^\\S+$","type":"string"}},"type":"object"},"name":{"maxLength":100,"minLength":1,"type":"string"},"nodes":{"anyOf":[{"patternProperties":{".*":{"description":"weight
 of 
node","minimum":0,"type":"integer"}},"type":"object"},{"items":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"metadata":{"description":"metadata
 of node","type":"object"},"port":{"description":"port of 
node","minimum":1,"type":"integer"},"priority":{"default":0,"description":"priority
 of node","type":"integer"},"weight":{"description":"weight of 
node","minimum":0,"type":"integer"}},"required":["host","port","weight"],"type":"object"},"type":"a
 rray"}]},"pass_host":{"default":"pass","description":"mod of host 
passing","enum":["node","pass","rewrite"],"type":"string"},"retries":{"minimum":0,"type":"integer"},"retry_timeout":{"minimum":0,"type":"number"},"scheme":{"default":"http","description":"The
 scheme of the upstream. For L7 proxy, it can be one of grpc/grpcs/http/https. 
For L4 proxy, it can be one of tcp/tls/udp. For specific protocols, it can be 
kafka.","enum":["grpc","grpcs","http","https","kafka","tcp","tls","udp"]},"service_name":{"maxLength":256,"minLength":1,"type":"string"},"timeout":{"properties":{"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"},"send":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","read","send"],"type":"object"},"tls":{"dependencies":{"client_cert":{"not":{"required":["client_cert_id"]},"required":["client_key"]},"client_cert_id":{"not":{"required":["client_client","client_key"]}},"client_key":{"not":{"required":["client_cert_id"]},"
 
required":["client_cert"]}},"properties":{"client_cert":{"maxLength":65536,"minLength":128,"type":"string"},"client_cert_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"client_key":{"maxLength":65536,"minLength":128,"type":"string"},"verify":{"default":false,"description":"Turn
 on server certificate verification, currently only kafka upstream is 
supported","type":"boolean"}},"type":"object"},"type":{"description":"algorithms
 of load 
balancing","type":"string"},"update_time":{"type":"integer"},"upstream_host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"}},"type":"object"},"upstream_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"uri":{"maxLength":4096,"minLength":1,"type":"string"},"uris":{"items":{"description":"HTTP
 
uri","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"vars":{"type":"array"}},"type":"
 object"}, obj: &entity.Route{BaseInfo:entity.BaseInfo{ID:"449748215495983789", 
CreateTime:1677600426, UpdateTime:1677600426}, URI:"", 
Uris:[]string{"/store/order/*"}, Name:"Test import_store/order/{orderId}", 
Desc:"", Priority:0, Methods:[]string{"DELETE", "GET"}, Host:"", 
Hosts:[]string(nil), RemoteAddr:"", RemoteAddrs:[]string(nil), Vars:[]interface 
{}(nil), FilterFunc:"", Script:interface {}(nil), ScriptID:interface {}(nil), 
Plugins:map[string]interface {}{}, PluginConfigID:interface {}(nil), 
Upstream:(*entity.UpstreamDef)(nil), ServiceID:interface {}(nil), 
UpstreamID:"Test import", ServiceProtocol:"", Labels:map[string]string(nil), 
EnableWebsocket:false, Status:0x0}
   2023-02-28T16:07:06.239Z     ERROR   store/store.go:224      data validate 
failed: schema validate failed: upstream_id: Must validate at least one schema 
(anyOf)
   upstream_id: Does not match pattern '^[a-zA-Z0-9-_.]+$', 
&{{449748215495983789 1677600426 1677600426}  [/store/order/*] Test 
import_store/order/{orderId}  0 [DELETE GET]  []  [] []  <nil> <nil> map[] 
<nil> <nil> <nil> Test import  map[] false 0}
   2023-02-28T16:07:06.240Z     ERROR   store/validate.go:251   schema validate 
failed:s: 
{"allOf":[{"oneOf":[{"required":["uri"]},{"required":["uris"]}]},{"oneOf":[{"not":{"anyOf":[{"required":["host"]},{"required":["hosts"]}]}},{"required":["host"]},{"required":["hosts"]}]},{"oneOf":[{"not":{"anyOf":[{"required":["remote_addr"]},{"required":["remote_addrs"]}]}},{"required":["remote_addr"]},{"required":["remote_addrs"]}]}],"anyOf":[{"required":["plugins","uri"]},{"required":["upstream","uri"]},{"required":["upstream_id","uri"]},{"required":["service_id","uri"]},{"required":["plugins","uris"]},{"required":["upstream","uris"]},{"required":["upstream_id","uris"]},{"required":["service_id","uris"]},{"required":["script","uri"]},{"required":["script","uris"]}],"not":{"anyOf":[{"required":["plugins","script"]},{"required":["plugin_config_id","script"]}]},"properties":{"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"enable_websocket":{"description":"enable
 websocket for 
 
request","type":"boolean"},"filter_func":{"minLength":10,"pattern":"^function","type":"string"},"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"hosts":{"items":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"labels":{"description":"key/value
 pairs to specify attributes","patternProperties":{".*":{"description":"value 
of 
label","maxLength":64,"minLength":1,"pattern":"^\\S+$","type":"string"}},"type":"object"},"methods":{"items":{"description":"HTTP
 
method","enum":["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PURGE","PUT","TRACE"],"type":"string"},"type":"array","uniqueItems":true},"name":{"maxLength":100,"minLength":1,"type":"string"},"plugin_config_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]}
 
,"plugins":{"type":"object"},"priority":{"default":0,"type":"integer"},"remote_addr":{"anyOf":[{"format":"ipv4","title":"IPv4","type":"string"},{"pattern":"^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([12]?[0-9]|3[0-2])$","title":"IPv4/CIDR","type":"string"},{"format":"ipv6","title":"IPv6","type":"string"},{"pattern":"^([a-fA-F0-9]{0,4}:){1,8}(:[a-fA-F0-9]{0,4}){0,8}([a-fA-F0-9]{0,4})?/[0-9]{1,3}$","title":"IPv6/CIDR","type":"string"}],"description":"client
 
IP","type":"string"},"remote_addrs":{"items":{"anyOf":[{"format":"ipv4","title":"IPv4","type":"string"},{"pattern":"^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([12]?[0-9]|3[0-2])$","title":"IPv4/CIDR","type":"string"
 
},{"format":"ipv6","title":"IPv6","type":"string"},{"pattern":"^([a-fA-F0-9]{0,4}:){1,8}(:[a-fA-F0-9]{0,4}){0,8}([a-fA-F0-9]{0,4})?/[0-9]{1,3}$","title":"IPv6/CIDR","type":"string"}],"description":"client
 
IP","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"script":{"maxLength":102400,"minLength":10,"type":"string"},"script_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"service_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"status":{"default":1,"description":"route
 status, 1 to enable, 0 to 
disable","enum":[0,1],"type":"integer"},"timeout":{"properties":{"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"},"send":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","read","send"],"type":"object"},"update_time":{"type":"integer"},"upstream":{"oneOf":[{"required":[
 
"nodes","type"]},{"required":["discovery_type","service_name","type"]}],"properties":{"checks":{"anyOf":[{"required":["active"]},{"required":["active","passive"]}],"properties":{"active":{"properties":{"concurrency":{"default":10,"type":"integer"},"healthy":{"properties":{"http_statuses":{"default":[200,302],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"interval":{"default":1,"minimum":1,"type":"integer"},"successes":{"default":2,"maximum":254,"minimum":1,"type":"integer"}},"type":"object"},"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"http_path":{"default":"/","type":"string"},"https_verify_certificate":{"default":true,"type":"boolean"},"port":{"maximum":65535,"minimum":1,"type":"integer"},"req_headers":{"items":{"type":"string","uniqueItems":true},"minItems":1,"type":"array"},"timeout":{"default":1,"type":"number"},"type":{"default":"http","enum":["http","https","tcp"],"type":"string"},"unhealthy":{"pro
 
perties":{"http_failures":{"default":5,"maximum":254,"minimum":1,"type":"integer"},"http_statuses":{"default":[404,429,500,501,502,503,504,505],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"interval":{"default":1,"minimum":1,"type":"integer"},"tcp_failures":{"default":2,"maximum":254,"minimum":1,"type":"integer"},"timeouts":{"default":3,"maximum":254,"minimum":1,"type":"integer"}},"type":"object"}},"type":"object"},"passive":{"properties":{"healthy":{"properties":{"http_statuses":{"default":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"successes":{"default":5,"maximum":254,"minimum":0,"type":"integer"}},"type":"object"},"type":{"default":"http","enum":["http","https","tcp"],"type":"string"},"unhealthy":{"properties":{"http_failures":{"default":5,"maximum":254,"minimum":0,"type":"integer"},"ht
 
tp_statuses":{"default":[429,500,503],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"tcp_failures":{"default":2,"maximum":254,"minimum":0,"type":"integer"},"timeouts":{"default":7,"maximum":254,"minimum":0,"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"},"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"discovery_args":{"properties":{"group_name":{"description":"group
 name","type":"string"},"namespace_id":{"description":"namespace 
id","type":"string"}},"type":"object"},"discovery_type":{"description":"discovery
 
type","type":"string"},"hash_on":{"default":"vars","enum":["consumer","cookie","header","vars","vars_combinations"],"type":"string"},"id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"keepalive_pool":{"properties":{"idle_timeout":{"default":60,"minimum":0,"type":"number"},"requests":{"default":1000,
 
"minimum":1,"type":"integer"},"size":{"default":320,"minimum":1,"type":"integer"}},"type":"object"},"key":{"description":"the
 key of chash for dynamic load 
balancing","type":"string"},"labels":{"description":"key/value pairs to specify 
attributes","patternProperties":{".*":{"description":"value of 
label","maxLength":64,"minLength":1,"pattern":"^\\S+$","type":"string"}},"type":"object"},"name":{"maxLength":100,"minLength":1,"type":"string"},"nodes":{"anyOf":[{"patternProperties":{".*":{"description":"weight
 of 
node","minimum":0,"type":"integer"}},"type":"object"},{"items":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"metadata":{"description":"metadata
 of node","type":"object"},"port":{"description":"port of 
node","minimum":1,"type":"integer"},"priority":{"default":0,"description":"priority
 of node","type":"integer"},"weight":{"description":"weight of 
node","minimum":0,"type":"integer"}},"required":["host","port","weight"],"type":"object"},"type":"a
 rray"}]},"pass_host":{"default":"pass","description":"mod of host 
passing","enum":["node","pass","rewrite"],"type":"string"},"retries":{"minimum":0,"type":"integer"},"retry_timeout":{"minimum":0,"type":"number"},"scheme":{"default":"http","description":"The
 scheme of the upstream. For L7 proxy, it can be one of grpc/grpcs/http/https. 
For L4 proxy, it can be one of tcp/tls/udp. For specific protocols, it can be 
kafka.","enum":["grpc","grpcs","http","https","kafka","tcp","tls","udp"]},"service_name":{"maxLength":256,"minLength":1,"type":"string"},"timeout":{"properties":{"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"},"send":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","read","send"],"type":"object"},"tls":{"dependencies":{"client_cert":{"not":{"required":["client_cert_id"]},"required":["client_key"]},"client_cert_id":{"not":{"required":["client_client","client_key"]}},"client_key":{"not":{"required":["client_cert_id"]},"
 
required":["client_cert"]}},"properties":{"client_cert":{"maxLength":65536,"minLength":128,"type":"string"},"client_cert_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"client_key":{"maxLength":65536,"minLength":128,"type":"string"},"verify":{"default":false,"description":"Turn
 on server certificate verification, currently only kafka upstream is 
supported","type":"boolean"}},"type":"object"},"type":{"description":"algorithms
 of load 
balancing","type":"string"},"update_time":{"type":"integer"},"upstream_host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"}},"type":"object"},"upstream_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"uri":{"maxLength":4096,"minLength":1,"type":"string"},"uris":{"items":{"description":"HTTP
 
uri","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"vars":{"type":"array"}},"type":"
 object"}, obj: &entity.Route{BaseInfo:entity.BaseInfo{ID:"449748215496049325", 
CreateTime:1677600426, UpdateTime:1677600426}, URI:"", Uris:[]string{"/user"}, 
Name:"Test import_user", Desc:"", Priority:0, Methods:[]string{"POST"}, 
Host:"", Hosts:[]string(nil), RemoteAddr:"", RemoteAddrs:[]string(nil), 
Vars:[]interface {}(nil), FilterFunc:"", Script:interface {}(nil), 
ScriptID:interface {}(nil), Plugins:map[string]interface {}{}, 
PluginConfigID:interface {}(nil), Upstream:(*entity.UpstreamDef)(nil), 
ServiceID:interface {}(nil), UpstreamID:"Test import", ServiceProtocol:"", 
Labels:map[string]string(nil), EnableWebsocket:false, Status:0x0}
   2023-02-28T16:07:06.240Z     ERROR   store/store.go:224      data validate 
failed: schema validate failed: upstream_id: Must validate at least one schema 
(anyOf)
   upstream_id: Does not match pattern '^[a-zA-Z0-9-_.]+$', 
&{{449748215496049325 1677600426 1677600426}  [/user] Test import_user  0 
[POST]  []  [] []  <nil> <nil> map[] <nil> <nil> <nil> Test import  map[] false 
0}
   2023-02-28T16:07:06.240Z     ERROR   store/validate.go:251   schema validate 
failed:s: 
{"allOf":[{"oneOf":[{"required":["uri"]},{"required":["uris"]}]},{"oneOf":[{"not":{"anyOf":[{"required":["host"]},{"required":["hosts"]}]}},{"required":["host"]},{"required":["hosts"]}]},{"oneOf":[{"not":{"anyOf":[{"required":["remote_addr"]},{"required":["remote_addrs"]}]}},{"required":["remote_addr"]},{"required":["remote_addrs"]}]}],"anyOf":[{"required":["plugins","uri"]},{"required":["upstream","uri"]},{"required":["upstream_id","uri"]},{"required":["service_id","uri"]},{"required":["plugins","uris"]},{"required":["upstream","uris"]},{"required":["upstream_id","uris"]},{"required":["service_id","uris"]},{"required":["script","uri"]},{"required":["script","uris"]}],"not":{"anyOf":[{"required":["plugins","script"]},{"required":["plugin_config_id","script"]}]},"properties":{"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"enable_websocket":{"description":"enable
 websocket for 
 
request","type":"boolean"},"filter_func":{"minLength":10,"pattern":"^function","type":"string"},"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"hosts":{"items":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"labels":{"description":"key/value
 pairs to specify attributes","patternProperties":{".*":{"description":"value 
of 
label","maxLength":64,"minLength":1,"pattern":"^\\S+$","type":"string"}},"type":"object"},"methods":{"items":{"description":"HTTP
 
method","enum":["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PURGE","PUT","TRACE"],"type":"string"},"type":"array","uniqueItems":true},"name":{"maxLength":100,"minLength":1,"type":"string"},"plugin_config_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]}
 
,"plugins":{"type":"object"},"priority":{"default":0,"type":"integer"},"remote_addr":{"anyOf":[{"format":"ipv4","title":"IPv4","type":"string"},{"pattern":"^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([12]?[0-9]|3[0-2])$","title":"IPv4/CIDR","type":"string"},{"format":"ipv6","title":"IPv6","type":"string"},{"pattern":"^([a-fA-F0-9]{0,4}:){1,8}(:[a-fA-F0-9]{0,4}){0,8}([a-fA-F0-9]{0,4})?/[0-9]{1,3}$","title":"IPv6/CIDR","type":"string"}],"description":"client
 
IP","type":"string"},"remote_addrs":{"items":{"anyOf":[{"format":"ipv4","title":"IPv4","type":"string"},{"pattern":"^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([12]?[0-9]|3[0-2])$","title":"IPv4/CIDR","type":"string"
 
},{"format":"ipv6","title":"IPv6","type":"string"},{"pattern":"^([a-fA-F0-9]{0,4}:){1,8}(:[a-fA-F0-9]{0,4}){0,8}([a-fA-F0-9]{0,4})?/[0-9]{1,3}$","title":"IPv6/CIDR","type":"string"}],"description":"client
 
IP","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"script":{"maxLength":102400,"minLength":10,"type":"string"},"script_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"service_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"status":{"default":1,"description":"route
 status, 1 to enable, 0 to 
disable","enum":[0,1],"type":"integer"},"timeout":{"properties":{"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"},"send":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","read","send"],"type":"object"},"update_time":{"type":"integer"},"upstream":{"oneOf":[{"required":[
 
"nodes","type"]},{"required":["discovery_type","service_name","type"]}],"properties":{"checks":{"anyOf":[{"required":["active"]},{"required":["active","passive"]}],"properties":{"active":{"properties":{"concurrency":{"default":10,"type":"integer"},"healthy":{"properties":{"http_statuses":{"default":[200,302],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"interval":{"default":1,"minimum":1,"type":"integer"},"successes":{"default":2,"maximum":254,"minimum":1,"type":"integer"}},"type":"object"},"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"http_path":{"default":"/","type":"string"},"https_verify_certificate":{"default":true,"type":"boolean"},"port":{"maximum":65535,"minimum":1,"type":"integer"},"req_headers":{"items":{"type":"string","uniqueItems":true},"minItems":1,"type":"array"},"timeout":{"default":1,"type":"number"},"type":{"default":"http","enum":["http","https","tcp"],"type":"string"},"unhealthy":{"pro
 
perties":{"http_failures":{"default":5,"maximum":254,"minimum":1,"type":"integer"},"http_statuses":{"default":[404,429,500,501,502,503,504,505],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"interval":{"default":1,"minimum":1,"type":"integer"},"tcp_failures":{"default":2,"maximum":254,"minimum":1,"type":"integer"},"timeouts":{"default":3,"maximum":254,"minimum":1,"type":"integer"}},"type":"object"}},"type":"object"},"passive":{"properties":{"healthy":{"properties":{"http_statuses":{"default":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"successes":{"default":5,"maximum":254,"minimum":0,"type":"integer"}},"type":"object"},"type":{"default":"http","enum":["http","https","tcp"],"type":"string"},"unhealthy":{"properties":{"http_failures":{"default":5,"maximum":254,"minimum":0,"type":"integer"},"ht
 
tp_statuses":{"default":[429,500,503],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"tcp_failures":{"default":2,"maximum":254,"minimum":0,"type":"integer"},"timeouts":{"default":7,"maximum":254,"minimum":0,"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"},"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"discovery_args":{"properties":{"group_name":{"description":"group
 name","type":"string"},"namespace_id":{"description":"namespace 
id","type":"string"}},"type":"object"},"discovery_type":{"description":"discovery
 
type","type":"string"},"hash_on":{"default":"vars","enum":["consumer","cookie","header","vars","vars_combinations"],"type":"string"},"id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"keepalive_pool":{"properties":{"idle_timeout":{"default":60,"minimum":0,"type":"number"},"requests":{"default":1000,
 
"minimum":1,"type":"integer"},"size":{"default":320,"minimum":1,"type":"integer"}},"type":"object"},"key":{"description":"the
 key of chash for dynamic load 
balancing","type":"string"},"labels":{"description":"key/value pairs to specify 
attributes","patternProperties":{".*":{"description":"value of 
label","maxLength":64,"minLength":1,"pattern":"^\\S+$","type":"string"}},"type":"object"},"name":{"maxLength":100,"minLength":1,"type":"string"},"nodes":{"anyOf":[{"patternProperties":{".*":{"description":"weight
 of 
node","minimum":0,"type":"integer"}},"type":"object"},{"items":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"metadata":{"description":"metadata
 of node","type":"object"},"port":{"description":"port of 
node","minimum":1,"type":"integer"},"priority":{"default":0,"description":"priority
 of node","type":"integer"},"weight":{"description":"weight of 
node","minimum":0,"type":"integer"}},"required":["host","port","weight"],"type":"object"},"type":"a
 rray"}]},"pass_host":{"default":"pass","description":"mod of host 
passing","enum":["node","pass","rewrite"],"type":"string"},"retries":{"minimum":0,"type":"integer"},"retry_timeout":{"minimum":0,"type":"number"},"scheme":{"default":"http","description":"The
 scheme of the upstream. For L7 proxy, it can be one of grpc/grpcs/http/https. 
For L4 proxy, it can be one of tcp/tls/udp. For specific protocols, it can be 
kafka.","enum":["grpc","grpcs","http","https","kafka","tcp","tls","udp"]},"service_name":{"maxLength":256,"minLength":1,"type":"string"},"timeout":{"properties":{"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"},"send":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","read","send"],"type":"object"},"tls":{"dependencies":{"client_cert":{"not":{"required":["client_cert_id"]},"required":["client_key"]},"client_cert_id":{"not":{"required":["client_client","client_key"]}},"client_key":{"not":{"required":["client_cert_id"]},"
 
required":["client_cert"]}},"properties":{"client_cert":{"maxLength":65536,"minLength":128,"type":"string"},"client_cert_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"client_key":{"maxLength":65536,"minLength":128,"type":"string"},"verify":{"default":false,"description":"Turn
 on server certificate verification, currently only kafka upstream is 
supported","type":"boolean"}},"type":"object"},"type":{"description":"algorithms
 of load 
balancing","type":"string"},"update_time":{"type":"integer"},"upstream_host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"}},"type":"object"},"upstream_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"uri":{"maxLength":4096,"minLength":1,"type":"string"},"uris":{"items":{"description":"HTTP
 
uri","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"vars":{"type":"array"}},"type":"
 object"}, obj: &entity.Route{BaseInfo:entity.BaseInfo{ID:"449748215512695469", 
CreateTime:1677600426, UpdateTime:1677600426}, URI:"", 
Uris:[]string{"/user/createWithList"}, Name:"Test import_user/createWithList", 
Desc:"", Priority:0, Methods:[]string{"POST"}, Host:"", Hosts:[]string(nil), 
RemoteAddr:"", RemoteAddrs:[]string(nil), Vars:[]interface {}(nil), 
FilterFunc:"", Script:interface {}(nil), ScriptID:interface {}(nil), 
Plugins:map[string]interface {}{}, PluginConfigID:interface {}(nil), 
Upstream:(*entity.UpstreamDef)(nil), ServiceID:interface {}(nil), 
UpstreamID:"Test import", ServiceProtocol:"", Labels:map[string]string(nil), 
EnableWebsocket:false, Status:0x0}
   2023-02-28T16:07:06.240Z     ERROR   store/store.go:224      data validate 
failed: schema validate failed: upstream_id: Must validate at least one schema 
(anyOf)
   upstream_id: Does not match pattern '^[a-zA-Z0-9-_.]+$', 
&{{449748215512695469 1677600426 1677600426}  [/user/createWithList] Test 
import_user/createWithList  0 [POST]  []  [] []  <nil> <nil> map[] <nil> <nil> 
<nil> Test import  map[] false 0}
   2023-02-28T16:07:06.241Z     ERROR   store/validate.go:251   schema validate 
failed:s: 
{"allOf":[{"oneOf":[{"required":["uri"]},{"required":["uris"]}]},{"oneOf":[{"not":{"anyOf":[{"required":["host"]},{"required":["hosts"]}]}},{"required":["host"]},{"required":["hosts"]}]},{"oneOf":[{"not":{"anyOf":[{"required":["remote_addr"]},{"required":["remote_addrs"]}]}},{"required":["remote_addr"]},{"required":["remote_addrs"]}]}],"anyOf":[{"required":["plugins","uri"]},{"required":["upstream","uri"]},{"required":["upstream_id","uri"]},{"required":["service_id","uri"]},{"required":["plugins","uris"]},{"required":["upstream","uris"]},{"required":["upstream_id","uris"]},{"required":["service_id","uris"]},{"required":["script","uri"]},{"required":["script","uris"]}],"not":{"anyOf":[{"required":["plugins","script"]},{"required":["plugin_config_id","script"]}]},"properties":{"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"enable_websocket":{"description":"enable
 websocket for 
 
request","type":"boolean"},"filter_func":{"minLength":10,"pattern":"^function","type":"string"},"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"hosts":{"items":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"labels":{"description":"key/value
 pairs to specify attributes","patternProperties":{".*":{"description":"value 
of 
label","maxLength":64,"minLength":1,"pattern":"^\\S+$","type":"string"}},"type":"object"},"methods":{"items":{"description":"HTTP
 
method","enum":["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PURGE","PUT","TRACE"],"type":"string"},"type":"array","uniqueItems":true},"name":{"maxLength":100,"minLength":1,"type":"string"},"plugin_config_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]}
 
,"plugins":{"type":"object"},"priority":{"default":0,"type":"integer"},"remote_addr":{"anyOf":[{"format":"ipv4","title":"IPv4","type":"string"},{"pattern":"^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([12]?[0-9]|3[0-2])$","title":"IPv4/CIDR","type":"string"},{"format":"ipv6","title":"IPv6","type":"string"},{"pattern":"^([a-fA-F0-9]{0,4}:){1,8}(:[a-fA-F0-9]{0,4}){0,8}([a-fA-F0-9]{0,4})?/[0-9]{1,3}$","title":"IPv6/CIDR","type":"string"}],"description":"client
 
IP","type":"string"},"remote_addrs":{"items":{"anyOf":[{"format":"ipv4","title":"IPv4","type":"string"},{"pattern":"^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([12]?[0-9]|3[0-2])$","title":"IPv4/CIDR","type":"string"
 
},{"format":"ipv6","title":"IPv6","type":"string"},{"pattern":"^([a-fA-F0-9]{0,4}:){1,8}(:[a-fA-F0-9]{0,4}){0,8}([a-fA-F0-9]{0,4})?/[0-9]{1,3}$","title":"IPv6/CIDR","type":"string"}],"description":"client
 
IP","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"script":{"maxLength":102400,"minLength":10,"type":"string"},"script_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"service_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"status":{"default":1,"description":"route
 status, 1 to enable, 0 to 
disable","enum":[0,1],"type":"integer"},"timeout":{"properties":{"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"},"send":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","read","send"],"type":"object"},"update_time":{"type":"integer"},"upstream":{"oneOf":[{"required":[
 
"nodes","type"]},{"required":["discovery_type","service_name","type"]}],"properties":{"checks":{"anyOf":[{"required":["active"]},{"required":["active","passive"]}],"properties":{"active":{"properties":{"concurrency":{"default":10,"type":"integer"},"healthy":{"properties":{"http_statuses":{"default":[200,302],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"interval":{"default":1,"minimum":1,"type":"integer"},"successes":{"default":2,"maximum":254,"minimum":1,"type":"integer"}},"type":"object"},"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"http_path":{"default":"/","type":"string"},"https_verify_certificate":{"default":true,"type":"boolean"},"port":{"maximum":65535,"minimum":1,"type":"integer"},"req_headers":{"items":{"type":"string","uniqueItems":true},"minItems":1,"type":"array"},"timeout":{"default":1,"type":"number"},"type":{"default":"http","enum":["http","https","tcp"],"type":"string"},"unhealthy":{"pro
 
perties":{"http_failures":{"default":5,"maximum":254,"minimum":1,"type":"integer"},"http_statuses":{"default":[404,429,500,501,502,503,504,505],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"interval":{"default":1,"minimum":1,"type":"integer"},"tcp_failures":{"default":2,"maximum":254,"minimum":1,"type":"integer"},"timeouts":{"default":3,"maximum":254,"minimum":1,"type":"integer"}},"type":"object"}},"type":"object"},"passive":{"properties":{"healthy":{"properties":{"http_statuses":{"default":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"successes":{"default":5,"maximum":254,"minimum":0,"type":"integer"}},"type":"object"},"type":{"default":"http","enum":["http","https","tcp"],"type":"string"},"unhealthy":{"properties":{"http_failures":{"default":5,"maximum":254,"minimum":0,"type":"integer"},"ht
 
tp_statuses":{"default":[429,500,503],"items":{"maximum":599,"minimum":200,"type":"integer"},"minItems":1,"type":"array","uniqueItems":true},"tcp_failures":{"default":2,"maximum":254,"minimum":0,"type":"integer"},"timeouts":{"default":7,"maximum":254,"minimum":0,"type":"integer"}},"type":"object"}},"type":"object"}},"type":"object"},"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"discovery_args":{"properties":{"group_name":{"description":"group
 name","type":"string"},"namespace_id":{"description":"namespace 
id","type":"string"}},"type":"object"},"discovery_type":{"description":"discovery
 
type","type":"string"},"hash_on":{"default":"vars","enum":["consumer","cookie","header","vars","vars_combinations"],"type":"string"},"id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"keepalive_pool":{"properties":{"idle_timeout":{"default":60,"minimum":0,"type":"number"},"requests":{"default":1000,
 
"minimum":1,"type":"integer"},"size":{"default":320,"minimum":1,"type":"integer"}},"type":"object"},"key":{"description":"the
 key of chash for dynamic load 
balancing","type":"string"},"labels":{"description":"key/value pairs to specify 
attributes","patternProperties":{".*":{"description":"value of 
label","maxLength":64,"minLength":1,"pattern":"^\\S+$","type":"string"}},"type":"object"},"name":{"maxLength":100,"minLength":1,"type":"string"},"nodes":{"anyOf":[{"patternProperties":{".*":{"description":"weight
 of 
node","minimum":0,"type":"integer"}},"type":"object"},{"items":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"},"metadata":{"description":"metadata
 of node","type":"object"},"port":{"description":"port of 
node","minimum":1,"type":"integer"},"priority":{"default":0,"description":"priority
 of node","type":"integer"},"weight":{"description":"weight of 
node","minimum":0,"type":"integer"}},"required":["host","port","weight"],"type":"object"},"type":"a
 rray"}]},"pass_host":{"default":"pass","description":"mod of host 
passing","enum":["node","pass","rewrite"],"type":"string"},"retries":{"minimum":0,"type":"integer"},"retry_timeout":{"minimum":0,"type":"number"},"scheme":{"default":"http","description":"The
 scheme of the upstream. For L7 proxy, it can be one of grpc/grpcs/http/https. 
For L4 proxy, it can be one of tcp/tls/udp. For specific protocols, it can be 
kafka.","enum":["grpc","grpcs","http","https","kafka","tcp","tls","udp"]},"service_name":{"maxLength":256,"minLength":1,"type":"string"},"timeout":{"properties":{"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"},"send":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","read","send"],"type":"object"},"tls":{"dependencies":{"client_cert":{"not":{"required":["client_cert_id"]},"required":["client_key"]},"client_cert_id":{"not":{"required":["client_client","client_key"]}},"client_key":{"not":{"required":["client_cert_id"]},"
 
required":["client_cert"]}},"properties":{"client_cert":{"maxLength":65536,"minLength":128,"type":"string"},"client_cert_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"client_key":{"maxLength":65536,"minLength":128,"type":"string"},"verify":{"default":false,"description":"Turn
 on server certificate verification, currently only kafka upstream is 
supported","type":"boolean"}},"type":"object"},"type":{"description":"algorithms
 of load 
balancing","type":"string"},"update_time":{"type":"integer"},"upstream_host":{"pattern":"^\\*?[0-9a-zA-Z-._\\[\\]:]+$","type":"string"}},"type":"object"},"upstream_id":{"anyOf":[{"maxLength":64,"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","type":"string"},{"minimum":1,"type":"integer"}]},"uri":{"maxLength":4096,"minLength":1,"type":"string"},"uris":{"items":{"description":"HTTP
 
uri","type":"string"},"minItems":1,"type":"array","uniqueItems":true},"vars":{"type":"array"}},"type":"
 object"}, obj: &entity.Route{BaseInfo:entity.BaseInfo{ID:"449748215512761005", 
CreateTime:1677600426, UpdateTime:1677600426}, URI:"", 
Uris:[]string{"/user/login"}, Name:"Test import_user/login", Desc:"", 
Priority:0, Methods:[]string{"GET"}, Host:"", Hosts:[]string(nil), 
RemoteAddr:"", RemoteAddrs:[]string(nil), Vars:[]interface {}(nil), 
FilterFunc:"", Script:interface {}(nil), ScriptID:interface {}(nil), 
Plugins:map[string]interface {}{}, PluginConfigID:interface {}(nil), 
Upstream:(*entity.UpstreamDef)(nil), ServiceID:interface {}(nil), 
UpstreamID:"Test import", ServiceProtocol:"", Labels:map[string]string(nil), 
EnableWebsocket:false, Status:0x0}
   ```
   
   Did you add anything to the original json before importing it?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to