1 Star 0 Fork 0

guangxilaobiao / chain-0329

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
schema.json 61.83 KB
一键复制 编辑 原始数据 按行查看 历史
guangxilaobiao 提交于 2021-04-07 17:31 . add
{"main":{"plugins":{"items":{"properties":{"name":{"minLength":1,"type":"string"},"additionalProperties":false,"stream":{"type":"boolean"}},"required":["name"],"type":"object"},"type":"array"},"consumer":{"required":["username"],"properties":{"update_time":{"type":"integer"},"plugins":{"type":"object"},"desc":{"maxLength":256,"type":"string"},"create_time":{"type":"integer"},"username":{"minLength":1,"pattern":"^[a-zA-Z0-9_]+$","maxLength":32,"type":"string"},"labels":{"patternProperties":{".*":{"maxLength":64,"description":"value of label","minLength":1,"pattern":"^\\S+$","type":"string"}},"maxProperties":16,"description":"key\/value pairs to specify attributes","type":"object"}},"additionalProperties":false,"type":"object"},"service":{"properties":{"update_time":{"type":"integer"},"plugins":{"type":"object"},"upstream":{"additionalProperties":false,"properties":{"service_name":{"minLength":1,"maxLength":256,"type":"string"},"timeout":{"properties":{"send":{"exclusiveMinimum":0,"type":"number"},"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","send","read"],"type":"object"},"checks":{"anyOf":[{"required":["active"]},{"required":["active","passive"]}],"properties":{"active":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"timeout":{"default":1,"type":"number"},"https_verify_certificate":{"default":true,"type":"boolean"},"port":{"maximum":65535,"type":"integer","minimum":1},"http_path":{"default":"\/","type":"string"},"healthy":{"properties":{"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[200,302],"type":"array"},"interval":{"type":"integer","default":1,"minimum":1},"successes":{"maximum":254,"type":"integer","default":2,"minimum":1}},"type":"object"},"req_headers":{"items":{"uniqueItems":true,"type":"string"},"type":"array","minItems":1},"unhealthy":{"properties":{"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[429,404,500,501,502,503,504,505],"type":"array"},"interval":{"type":"integer","default":1,"minimum":1},"timeouts":{"maximum":254,"type":"integer","default":3,"minimum":1},"http_failures":{"maximum":254,"type":"integer","default":5,"minimum":1},"tcp_failures":{"maximum":254,"type":"integer","default":2,"minimum":1}},"type":"object"},"concurrency":{"default":10,"type":"integer"},"type":{"type":"string","default":"http","enum":["http","https","tcp"]}},"type":"object"},"passive":{"properties":{"unhealthy":{"properties":{"http_failures":{"maximum":254,"type":"integer","default":5,"minimum":1},"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[429,500,503],"type":"array"},"tcp_failures":{"maximum":254,"type":"integer","default":2,"minimum":1},"timeouts":{"maximum":254,"type":"integer","default":7,"minimum":1}},"type":"object"},"type":{"type":"string","default":"http","enum":["http","https","tcp"]},"healthy":{"properties":{"successes":{"maximum":254,"type":"integer","default":5,"minimum":1},"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"type":"array"}},"type":"object"}},"type":"object"}},"additionalProperties":false,"type":"object"},"upstream_host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"nodes":{"anyOf":[{"patternProperties":{".*":{"minimum":0,"description":"weight of node","type":"integer"}},"type":"object"},{"items":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"port":{"minimum":1,"description":"port of node","type":"integer"},"metadata":{"type":"object","description":"metadata of node"},"weight":{"minimum":0,"description":"weight of node","type":"integer"},"priority":{"description":"priority of node","default":0,"type":"integer"}},"required":["host","port","weight"],"type":"object"},"type":"array"}]},"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"pass_host":{"description":"mod of host passing","enum":["pass","node","rewrite"],"default":"pass","type":"string"},"update_time":{"type":"integer"},"discovery_type":{"type":"string","description":"discovery type"},"hash_on":{"enum":["vars","header","cookie","consumer","vars_combinations"],"default":"vars","type":"string"},"name":{"minLength":1,"maxLength":100,"type":"string"},"labels":{"patternProperties":{".*":{"maxLength":64,"description":"value of label","minLength":1,"pattern":"^\\S+$","type":"string"}},"maxProperties":16,"description":"key\/value pairs to specify attributes","type":"object"},"retries":{"minimum":0,"type":"integer"},"id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"scheme":{"default":"http","enum":["grpc","grpcs","http","https"]},"key":{"type":"string","description":"the key of chash for dynamic load balancing"},"type":{"enum":["chash","roundrobin","ewma","least_conn"],"description":"algorithms of load balancing","type":"string"}},"type":"object","oneOf":[{"required":["type","nodes"]},{"required":["type","service_name","discovery_type"]}]},"id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"upstream_id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"name":{"minLength":1,"maxLength":100,"type":"string"},"labels":{"patternProperties":{".*":{"maxLength":64,"description":"value of label","minLength":1,"pattern":"^\\S+$","type":"string"}},"maxProperties":16,"description":"key\/value pairs to specify attributes","type":"object"},"script":{"minLength":10,"maxLength":102400,"type":"string"},"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"enable_websocket":{"type":"boolean","description":"enable websocket for request"}},"additionalProperties":false,"type":"object"},"upstream_hash_vars_schema":{"pattern":"^((uri|server_name|server_addr|request_uri|remote_port|remote_addr|query_string|host|hostname)|arg_[0-9a-zA-z_-]+)$","type":"string"},"stream_route":{"properties":{"remote_addr":{"anyOf":[{"title":"IPv4","format":"ipv4","type":"string"},{"title":"IPv4\/CIDR","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])$","type":"string"},{"title":"IPv6","format":"ipv6","type":"string"},{"title":"IPv6\/CIDR","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}$","type":"string"}],"description":"client IP","type":"string"},"plugins":{"type":"object"},"upstream":{"additionalProperties":false,"properties":{"service_name":{"minLength":1,"maxLength":256,"type":"string"},"timeout":{"properties":{"send":{"exclusiveMinimum":0,"type":"number"},"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","send","read"],"type":"object"},"checks":{"anyOf":[{"required":["active"]},{"required":["active","passive"]}],"properties":{"active":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"timeout":{"default":1,"type":"number"},"https_verify_certificate":{"default":true,"type":"boolean"},"port":{"maximum":65535,"type":"integer","minimum":1},"http_path":{"default":"\/","type":"string"},"healthy":{"properties":{"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[200,302],"type":"array"},"interval":{"type":"integer","default":1,"minimum":1},"successes":{"maximum":254,"type":"integer","default":2,"minimum":1}},"type":"object"},"req_headers":{"items":{"uniqueItems":true,"type":"string"},"type":"array","minItems":1},"unhealthy":{"properties":{"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[429,404,500,501,502,503,504,505],"type":"array"},"interval":{"type":"integer","default":1,"minimum":1},"timeouts":{"maximum":254,"type":"integer","default":3,"minimum":1},"http_failures":{"maximum":254,"type":"integer","default":5,"minimum":1},"tcp_failures":{"maximum":254,"type":"integer","default":2,"minimum":1}},"type":"object"},"concurrency":{"default":10,"type":"integer"},"type":{"type":"string","default":"http","enum":["http","https","tcp"]}},"type":"object"},"passive":{"properties":{"unhealthy":{"properties":{"http_failures":{"maximum":254,"type":"integer","default":5,"minimum":1},"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[429,500,503],"type":"array"},"tcp_failures":{"maximum":254,"type":"integer","default":2,"minimum":1},"timeouts":{"maximum":254,"type":"integer","default":7,"minimum":1}},"type":"object"},"type":{"type":"string","default":"http","enum":["http","https","tcp"]},"healthy":{"properties":{"successes":{"maximum":254,"type":"integer","default":5,"minimum":1},"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"type":"array"}},"type":"object"}},"type":"object"}},"additionalProperties":false,"type":"object"},"upstream_host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"nodes":{"anyOf":[{"patternProperties":{".*":{"minimum":0,"description":"weight of node","type":"integer"}},"type":"object"},{"items":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"port":{"minimum":1,"description":"port of node","type":"integer"},"metadata":{"type":"object","description":"metadata of node"},"weight":{"minimum":0,"description":"weight of node","type":"integer"},"priority":{"description":"priority of node","default":0,"type":"integer"}},"required":["host","port","weight"],"type":"object"},"type":"array"}]},"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"pass_host":{"description":"mod of host passing","enum":["pass","node","rewrite"],"default":"pass","type":"string"},"update_time":{"type":"integer"},"discovery_type":{"type":"string","description":"discovery type"},"hash_on":{"enum":["vars","header","cookie","consumer","vars_combinations"],"default":"vars","type":"string"},"name":{"minLength":1,"maxLength":100,"type":"string"},"labels":{"patternProperties":{".*":{"maxLength":64,"description":"value of label","minLength":1,"pattern":"^\\S+$","type":"string"}},"maxProperties":16,"description":"key\/value pairs to specify attributes","type":"object"},"retries":{"minimum":0,"type":"integer"},"id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"scheme":{"default":"http","enum":["grpc","grpcs","http","https"]},"key":{"type":"string","description":"the key of chash for dynamic load balancing"},"type":{"enum":["chash","roundrobin","ewma","least_conn"],"description":"algorithms of load balancing","type":"string"}},"type":"object","oneOf":[{"required":["type","nodes"]},{"required":["type","service_name","discovery_type"]}]},"id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"upstream_id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"server_port":{"type":"integer","description":"server port"},"server_addr":{"anyOf":[{"title":"IPv4","format":"ipv4","type":"string"},{"title":"IPv4\/CIDR","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])$","type":"string"},{"title":"IPv6","format":"ipv6","type":"string"},{"title":"IPv6\/CIDR","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}$","type":"string"}],"description":"server IP","type":"string"}},"type":"object"},"ssl":{"oneOf":[{"required":["sni","key","cert"]},{"required":["snis","key","cert"]}],"properties":{"update_time":{"type":"integer"},"cert":{"minLength":128,"maxLength":65536,"type":"string"},"snis":{"minItems":1,"type":"array","items":{"pattern":"^\\*?[0-9a-zA-Z-.]+$","type":"string"}},"create_time":{"type":"integer"},"sni":{"pattern":"^\\*?[0-9a-zA-Z-.]+$","type":"string"},"exptime":{"minimum":1588262400,"type":"integer"},"validity_start":{"type":"integer"},"id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"status":{"description":"ssl status, 1 to enable, 0 to disable","enum":[1,0],"default":1,"type":"integer"},"labels":{"patternProperties":{".*":{"maxLength":64,"description":"value of label","minLength":1,"pattern":"^\\S+$","type":"string"}},"maxProperties":16,"description":"key\/value pairs to specify attributes","type":"object"},"certs":{"items":{"minLength":128,"maxLength":65536,"type":"string"},"type":"array"},"keys":{"items":{"minLength":128,"maxLength":65536,"type":"string"},"type":"array"},"key":{"minLength":128,"maxLength":65536,"type":"string"},"validity_end":{"type":"integer"}},"additionalProperties":false,"type":"object"},"upstream_hash_header_schema":{"pattern":"^[a-zA-Z0-9-_]+$","type":"string"},"upstream":{"additionalProperties":false,"properties":{"service_name":{"minLength":1,"maxLength":256,"type":"string"},"timeout":{"properties":{"send":{"exclusiveMinimum":0,"type":"number"},"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","send","read"],"type":"object"},"checks":{"anyOf":[{"required":["active"]},{"required":["active","passive"]}],"properties":{"active":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"timeout":{"default":1,"type":"number"},"https_verify_certificate":{"default":true,"type":"boolean"},"port":{"maximum":65535,"type":"integer","minimum":1},"http_path":{"default":"\/","type":"string"},"healthy":{"properties":{"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[200,302],"type":"array"},"interval":{"type":"integer","default":1,"minimum":1},"successes":{"maximum":254,"type":"integer","default":2,"minimum":1}},"type":"object"},"req_headers":{"items":{"uniqueItems":true,"type":"string"},"type":"array","minItems":1},"unhealthy":{"properties":{"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[429,404,500,501,502,503,504,505],"type":"array"},"interval":{"type":"integer","default":1,"minimum":1},"timeouts":{"maximum":254,"type":"integer","default":3,"minimum":1},"http_failures":{"maximum":254,"type":"integer","default":5,"minimum":1},"tcp_failures":{"maximum":254,"type":"integer","default":2,"minimum":1}},"type":"object"},"concurrency":{"default":10,"type":"integer"},"type":{"type":"string","default":"http","enum":["http","https","tcp"]}},"type":"object"},"passive":{"properties":{"unhealthy":{"properties":{"http_failures":{"maximum":254,"type":"integer","default":5,"minimum":1},"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[429,500,503],"type":"array"},"tcp_failures":{"maximum":254,"type":"integer","default":2,"minimum":1},"timeouts":{"maximum":254,"type":"integer","default":7,"minimum":1}},"type":"object"},"type":{"type":"string","default":"http","enum":["http","https","tcp"]},"healthy":{"properties":{"successes":{"maximum":254,"type":"integer","default":5,"minimum":1},"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"type":"array"}},"type":"object"}},"type":"object"}},"additionalProperties":false,"type":"object"},"upstream_host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"nodes":{"anyOf":[{"patternProperties":{".*":{"minimum":0,"description":"weight of node","type":"integer"}},"type":"object"},{"items":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"port":{"minimum":1,"description":"port of node","type":"integer"},"metadata":{"type":"object","description":"metadata of node"},"weight":{"minimum":0,"description":"weight of node","type":"integer"},"priority":{"description":"priority of node","default":0,"type":"integer"}},"required":["host","port","weight"],"type":"object"},"type":"array"}]},"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"pass_host":{"description":"mod of host passing","enum":["pass","node","rewrite"],"default":"pass","type":"string"},"update_time":{"type":"integer"},"discovery_type":{"type":"string","description":"discovery type"},"hash_on":{"enum":["vars","header","cookie","consumer","vars_combinations"],"default":"vars","type":"string"},"name":{"minLength":1,"maxLength":100,"type":"string"},"labels":{"patternProperties":{".*":{"maxLength":64,"description":"value of label","minLength":1,"pattern":"^\\S+$","type":"string"}},"maxProperties":16,"description":"key\/value pairs to specify attributes","type":"object"},"retries":{"minimum":0,"type":"integer"},"id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"scheme":{"default":"http","enum":["grpc","grpcs","http","https"]},"key":{"type":"string","description":"the key of chash for dynamic load balancing"},"type":{"enum":["chash","roundrobin","ewma","least_conn"],"description":"algorithms of load balancing","type":"string"}},"type":"object","oneOf":[{"required":["type","nodes"]},{"required":["type","service_name","discovery_type"]}]},"global_rule":{"additionalProperties":false,"required":["plugins"],"properties":{"update_time":{"type":"integer"},"plugins":{"type":"object"},"create_time":{"type":"integer"},"id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]}},"type":"object"},"proto":{"required":["content"],"properties":{"content":{"minLength":1,"maxLength":1048576,"type":"string"}},"additionalProperties":false,"type":"object"},"route":{"not":{"anyOf":[{"required":["script","plugins"]},{"required":["script","plugin_config_id"]}]},"additionalProperties":false,"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"]}],"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"plugins":{"type":"object"},"upstream":{"additionalProperties":false,"properties":{"service_name":{"minLength":1,"maxLength":256,"type":"string"},"timeout":{"properties":{"send":{"exclusiveMinimum":0,"type":"number"},"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","send","read"],"type":"object"},"checks":{"anyOf":[{"required":["active"]},{"required":["active","passive"]}],"properties":{"active":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"timeout":{"default":1,"type":"number"},"https_verify_certificate":{"default":true,"type":"boolean"},"port":{"maximum":65535,"type":"integer","minimum":1},"http_path":{"default":"\/","type":"string"},"healthy":{"properties":{"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[200,302],"type":"array"},"interval":{"type":"integer","default":1,"minimum":1},"successes":{"maximum":254,"type":"integer","default":2,"minimum":1}},"type":"object"},"req_headers":{"items":{"uniqueItems":true,"type":"string"},"type":"array","minItems":1},"unhealthy":{"properties":{"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[429,404,500,501,502,503,504,505],"type":"array"},"interval":{"type":"integer","default":1,"minimum":1},"timeouts":{"maximum":254,"type":"integer","default":3,"minimum":1},"http_failures":{"maximum":254,"type":"integer","default":5,"minimum":1},"tcp_failures":{"maximum":254,"type":"integer","default":2,"minimum":1}},"type":"object"},"concurrency":{"default":10,"type":"integer"},"type":{"type":"string","default":"http","enum":["http","https","tcp"]}},"type":"object"},"passive":{"properties":{"unhealthy":{"properties":{"http_failures":{"maximum":254,"type":"integer","default":5,"minimum":1},"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[429,500,503],"type":"array"},"tcp_failures":{"maximum":254,"type":"integer","default":2,"minimum":1},"timeouts":{"maximum":254,"type":"integer","default":7,"minimum":1}},"type":"object"},"type":{"type":"string","default":"http","enum":["http","https","tcp"]},"healthy":{"properties":{"successes":{"maximum":254,"type":"integer","default":5,"minimum":1},"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"type":"array"}},"type":"object"}},"type":"object"}},"additionalProperties":false,"type":"object"},"upstream_host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"nodes":{"anyOf":[{"patternProperties":{".*":{"minimum":0,"description":"weight of node","type":"integer"}},"type":"object"},{"items":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"port":{"minimum":1,"description":"port of node","type":"integer"},"metadata":{"type":"object","description":"metadata of node"},"weight":{"minimum":0,"description":"weight of node","type":"integer"},"priority":{"description":"priority of node","default":0,"type":"integer"}},"required":["host","port","weight"],"type":"object"},"type":"array"}]},"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"pass_host":{"description":"mod of host passing","enum":["pass","node","rewrite"],"default":"pass","type":"string"},"update_time":{"type":"integer"},"discovery_type":{"type":"string","description":"discovery type"},"hash_on":{"enum":["vars","header","cookie","consumer","vars_combinations"],"default":"vars","type":"string"},"name":{"minLength":1,"maxLength":100,"type":"string"},"labels":{"patternProperties":{".*":{"maxLength":64,"description":"value of label","minLength":1,"pattern":"^\\S+$","type":"string"}},"maxProperties":16,"description":"key\/value pairs to specify attributes","type":"object"},"retries":{"minimum":0,"type":"integer"},"id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"scheme":{"default":"http","enum":["grpc","grpcs","http","https"]},"key":{"type":"string","description":"the key of chash for dynamic load balancing"},"type":{"enum":["chash","roundrobin","ewma","least_conn"],"description":"algorithms of load balancing","type":"string"}},"type":"object","oneOf":[{"required":["type","nodes"]},{"required":["type","service_name","discovery_type"]}]},"id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"upstream_id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"status":{"description":"route status, 1 to enable, 0 to disable","enum":[1,0],"default":1,"type":"integer"},"script":{"minLength":10,"maxLength":102400,"type":"string"},"uris":{"uniqueItems":true,"minItems":1,"type":"array","items":{"type":"string","description":"HTTP uri"}},"filter_func":{"minLength":10,"pattern":"^function","type":"string"},"service_protocol":{"enum":["grpc","http"]},"vars":{"type":"array"},"desc":{"maxLength":256,"type":"string"},"update_time":{"type":"integer"},"methods":{"uniqueItems":true,"type":"array","items":{"enum":["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS","CONNECT","TRACE"],"description":"HTTP method","type":"string"}},"hosts":{"uniqueItems":true,"minItems":1,"type":"array","items":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"}},"name":{"minLength":1,"maxLength":100,"type":"string"},"enable_websocket":{"type":"boolean","description":"enable websocket for request"},"labels":{"patternProperties":{".*":{"maxLength":64,"description":"value of label","minLength":1,"pattern":"^\\S+$","type":"string"}},"maxProperties":16,"description":"key\/value pairs to specify attributes","type":"object"},"script_id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"service_id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"uri":{"minLength":1,"maxLength":4096,"type":"string"},"plugin_config_id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"create_time":{"type":"integer"},"remote_addrs":{"uniqueItems":true,"minItems":1,"type":"array","items":{"anyOf":[{"title":"IPv4","format":"ipv4","type":"string"},{"title":"IPv4\/CIDR","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])$","type":"string"},{"title":"IPv6","format":"ipv6","type":"string"},{"title":"IPv6\/CIDR","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}$","type":"string"}],"description":"client IP","type":"string"}},"priority":{"default":0,"type":"integer"},"remote_addr":{"anyOf":[{"title":"IPv4","format":"ipv4","type":"string"},{"title":"IPv4\/CIDR","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])$","type":"string"},{"title":"IPv6","format":"ipv6","type":"string"},{"title":"IPv6\/CIDR","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}$","type":"string"}],"description":"client IP","type":"string"}},"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"]}]}],"type":"object"},"plugin_config":{"required":["id","plugins"],"properties":{"update_time":{"type":"integer"},"plugins":{"type":"object"},"id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"labels":{"patternProperties":{".*":{"maxLength":64,"description":"value of label","minLength":1,"pattern":"^\\S+$","type":"string"}},"maxProperties":16,"description":"key\/value pairs to specify attributes","type":"object"}},"additionalProperties":false,"type":"object"}},"plugins":{"redirect":{"priority":900,"schema":{"oneOf":[{"required":["uri"]},{"required":["http_to_https"]}],"properties":{"disable":{"type":"boolean"},"http_to_https":{"type":"boolean"},"uri":{"minLength":2,"pattern":"(\\\\\\$[0-9a-zA-Z_]+)|\\$\\{([0-9a-zA-Z_]+)\\}|\\$([0-9a-zA-Z_]+)|(\\$|[^$\\\\]+)","type":"string"},"ret_code":{"type":"integer","default":302,"minimum":200}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"response-rewrite":{"priority":899,"schema":{"additionalProperties":false,"type":"object","properties":{"body_base64":{"description":"whether new body for response need base64 decode before return","default":false,"type":"boolean"},"disable":{"type":"boolean"},"status_code":{"maximum":598,"minimum":200,"description":"new status code for response","type":"integer"},"headers":{"minProperties":1,"description":"new headers for response","type":"object"},"body":{"type":"string","description":"new body for response"},"vars":{"type":"array"}},"$comment":"this is a mark for our injected plugin schema","minProperties":1},"version":0.1},"fault-injection":{"priority":11000,"schema":{"minProperties":1,"properties":{"disable":{"type":"boolean"},"abort":{"properties":{"vars":{"maxItems":20,"item":{"type":"array"},"type":"array"},"percentage":{"maximum":100,"type":"integer","minimum":0},"body":{"minLength":0,"type":"string"},"http_status":{"minimum":200,"type":"integer"}},"required":["http_status"],"type":"object"},"delay":{"properties":{"percentage":{"maximum":100,"type":"integer","minimum":0},"vars":{"maxItems":20,"item":{"type":"array"},"type":"array"},"duration":{"minimum":0,"type":"number"}},"required":["duration"],"type":"object"}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"proxy-mirror":{"priority":1010,"schema":{"required":["host"],"type":"object","properties":{"host":{"pattern":"^http(s)?:\\\/\\\/[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:[0-9]{1,5})?$","type":"string"},"disable":{"type":"boolean"}},"$comment":"this is a mark for our injected plugin schema","minProperties":1},"version":0.1},"aams-whitelist-api":{"priority":2511,"schema":{"properties":{"disable":{"type":"boolean"},"permissions":{"uniqueItems":true,"type":"array","items":{"minLength":1,"maxLength":4096,"type":"string"}}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"aams-auth":{"priority":2510,"schema":{"required":["aams_authentication_address"],"properties":{"aams_authentication_address":{"minLength":1,"maxLength":4096,"default":"http:\/\/10.10.17.16:30517\/itps\/aams\/userManage\/checkSecurityPermission","type":"string"},"disable":{"type":"boolean"},"http_timeout":{"type":"integer","default":3000,"minimum":1000}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":1},"traffic-split":{"priority":966,"schema":{"$comment":"this is a mark for our injected plugin schema","properties":{"disable":{"type":"boolean"},"rules":{"items":{"properties":{"weighted_upstreams":{"maxItems":20,"minItems":1,"items":{"properties":{"upstream_id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"upstream":{"additionalProperties":false,"properties":{"service_name":{"minLength":1,"maxLength":256,"type":"string"},"timeout":{"properties":{"send":{"exclusiveMinimum":0,"type":"number"},"connect":{"exclusiveMinimum":0,"type":"number"},"read":{"exclusiveMinimum":0,"type":"number"}},"required":["connect","send","read"],"type":"object"},"checks":{"anyOf":[{"required":["active"]},{"required":["active","passive"]}],"properties":{"active":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"timeout":{"default":1,"type":"number"},"https_verify_certificate":{"default":true,"type":"boolean"},"port":{"maximum":65535,"type":"integer","minimum":1},"http_path":{"default":"\/","type":"string"},"healthy":{"properties":{"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[200,302],"type":"array"},"interval":{"type":"integer","default":1,"minimum":1},"successes":{"maximum":254,"type":"integer","default":2,"minimum":1}},"type":"object"},"req_headers":{"items":{"uniqueItems":true,"type":"string"},"type":"array","minItems":1},"unhealthy":{"properties":{"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[429,404,500,501,502,503,504,505],"type":"array"},"interval":{"type":"integer","default":1,"minimum":1},"timeouts":{"maximum":254,"type":"integer","default":3,"minimum":1},"http_failures":{"maximum":254,"type":"integer","default":5,"minimum":1},"tcp_failures":{"maximum":254,"type":"integer","default":2,"minimum":1}},"type":"object"},"concurrency":{"default":10,"type":"integer"},"type":{"type":"string","default":"http","enum":["http","https","tcp"]}},"type":"object"},"passive":{"properties":{"unhealthy":{"properties":{"http_failures":{"maximum":254,"type":"integer","default":5,"minimum":1},"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[429,500,503],"type":"array"},"tcp_failures":{"maximum":254,"type":"integer","default":2,"minimum":1},"timeouts":{"maximum":254,"type":"integer","default":7,"minimum":1}},"type":"object"},"type":{"type":"string","default":"http","enum":["http","https","tcp"]},"healthy":{"properties":{"successes":{"maximum":254,"type":"integer","default":5,"minimum":1},"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":200},"minItems":1,"default":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"type":"array"}},"type":"object"}},"type":"object"}},"additionalProperties":false,"type":"object"},"upstream_host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"nodes":{"anyOf":[{"patternProperties":{".*":{"minimum":0,"description":"weight of node","type":"integer"}},"type":"object"},{"items":{"properties":{"host":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"},"port":{"minimum":1,"description":"port of node","type":"integer"},"metadata":{"type":"object","description":"metadata of node"},"weight":{"minimum":0,"description":"weight of node","type":"integer"},"priority":{"description":"priority of node","default":0,"type":"integer"}},"required":["host","port","weight"],"type":"object"},"type":"array"}]},"create_time":{"type":"integer"},"desc":{"maxLength":256,"type":"string"},"pass_host":{"description":"mod of host passing","enum":["pass","node","rewrite"],"default":"pass","type":"string"},"update_time":{"type":"integer"},"discovery_type":{"type":"string","description":"discovery type"},"hash_on":{"enum":["vars","header","cookie","consumer","vars_combinations"],"default":"vars","type":"string"},"name":{"minLength":1,"maxLength":100,"type":"string"},"labels":{"patternProperties":{".*":{"maxLength":64,"description":"value of label","minLength":1,"pattern":"^\\S+$","type":"string"}},"maxProperties":16,"description":"key\/value pairs to specify attributes","type":"object"},"retries":{"minimum":0,"type":"integer"},"id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"scheme":{"default":"http","enum":["grpc","grpcs","http","https"]},"key":{"type":"string","description":"the key of chash for dynamic load balancing"},"type":{"enum":["chash","roundrobin","ewma","least_conn"],"description":"algorithms of load balancing","type":"string"}},"type":"object","oneOf":[{"required":["type","nodes"]},{"required":["type","service_name","discovery_type"]}]},"weight":{"minimum":0,"description":"used to split traffic between differentupstreams for plugin configuration","default":1,"type":"integer"}},"type":"object"},"default":[{"weight":1}],"type":"array"},"match":{"type":"array","default":[{"vars":[["server_port",">",0]]}],"items":{"properties":{"vars":{"type":"array"}},"type":"object"}}},"additionalProperties":false,"type":"object"},"type":"array"}},"additionalProperties":false,"type":"object"},"version":0.1},"hmac-auth":{"priority":2530,"consumer_schema":{"title":"work with consumer object","additionalProperties":false,"required":["access_key","secret_key"],"properties":{"clock_skew":{"default":0,"type":"integer"},"encode_uri_params":{"title":"Whether to escape the uri parameter","default":true,"type":"boolean"},"keep_headers":{"title":"whether to keep the http request header","default":false,"type":"boolean"},"secret_key":{"minLength":1,"maxLength":256,"type":"string"},"algorithm":{"type":"string","default":"hmac-sha256","enum":["hmac-sha1","hmac-sha256","hmac-sha512"]},"signed_headers":{"items":{"minLength":1,"maxLength":50,"type":"string"},"type":"array"},"access_key":{"minLength":1,"maxLength":256,"type":"string"}},"type":"object"},"schema":{"title":"work with route or service object","additionalProperties":false,"properties":{"disable":{"type":"boolean"}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1,"type":"auth"},"server-info":{"priority":990,"schema":{"$comment":"this is a mark for our injected plugin schema","properties":{"disable":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"version":0.1},"referer-restriction":{"priority":2990,"schema":{"additionalProperties":false,"required":["whitelist"],"properties":{"bypass_missing":{"default":false,"type":"boolean"},"disable":{"type":"boolean"},"whitelist":{"minItems":1,"type":"array","items":{"pattern":"^\\*?[0-9a-zA-Z-._]+$","type":"string"}}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"batch-requests":{"priority":4010,"schema":{"$comment":"this is a mark for our injected plugin schema","properties":{"disable":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"metadata_schema":{"properties":{"max_body_size":{"exclusiveMinimum":0,"description":"max pipeline body size in bytes","default":1048576,"type":"integer"}},"additionalProperties":false,"type":"object"},"version":0.1},"request-validation":{"priority":2800,"schema":{"anyOf":[{"properties":{"body_schema":{"type":"object"}},"title":"Body schema","required":["body_schema"]},{"properties":{"header_schema":{"type":"object"}},"title":"Header schema","required":["header_schema"]}],"properties":{"disable":{"type":"boolean"}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"type":"validation","version":0.1},"limit-count":{"priority":1002,"schema":{"dependencies":{"policy":{"oneOf":[{"properties":{"policy":{"enum":["local"]}}},{"required":["redis_host"],"properties":{"redis_database":{"type":"integer","default":0,"minimum":0},"policy":{"enum":["redis"]},"redis_host":{"minLength":2,"type":"string"},"redis_timeout":{"type":"integer","default":1000,"minimum":1},"redis_password":{"minLength":0,"type":"string"},"redis_port":{"type":"integer","default":6379,"minimum":1}}},{"required":["redis_cluster_nodes"],"properties":{"redis_timeout":{"type":"integer","default":1000,"minimum":1},"redis_cluster_nodes":{"items":{"minLength":2,"maxLength":100,"type":"string"},"type":"array","minItems":2},"policy":{"enum":["redis-cluster"]},"redis_password":{"minLength":0,"type":"string"}}}]}},"required":["count","time_window"],"properties":{"time_window":{"exclusiveMinimum":0,"type":"integer"},"count":{"exclusiveMinimum":0,"type":"integer"},"disable":{"type":"boolean"},"rejected_code":{"maximum":599,"type":"integer","default":503,"minimum":200},"key":{"type":"string","default":"remote_addr","enum":["remote_addr","server_addr","http_x_real_ip","http_x_forwarded_for","consumer_name","service_id"]},"policy":{"type":"string","default":"local","enum":["local","redis","redis-cluster"]}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.4},"openid-connect":{"priority":2599,"schema":{"required":["client_id","client_secret","discovery"],"properties":{"introspection_endpoint":{"type":"string"},"timeout":{"description":"timeout in seconds","type":"integer","default":3,"minimum":1},"access_token_in_authorization_header":{"description":"Whether the access token should be added in the Authorization header as opposed to the X-Access-Token header.","default":false,"type":"boolean"},"token_signing_alg_values_expected":{"type":"string"},"bearer_only":{"default":false,"type":"boolean"},"set_access_token_header":{"description":"Whether the access token should be added as a header to the request for downstream","default":true,"type":"boolean"},"introspection_endpoint_auth_method":{"default":"client_secret_basic","type":"string"},"realm":{"default":"apisix","type":"string"},"scope":{"default":"openid","type":"string"},"client_secret":{"type":"string"},"set_userinfo_header":{"description":"Whether the user info token should be added in the X-Userinfo header to the request for downstream.","default":true,"type":"boolean"},"disable":{"type":"boolean"},"client_id":{"type":"string"},"set_id_token_header":{"description":"Whether the ID token should be added in the X-ID-Token header to the request for downstream.","default":true,"type":"boolean"},"public_key":{"type":"string"},"logout_path":{"default":"\/logout","type":"string"},"ssl_verify":{"default":false,"type":"boolean"},"discovery":{"type":"string"},"redirect_uri":{"description":"use ngx.var.request_uri if not configured","type":"string"}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"prometheus":{"priority":500,"schema":{"$comment":"this is a mark for our injected plugin schema","properties":{"disable":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"version":0.2},"sls-logger":{"priority":406,"schema":{"required":["host","port","project","logstore","access_key_id","access_key_secret"],"properties":{"inactive_timeout":{"type":"integer","default":5,"minimum":1},"include_req_body":{"default":false,"type":"boolean"},"batch_max_size":{"type":"integer","default":1000,"minimum":1},"access_key_id":{"type":"string"},"name":{"default":"sls-logger","type":"string"},"host":{"type":"string"},"retry_delay":{"type":"integer","default":1,"minimum":0},"buffer_duration":{"type":"integer","default":60,"minimum":1},"port":{"type":"integer"},"disable":{"type":"boolean"},"logstore":{"type":"string"},"max_retry_count":{"type":"integer","default":0,"minimum":0},"access_key_secret":{"type":"string"},"timeout":{"type":"integer","default":5000,"minimum":1},"project":{"type":"string"}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"limit-conn":{"priority":1003,"schema":{"required":["conn","burst","default_conn_delay","key"],"properties":{"conn":{"exclusiveMinimum":0,"type":"integer"},"disable":{"type":"boolean"},"rejected_code":{"maximum":599,"type":"integer","default":503,"minimum":200},"burst":{"minimum":0,"type":"integer"},"key":{"enum":["remote_addr","server_addr","http_x_real_ip","http_x_forwarded_for","consumer_name"],"type":"string"},"default_conn_delay":{"exclusiveMinimum":0,"type":"number"}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"ip-restriction":{"priority":3000,"schema":{"type":"object","properties":{"disable":{"type":"boolean"}},"$comment":"this is a mark for our injected plugin schema","oneOf":[{"title":"whitelist","properties":{"whitelist":{"minItems":1,"type":"array","items":{"anyOf":[{"title":"IPv4","format":"ipv4","type":"string"},{"title":"IPv4\/CIDR","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])$","type":"string"},{"title":"IPv6","format":"ipv6","type":"string"},{"title":"IPv6\/CIDR","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}$","type":"string"}]}}},"additionalProperties":false,"required":["whitelist"]},{"title":"blacklist","properties":{"blacklist":{"minItems":1,"type":"array","items":{"anyOf":[{"title":"IPv4","format":"ipv4","type":"string"},{"title":"IPv4\/CIDR","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])$","type":"string"},{"title":"IPv6","format":"ipv6","type":"string"},{"title":"IPv6\/CIDR","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}$","type":"string"}]}}},"additionalProperties":false,"required":["blacklist"]}]},"version":0.1},"mqtt-proxy":{"priority":1000,"schema":{"required":["protocol_name","protocol_level","upstream"],"properties":{"disable":{"type":"boolean"},"upstream":{"properties":{"ip":{"type":"string"},"port":{"type":"number"}},"type":"object"},"protocol_level":{"type":"integer"},"protocol_name":{"type":"string"}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"wolf-rbac":{"priority":2555,"schema":{"properties":{"disable":{"type":"boolean"},"appid":{"default":"unset","type":"string"},"header_prefix":{"default":"X-","type":"string"},"server":{"default":"http:\/\/127.0.0.1:10080","type":"string"}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"type":"auth","version":0.1},"basic-auth":{"priority":2520,"consumer_schema":{"title":"work with consumer object","additionalProperties":false,"required":["username","password"],"properties":{"username":{"type":"string"},"password":{"type":"string"}},"type":"object"},"schema":{"title":"work with route or service object","additionalProperties":false,"properties":{"disable":{"type":"boolean"}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1,"type":"auth"},"api-breaker":{"priority":1005,"schema":{"required":["break_response_code"],"properties":{"unhealthy":{"properties":{"failures":{"type":"integer","default":3,"minimum":1},"http_statuses":{"uniqueItems":true,"items":{"maximum":599,"type":"integer","minimum":500},"minItems":1,"default":[500],"type":"array"}},"default":{"failures":3,"http_statuses":[500]},"type":"object"},"disable":{"type":"boolean"},"healthy":{"properties":{"successes":{"type":"integer","default":3,"minimum":1},"http_statuses":{"uniqueItems":true,"items":{"maximum":499,"type":"integer","minimum":200},"minItems":1,"default":[200],"type":"array"}},"default":{"successes":3,"http_statuses":[200]},"type":"object"},"max_breaker_sec":{"type":"integer","default":300,"minimum":3},"break_response_code":{"maximum":599,"type":"integer","minimum":200}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"kafka-logger":{"priority":403,"schema":{"required":["broker_list","kafka_topic"],"properties":{"inactive_timeout":{"type":"integer","default":5,"minimum":1},"include_req_body":{"default":false,"type":"boolean"},"max_retry_count":{"type":"integer","default":0,"minimum":0},"meta_format":{"enum":["default","origin"],"default":"default","type":"string"},"retry_delay":{"type":"integer","default":1,"minimum":0},"kafka_topic":{"type":"string"},"batch_max_size":{"type":"integer","default":1000,"minimum":1},"disable":{"type":"boolean"},"buffer_duration":{"type":"integer","default":60,"minimum":1},"name":{"default":"kafka logger","type":"string"},"broker_list":{"type":"object"},"key":{"type":"string"},"timeout":{"type":"integer","default":3,"minimum":1}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"limit-req":{"priority":1001,"schema":{"required":["rate","burst","key"],"properties":{"disable":{"type":"boolean"},"rate":{"exclusiveMinimum":0,"type":"number"},"burst":{"minimum":0,"type":"number"},"key":{"enum":["remote_addr","server_addr","http_x_real_ip","http_x_forwarded_for","consumer_name"],"type":"string"},"rejected_code":{"maximum":599,"type":"integer","default":503,"minimum":200}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"request-id":{"priority":11010,"schema":{"properties":{"include_in_response":{"default":true,"type":"boolean"},"header_name":{"default":"X-Request-Id","type":"string"},"disable":{"type":"boolean"}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"zipkin":{"priority":11011,"schema":{"required":["endpoint","sample_ratio"],"properties":{"endpoint":{"type":"string"},"service_name":{"type":"string","default":"APISIX","description":"service name for zipkin reporter"},"disable":{"type":"boolean"},"sample_ratio":{"maximum":1,"type":"number","minimum":1e-05},"server_addr":{"pattern":"^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$","type":"string","description":"default is $server_addr, you can specify your external ip address"}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"proxy-cache":{"priority":1009,"schema":{"properties":{"disable":{"type":"boolean"},"cache_zone":{"minLength":1,"default":"disk_cache_one","maxLength":100,"type":"string"},"hide_cache_headers":{"default":false,"type":"boolean"},"cache_bypass":{"items":{"pattern":"(^[^\\$].+$|^\\$[0-9a-zA-Z_]+$)","type":"string"},"type":"array","minItems":1},"cache_key":{"type":"array","items":{"pattern":"(^[^\\$].+$|^\\$[0-9a-zA-Z_]+$)","description":"a key for caching","type":"string"},"default":["$host","$request_uri"],"minItems":1},"no_cache":{"items":{"pattern":"(^[^\\$].+$|^\\$[0-9a-zA-Z_]+$)","type":"string"},"type":"array","minItems":1},"cache_http_status":{"uniqueItems":true,"items":{"maximum":599,"minimum":200,"description":"http response status","type":"integer"},"minItems":1,"default":[200,301,404],"type":"array"},"cache_method":{"uniqueItems":true,"items":{"enum":["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS","CONNECT","TRACE"],"description":"http method","type":"string"},"minItems":1,"default":["GET","HEAD"],"type":"array"}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"authz-keycloak":{"priority":2000,"schema":{"allOf":[{"anyOf":[{"required":["discovery"]},{"required":["token_endpoint"]}]},{"anyOf":[{"required":["client_id"]},{"required":["audience"]}]},{"anyOf":[{"properties":{"lazy_load_paths":{"enum":[false]}}},{"anyOf":[{"required":["discovery"]},{"required":["resource_registration_endpoint"]}],"properties":{"lazy_load_paths":{"enum":[true]}}}]}],"properties":{"audience":{"minLength":1,"description":"Deprecated, use `client_id` instead.","maxLength":100,"type":"string"},"keepalive":{"default":true,"type":"boolean"},"resource_registration_endpoint":{"minLength":1,"maxLength":4096,"type":"string"},"disable":{"type":"boolean"},"lazy_load_paths":{"default":false,"type":"boolean"},"ssl_verify":{"default":true,"type":"boolean"},"http_method_as_scope":{"default":false,"type":"boolean"},"keepalive_pool":{"type":"integer","default":5,"minimum":1},"token_endpoint":{"minLength":1,"maxLength":4096,"type":"string"},"policy_enforcement_mode":{"type":"string","default":"ENFORCING","enum":["ENFORCING","PERMISSIVE"]},"client_secret":{"minLength":1,"maxLength":100,"type":"string"},"permissions":{"uniqueItems":true,"type":"array","items":{"minLength":1,"maxLength":100,"type":"string"}},"discovery":{"minLength":1,"maxLength":4096,"type":"string"},"grant_type":{"maxLength":100,"enum":["urn:ietf:params:oauth:grant-type:uma-ticket"],"minLength":1,"default":"urn:ietf:params:oauth:grant-type:uma-ticket","type":"string"},"client_id":{"minLength":1,"maxLength":100,"type":"string"},"timeout":{"type":"integer","default":3000,"minimum":1000},"keepalive_timeout":{"type":"integer","default":60000,"minimum":1000},"cache_ttl_seconds":{"type":"integer","default":86400,"minimum":1}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"consumer-restriction":{"priority":2400,"schema":{"anyOf":[{"required":["blacklist"]},{"required":["whitelist"]},{"required":["allowed_by_methods"]}],"properties":{"allowed_by_methods":{"items":{"properties":{"methods":{"items":{"enum":["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS","CONNECT","TRACE"],"type":"string"},"type":"array","minItems":1},"user":{"type":"string"}},"type":"object"},"type":"array"},"disable":{"type":"boolean"},"blacklist":{"items":{"type":"string"},"type":"array","minItems":1},"rejected_code":{"type":"integer","default":403,"minimum":200},"type":{"type":"string","default":"consumer_name","enum":["consumer_name","service_id"]},"whitelist":{"items":{"type":"string"},"type":"array","minItems":1}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"example-plugin":{"priority":0,"schema":{"required":["i"],"properties":{"i":{"minimum":0,"type":"number"},"port":{"type":"integer"},"ip":{"type":"string"},"disable":{"type":"boolean"},"t":{"minItems":1,"type":"array"},"s":{"type":"string"}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"metadata_schema":{"required":["ikey","skey"],"properties":{"ikey":{"minimum":0,"type":"number"},"skey":{"type":"string"}},"additionalProperties":false,"type":"object"},"version":0.1},"proxy-rewrite":{"priority":1008,"schema":{"additionalProperties":false,"type":"object","properties":{"regex_uri":{"maxItems":2,"minItems":2,"items":{"type":"string","description":"regex uri"},"description":"new uri that substitute from client uri for upstream, lower priority than uri property","type":"array"},"uri":{"maxLength":4096,"description":"new uri for upstream","minLength":1,"pattern":"^\\\/.*","type":"string"},"disable":{"type":"boolean"},"scheme":{"enum":["http","https"],"description":"new scheme for upstream","type":"string"},"headers":{"minProperties":1,"description":"new headers for request","type":"object"},"host":{"pattern":"^[0-9a-zA-Z-.]+(:\\d{1,5})?$","description":"new host for upstream","type":"string"}},"$comment":"this is a mark for our injected plugin schema","minProperties":1},"version":0.1},"serverless-post-function":{"priority":-2000,"schema":{"required":["functions"],"properties":{"phase":{"enum":["rewrite","access","header_filter","body_filter","log","balancer"],"default":"access","type":"string"},"disable":{"type":"boolean"},"functions":{"minItems":1,"type":"array","items":{"type":"string"}}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"http-logger":{"priority":410,"schema":{"required":["uri"],"properties":{"inactive_timeout":{"type":"integer","default":5,"minimum":1},"include_req_body":{"default":false,"type":"boolean"},"timeout":{"type":"integer","default":3,"minimum":1},"name":{"default":"http logger","type":"string"},"retry_delay":{"type":"integer","default":1,"minimum":0},"buffer_duration":{"type":"integer","default":60,"minimum":1},"uri":{"pattern":"^[^\\\/]+:\\\/\\\/([\\da-zA-Z.-]+|\\[[\\da-fA-F:]+\\])(:\\d+)?","type":"string"},"disable":{"type":"boolean"},"concat_method":{"enum":["json","new_line"],"default":"json","type":"string"},"auth_header":{"default":"","type":"string"},"batch_max_size":{"type":"integer","default":1000,"minimum":1},"max_retry_count":{"type":"integer","default":0,"minimum":0}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"metadata_schema":{"properties":{"log_format":{"default":{"host":"$host","@timestamp":"$time_iso8601","client_ip":"$remote_addr"},"type":"object"}},"additionalProperties":false,"type":"object"},"version":0.1},"cors":{"priority":4000,"schema":{"properties":{"allow_origins":{"description":"you can use '*' to allow all origins when no credentials,'**' to allow forcefully(it will bring some security risks, be carefully),multiple origin use ',' to split. default: *.","default":"*","type":"string"},"expose_headers":{"description":"you can use '*' to expose all header when no credentials,multiple header use ',' to split. default: *.","default":"*","type":"string"},"allow_credential":{"description":"allow client append credential. according to CORS specification,if you set this option to 'true', you can not use '*' for other options.","default":false,"type":"boolean"},"max_age":{"description":"maximum number of seconds the results can be cached.-1 mean no cached,the max value is depend on browser,more detail plz check MDN. default: 5.","default":5,"type":"integer"},"allow_headers":{"description":"you can use '*' to allow all header when no credentials,'**' to allow forcefully(it will bring some security risks, be carefully),multiple header use ',' to split. default: *.","default":"*","type":"string"},"disable":{"type":"boolean"},"allow_methods":{"description":"you can use '*' to allow all methods when no credentials and '**','**' to allow forcefully(it will bring some security risks, be carefully),multiple method use ',' to split. default: *.","default":"*","type":"string"},"allow_origins_by_regex":{"minItems":1,"uniqueItems":true,"description":"you can use regex to allow specific origins when no credentials,for example use [.*\\.test.com] to allow a.test.com and b.test.com","items":{"minLength":1,"maxLength":4096,"type":"string"},"type":"array"}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"grpc-transcode":{"priority":506,"schema":{"additionalProperties":true,"required":["proto_id","service","method"],"properties":{"proto_id":{"anyOf":[{"minLength":1,"pattern":"^[a-zA-Z0-9-_.]+$","maxLength":64,"type":"string"},{"minimum":1,"type":"integer"}]},"disable":{"type":"boolean"},"service":{"type":"string","description":"the grpc service name"},"deadline":{"description":"deadline for grpc, millisecond","default":0,"type":"number"},"method":{"type":"string","description":"the method name in the grpc service."},"pb_option":{"minItems":1,"type":"array","items":{"anyOf":[{"enum":["int64_as_number","int64_as_string","int64_as_hexstring"],"description":"enum as result","type":"string"},{"enum":["enum_as_name","enum_as_value"],"description":"int64 as result","type":"string"},{"enum":["auto_default_values","no_default_values","use_default_values","use_default_metatable"],"description":"default values option","type":"string"},{"enum":["enable_hooks","disable_hooks"],"description":"hooks option","type":"string"}],"type":"string"}}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"tcp-logger":{"priority":405,"schema":{"required":["host","port"],"properties":{"host":{"type":"string"},"include_req_body":{"default":false,"type":"boolean"},"timeout":{"type":"integer","default":1000,"minimum":1},"name":{"default":"tcp logger","type":"string"},"tls_options":{"type":"string"},"retry_delay":{"type":"integer","default":1,"minimum":0},"buffer_duration":{"type":"integer","default":60,"minimum":1},"port":{"minimum":0,"type":"integer"},"disable":{"type":"boolean"},"batch_max_size":{"type":"integer","default":1000,"minimum":1},"inactive_timeout":{"type":"integer","default":5,"minimum":1},"tls":{"default":false,"type":"boolean"},"max_retry_count":{"type":"integer","default":0,"minimum":0}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"serverless-pre-function":{"priority":10000,"schema":{"required":["functions"],"properties":{"phase":{"enum":["rewrite","access","header_filter","body_filter","log","balancer"],"default":"access","type":"string"},"disable":{"type":"boolean"},"functions":{"minItems":1,"type":"array","items":{"type":"string"}}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"key-auth":{"priority":2500,"consumer_schema":{"required":["key"],"properties":{"key":{"type":"string"}},"additionalProperties":false,"type":"object"},"schema":{"$comment":"this is a mark for our injected plugin schema","properties":{"disable":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"version":0.1,"type":"auth"},"node-status":{"priority":1000,"schema":{"$comment":"this is a mark for our injected plugin schema","properties":{"disable":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"version":0.1},"echo":{"priority":412,"schema":{"additionalProperties":false,"type":"object","anyOf":[{"required":["before_body"]},{"required":["body"]},{"required":["after_body"]}],"properties":{"disable":{"type":"boolean"},"before_body":{"type":"string","description":"body before the filter phase."},"auth_value":{"type":"string","description":"auth value"},"headers":{"minProperties":1,"description":"new headers for response","type":"object"},"after_body":{"type":"string","description":"body after the modification of filter phase."},"body":{"type":"string","description":"body to replace upstream response."}},"$comment":"this is a mark for our injected plugin schema","minProperties":1},"version":0.1},"syslog":{"priority":401,"schema":{"required":["host","port"],"properties":{"host":{"type":"string"},"include_req_body":{"default":false,"type":"boolean"},"max_retry_times":{"type":"integer","default":1,"minimum":1},"tls":{"default":false,"type":"boolean"},"name":{"default":"sys logger","type":"string"},"retry_interval":{"type":"integer","default":1,"minimum":0},"batch_max_size":{"type":"integer","default":1000,"minimum":1},"buffer_duration":{"type":"integer","default":60,"minimum":1},"port":{"type":"integer"},"disable":{"type":"boolean"},"flush_limit":{"type":"integer","default":4096,"minimum":1},"sock_type":{"enum":["tcp","udp"],"default":"tcp","type":"string"},"timeout":{"type":"integer","default":3,"minimum":1},"drop_limit":{"default":1048576,"type":"integer"},"pool_size":{"type":"integer","default":5,"minimum":5}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"jwt-auth":{"priority":2510,"consumer_schema":{"required":["key"],"properties":{"exp":{"type":"integer","default":86400,"minimum":1},"algorithm":{"type":"string","default":"HS256","enum":["HS256","HS512","RS256"]},"base64_secret":{"default":false,"type":"boolean"},"secret":{"type":"string"},"key":{"type":"string"}},"dependencies":{"algorithm":{"oneOf":[{"properties":{"algorithm":{"default":"HS256","enum":["HS256","HS512"]}}},{"required":["public_key","private_key"],"properties":{"algorithm":{"enum":["RS256"]},"private_key":{"type":"string"},"public_key":{"type":"string"}}}]}},"type":"object"},"schema":{"$comment":"this is a mark for our injected plugin schema","properties":{"disable":{"type":"boolean"}},"additionalProperties":false,"type":"object"},"version":0.1,"type":"auth"},"uri-blocker":{"priority":2900,"schema":{"required":["block_rules"],"properties":{"rejected_code":{"type":"integer","default":403,"minimum":200},"block_rules":{"uniqueItems":true,"type":"array","items":{"minLength":1,"maxLength":4096,"type":"string"}},"disable":{"type":"boolean"}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1},"udp-logger":{"priority":400,"schema":{"required":["host","port"],"properties":{"host":{"type":"string"},"include_req_body":{"default":false,"type":"boolean"},"timeout":{"type":"integer","default":3,"minimum":1},"name":{"default":"udp logger","type":"string"},"buffer_duration":{"type":"integer","default":60,"minimum":1},"port":{"minimum":0,"type":"integer"},"disable":{"type":"boolean"},"inactive_timeout":{"type":"integer","default":5,"minimum":1},"batch_max_size":{"type":"integer","default":1000,"minimum":1}},"$comment":"this is a mark for our injected plugin schema","type":"object"},"version":0.1}}}
其他
1
https://gitee.com/Caelebs/chain-0329.git
git@gitee.com:Caelebs/chain-0329.git
Caelebs
chain-0329
chain-0329
master

搜索帮助