This is an automated email from the ASF dual-hosted git repository. tzssangglass pushed a commit to branch patch-1 in repository https://gitbox.apache.org/repos/asf/apisix.git
commit 5c7b92b2fc63bf4ae7f052f7ac588bf153762d9f Merge: 4f980f3 912bbbb Author: tzssangglass <[email protected]> AuthorDate: Mon Sep 27 09:29:20 2021 +0800 Merge branch 'master' of https://github.com/apache/apisix into patch-1 .asf.yaml | 30 + .github/ISSUE_TEMPLATE/bug.md | 33 - .github/ISSUE_TEMPLATE/bug_report.yml | 65 + .github/ISSUE_TEMPLATE/config.yml | 5 + .github/ISSUE_TEMPLATE/improve-docs.md | 15 - .github/ISSUE_TEMPLATE/improve_docs.yml | 28 + .github/ISSUE_TEMPLATE/request-help.md | 21 - .github/ISSUE_TEMPLATE/request_help.yml | 35 + .github/actions/action-tmate | 1 + .github/workflows/build.yml | 8 +- .github/workflows/centos7-ci.yml | 17 +- .github/workflows/chaos.yml | 60 +- .github/workflows/code-lint.yml | 2 +- .github/workflows/doc-lint.yml | 2 +- .github/workflows/fuzzing-ci.yaml | 11 +- .github/workflows/license-checker.yml | 38 + .github/workflows/lint.yml | 3 - .github/workflows/stale.yml | 43 + .gitignore | 20 +- .gitmodules | 3 + t/fuzzing/upstream/nginx.conf => .licenserc.yaml | 64 +- CHANGELOG.md | 106 ++ Makefile | 17 +- README.md | 128 +- apisix/admin/consumers.lua | 18 +- apisix/admin/global_rules.lua | 16 +- apisix/admin/init.lua | 10 +- apisix/admin/plugin_config.lua | 16 +- apisix/admin/plugin_metadata.lua | 8 +- apisix/admin/plugins.lua | 10 +- apisix/admin/proto.lua | 54 +- apisix/admin/routes.lua | 21 +- apisix/admin/services.lua | 18 +- apisix/admin/ssl.lua | 22 +- apisix/admin/stream_routes.lua | 24 +- apisix/admin/upstreams.lua | 20 +- apisix/admin/utils.lua | 11 +- apisix/api_router.lua | 16 +- apisix/balancer.lua | 71 +- apisix/balancer/chash.lua | 8 +- apisix/balancer/ewma.lua | 6 +- apisix/cli/env.lua | 13 +- apisix/cli/file.lua | 25 +- apisix/cli/ngx_tpl.lua | 129 +- apisix/cli/ops.lua | 263 +++- apisix/constants.lua | 1 + apisix/control/v1.lua | 82 +- apisix/core.lua | 2 +- apisix/core/config_etcd.lua | 84 +- apisix/core/config_util.lua | 89 ++ apisix/core/ctx.lua | 24 +- apisix/core/dns/client.lua | 2 +- apisix/core/etcd.lua | 4 +- apisix/core/ip.lua | 66 + apisix/core/lrucache.lua | 18 +- apisix/core/string.lua | 12 + apisix/core/utils.lua | 67 +- apisix/core/version.lua | 2 +- apisix/debug.lua | 55 +- apisix/discovery/consul_kv.lua | 17 +- apisix/discovery/dns.lua | 2 +- apisix/discovery/nacos.lua | 62 +- apisix/{cli/html_page.lua => error_handling.lua} | 19 +- apisix/http/route.lua | 15 +- apisix/http/router/radixtree_host_uri.lua | 48 +- apisix/http/router/radixtree_uri.lua | 12 +- .../http/router/radixtree_uri_with_parameter.lua | 12 +- apisix/init.lua | 90 +- apisix/patch.lua | 43 + apisix/plugin.lua | 80 +- apisix/plugin_config.lua | 11 +- apisix/plugins/api-breaker.lua | 2 +- apisix/plugins/authz-casbin.lua | 135 ++ apisix/plugins/authz-keycloak.lua | 9 +- apisix/plugins/basic-auth.lua | 2 - apisix/plugins/batch-requests.lua | 24 +- apisix/plugins/client-control.lua | 6 +- apisix/plugins/consumer-restriction.lua | 5 +- apisix/plugins/cors.lua | 8 +- apisix/plugins/echo.lua | 1 - apisix/plugins/error-log-logger.lua | 166 +- apisix/plugins/example-plugin.lua | 1 - apisix/plugins/ext-plugin-post-req.lua | 5 +- apisix/plugins/ext-plugin-pre-req.lua | 5 +- apisix/plugins/ext-plugin/init.lua | 104 +- apisix/plugins/grpc-transcode.lua | 6 +- apisix/plugins/grpc-transcode/proto.lua | 41 +- apisix/plugins/grpc-transcode/request.lua | 9 +- apisix/plugins/grpc-transcode/util.lua | 24 +- apisix/plugins/gzip.lua | 170 ++ apisix/plugins/hmac-auth.lua | 43 +- apisix/plugins/http-logger.lua | 55 +- apisix/plugins/ip-restriction.lua | 148 +- apisix/plugins/ip-restriction/init.lua | 116 ++ apisix/plugins/jwt-auth.lua | 2 - apisix/plugins/kafka-logger.lua | 79 +- apisix/plugins/key-auth.lua | 12 +- apisix/plugins/limit-conn.lua | 91 +- .../{limit-conn.lua => limit-conn/init.lua} | 75 +- apisix/plugins/limit-count.lua | 26 +- .../limit-count/limit-count-redis-cluster.lua | 7 +- apisix/plugins/limit-count/limit-count-redis.lua | 8 +- apisix/plugins/limit-req.lua | 13 + apisix/plugins/log-rotate.lua | 42 +- apisix/plugins/node-status.lua | 2 +- apisix/plugins/prometheus.lua | 1 - apisix/plugins/prometheus/exporter.lua | 5 +- apisix/plugins/proxy-cache.lua | 6 +- apisix/plugins/proxy-mirror.lua | 21 +- apisix/plugins/proxy-rewrite.lua | 1 - apisix/plugins/real-ip.lua | 157 ++ apisix/plugins/referer-restriction.lua | 27 +- apisix/plugins/request-id.lua | 208 ++- apisix/plugins/response-rewrite.lua | 1 - apisix/plugins/server-info.lua | 6 +- apisix/plugins/serverless/init.lua | 2 +- apisix/plugins/skywalking.lua | 3 +- apisix/plugins/traffic-split.lua | 2 - apisix/plugins/ua-restriction.lua | 123 ++ apisix/plugins/udp-logger.lua | 2 +- apisix/plugins/uri-blocker.lua | 14 + apisix/plugins/zipkin.lua | 1 + apisix/schema_def.lua | 73 +- apisix/ssl.lua | 22 +- apisix/ssl/router/radixtree_sni.lua | 21 +- .../plugins/ip-restriction.lua} | 13 +- .../plugins/limit-conn.lua} | 36 +- apisix/stream/plugins/mqtt-proxy.lua | 17 +- apisix/stream/router/ip_port.lua | 68 +- apisix/upstream.lua | 16 +- apisix/utils/batch-processor.lua | 6 +- apisix/utils/log-util.lua | 46 + apisix/utils/upstream.lua | 2 +- benchmark/server/conf/nginx.conf | 4 +- bin/apisix | 3 - ci/ASF-Release.cfg | 110 -- ci/centos7-ci.sh | 4 +- ci/common.sh | 2 +- ci/install-ext-services-via-docker.sh | 17 +- ci/linux_apisix_master_luarocks_runner.sh | 18 - ci/linux_openresty_common_runner.sh | 3 - conf/config-default.yaml | 125 +- conf/config.yaml | 6 +- conf/debug.yaml | 5 + conf/mime.types | 169 +- docs/ar/README.md | 355 ----- docs/assets/images/plugin/basic-auth-2.png | Bin 88754 -> 5932 bytes docs/assets/images/plugin/limit-conn-1.png | Bin 72052 -> 13027 bytes docs/assets/images/plugin/limit-conn-2.png | Bin 325773 -> 0 bytes docs/assets/images/plugin/limit-count-1.png | Bin 74547 -> 13354 bytes docs/assets/images/plugin/limit-count-2.png | Bin 119480 -> 0 bytes docs/assets/images/plugin/limit-req-1.png | Bin 70315 -> 11571 bytes docs/assets/images/plugin/limit-req-2.png | Bin 289197 -> 0 bytes docs/assets/images/plugin/skywalking-1.png | Bin 22230 -> 4948 bytes docs/assets/images/plugin/skywalking-2.png | Bin 30629 -> 0 bytes docs/assets/images/plugin/zipkin-1.png | Bin 77813 -> 7647 bytes docs/assets/images/plugin/zipkin-2.png | Bin 277580 -> 0 bytes docs/assets/images/requesturl.jpg | Bin 0 -> 29728 bytes docs/en/latest/FAQ.md | 133 +- docs/en/latest/admin-api.md | 99 +- docs/en/latest/architecture-design/debug-mode.md | 31 +- docs/en/latest/architecture-design/global-rule.md | 2 +- docs/en/latest/config.json | 15 +- docs/en/latest/control-api.md | 94 +- docs/en/latest/customize-nginx-configuration.md | 2 +- docs/en/latest/discovery.md | 2 +- docs/en/latest/discovery/dns.md | 4 +- docs/en/latest/discovery/nacos.md | 8 +- docs/en/latest/external-plugin.md | 6 +- docs/en/latest/getting-started.md | 203 ++- docs/en/latest/health-check.md | 66 +- docs/en/latest/how-to-build.md | 224 ++- docs/en/latest/install-dependencies.md | 15 +- docs/en/latest/internal/testing-framework.md | 288 ++++ docs/en/latest/mtls.md | 12 +- docs/en/latest/plugin-develop.md | 47 +- docs/en/latest/plugins/api-breaker.md | 2 +- docs/en/latest/plugins/authz-casbin.md | 250 +++ docs/en/latest/plugins/basic-auth.md | 4 +- docs/en/latest/plugins/batch-requests.md | 16 + docs/en/latest/plugins/client-control.md | 2 +- docs/en/latest/plugins/consumer-restriction.md | 2 +- docs/en/latest/plugins/cors.md | 10 +- docs/en/latest/plugins/dubbo-proxy.md | 4 +- docs/en/latest/plugins/echo.md | 2 +- docs/en/latest/plugins/error-log-logger.md | 61 +- docs/en/latest/plugins/gzip.md | 112 ++ docs/en/latest/plugins/hmac-auth.md | 42 +- docs/en/latest/plugins/http-logger.md | 6 +- docs/en/latest/plugins/ip-restriction.md | 21 +- docs/en/latest/plugins/jwt-auth.md | 2 +- docs/en/latest/plugins/kafka-logger.md | 48 +- docs/en/latest/plugins/key-auth.md | 5 +- docs/en/latest/plugins/limit-conn.md | 12 +- docs/en/latest/plugins/limit-count.md | 26 +- docs/en/latest/plugins/limit-req.md | 27 +- docs/en/latest/plugins/log-rotate.md | 17 + docs/en/latest/plugins/mqtt-proxy.md | 2 +- docs/en/latest/plugins/node-status.md | 21 - docs/en/latest/plugins/openid-connect.md | 4 +- docs/en/latest/plugins/prometheus.md | 2 +- docs/en/latest/plugins/proxy-cache.md | 2 +- docs/en/latest/plugins/proxy-mirror.md | 5 +- .../plugins/{client-control.md => real-ip.md} | 44 +- docs/en/latest/plugins/referer-restriction.md | 11 +- docs/en/latest/plugins/request-id.md | 57 +- docs/en/latest/plugins/skywalking.md | 87 +- docs/en/latest/plugins/tcp-logger.md | 2 +- docs/en/latest/plugins/traffic-split.md | 2 +- .../{referer-restriction.md => ua-restriction.md} | 71 +- docs/en/latest/plugins/udp-logger.md | 2 +- docs/en/latest/plugins/uri-blocker.md | 18 +- docs/en/latest/plugins/wolf-rbac.md | 2 +- docs/en/latest/plugins/zipkin.md | 8 +- docs/en/latest/stand-alone.md | 12 +- docs/en/latest/stream-proxy.md | 11 + docs/es/latest/FAQ.md | 357 ----- docs/es/latest/README.md | 348 ---- docs/es/latest/config.json | 4 - docs/zh/latest/CHANGELOG.md | 106 ++ docs/zh/latest/FAQ.md | 67 + docs/zh/latest/README.md | 123 +- docs/zh/latest/admin-api.md | 58 +- docs/zh/latest/architecture-design/debug-mode.md | 31 +- docs/zh/latest/architecture-design/upstream.md | 2 +- docs/zh/latest/certificate.md | 2 +- docs/zh/latest/config.json | 20 +- docs/{en => zh}/latest/control-api.md | 63 +- docs/zh/latest/customize-nginx-configuration.md | 2 +- docs/{en => zh}/latest/discovery/dns.md | 55 +- .../zh/latest/discovery/eureka.md | 20 +- docs/{en => zh}/latest/discovery/nacos.md | 50 +- docs/zh/latest/external-plugin.md | 105 ++ docs/zh/latest/getting-started.md | 185 ++- docs/zh/latest/health-check.md | 74 +- docs/zh/latest/how-to-build.md | 214 ++- docs/zh/latest/install-dependencies.md | 15 +- docs/zh/latest/mtls.md | 12 +- docs/zh/latest/plugin-develop.md | 26 +- docs/zh/latest/plugins/api-breaker.md | 2 +- docs/zh/latest/plugins/basic-auth.md | 2 +- docs/zh/latest/plugins/batch-requests.md | 16 + docs/zh/latest/plugins/consumer-restriction.md | 2 +- docs/zh/latest/plugins/cors.md | 12 +- docs/zh/latest/plugins/dubbo-proxy.md | 4 +- docs/zh/latest/plugins/echo.md | 2 +- docs/zh/latest/plugins/error-log-logger.md | 59 +- docs/zh/latest/plugins/hmac-auth.md | 42 +- docs/zh/latest/plugins/http-logger.md | 4 +- docs/zh/latest/plugins/ip-restriction.md | 18 +- docs/zh/latest/plugins/jwt-auth.md | 2 +- docs/zh/latest/plugins/kafka-logger.md | 42 +- docs/zh/latest/plugins/key-auth.md | 5 +- docs/zh/latest/plugins/limit-conn.md | 10 +- docs/zh/latest/plugins/limit-count.md | 26 +- docs/zh/latest/plugins/limit-req.md | 22 +- docs/zh/latest/plugins/log-rotate.md | 17 + docs/zh/latest/plugins/mqtt-proxy.md | 2 +- docs/zh/latest/plugins/node-status.md | 20 - docs/zh/latest/plugins/openid-connect.md | 45 +- docs/zh/latest/plugins/proxy-cache.md | 2 +- docs/zh/latest/plugins/proxy-mirror.md | 1 + docs/zh/latest/plugins/referer-restriction.md | 11 +- docs/zh/latest/plugins/request-id.md | 61 +- docs/zh/latest/plugins/server-info.md | 2 +- docs/zh/latest/plugins/skywalking.md | 85 +- docs/zh/latest/plugins/sls-logger.md | 2 +- docs/zh/latest/plugins/tcp-logger.md | 2 +- docs/zh/latest/plugins/traffic-split.md | 2 +- docs/zh/latest/plugins/ua-restriction.md | 125 ++ docs/zh/latest/plugins/udp-logger.md | 2 +- docs/zh/latest/plugins/uri-blocker.md | 18 +- docs/zh/latest/plugins/wolf-rbac.md | 2 +- docs/zh/latest/plugins/zipkin.md | 8 +- docs/zh/latest/router-radixtree.md | 277 ++++ docs/zh/latest/stand-alone.md | 14 +- docs/zh/latest/stream-proxy.md | 11 + apisix/core/version.lua => example/my_hook.lua | 16 +- powered-by.md | 35 +- ...six-master-0.rockspec => apisix-2.7-0.rockspec} | 4 +- ...six-master-0.rockspec => apisix-2.8-0.rockspec} | 10 +- ...six-master-0.rockspec => apisix-2.9-0.rockspec} | 18 +- rockspec/apisix-master-0.rockspec | 18 +- t/APISIX.pm | 145 +- t/admin/{routes3.t => api.t} | 42 +- t/admin/consumers2.t | 22 + t/admin/global-rules.t | 48 +- t/admin/plugins-reload.t | 1 + t/admin/plugins.t | 90 +- t/admin/proto.t | 239 +++ t/admin/routes.t | 1593 ------------------- t/admin/routes2.t | 2 + t/admin/routes3.t | 639 ++++++++ t/admin/routes4.t | 834 ++++++++++ t/admin/services-string-id.t | 49 +- t/admin/services.t | 77 +- t/admin/services2.t | 2 + t/admin/ssl2.t | 2 + t/admin/stream-routes.t | 4 + t/admin/upstream-array-nodes.t | 10 +- t/admin/upstream.t | 1369 +--------------- t/admin/upstream2.t | 2 + t/admin/upstream3.t | 725 +++++++++ t/admin/upstream4.t | 605 +++++++ t/chaos/delayetcd/delayetcd.go | 194 +++ t/chaos/e2e.go | 25 + t/chaos/e2e_test.go | 31 + t/chaos/go.mod | 15 +- t/chaos/go.sum | 63 +- t/chaos/kill-etcd_test.go | 127 -- t/chaos/killetcd/killetcd.go | 164 ++ t/chaos/utils.go | 201 --- t/chaos/{ => utils}/kube_utils.go | 50 +- t/chaos/{ => utils}/setup_chaos_utils.sh | 31 +- t/chaos/utils/utils.go | 267 ++++ t/cli/docker-compose-etcd-cluster.yaml | 69 + t/cli/test_admin.sh | 34 +- t/cli/test_control.sh | 39 +- t/cli/test_core_config.sh | 72 + t/cli/test_dns.sh | 4 +- t/cli/test_etcd.sh | 16 +- t/cli/test_etcd_healthcheck.sh | 98 ++ .../nginx.conf => cli/test_http_config.sh} | 74 +- t/cli/test_main.sh | 297 +++- t/cli/test_prometheus.sh | 32 + t/cli/test_snippet.sh | 1 + ...{test_tls_over_tcp.sh => test_stream_config.sh} | 61 +- t/cli/test_tls_over_tcp.sh | 1 + t/cli/test_validate_config.sh | 20 + t/config-center-yaml/consumer.t | 1 - t/config-center-yaml/global-rule.t | 2 +- t/config-center-yaml/plugin.t | 37 +- t/{admin/upstream3.t => control/gc.t} | 39 +- t/control/healthcheck.t | 6 +- t/control/routes.t | 140 ++ t/control/schema.t | 53 +- t/core/config-default.t | 4 +- t/core/config.t | 2 +- t/core/config_etcd.t | 58 +- t/core/config_util.t | 72 + t/core/ctx.t | 10 +- t/core/ctx2.t | 104 ++ t/core/etcd.t | 4 +- t/core/schema_def.t | 1 - t/core/utils.t | 6 +- t/coredns/db.test.local | 4 + t/debug/debug-mode.t | 75 +- t/debug/dynamic-hook.t | 435 +++++ t/debug/hook.t | 17 +- t/discovery/consul_kv.t | 48 + t/discovery/dns/mix.t | 4 + t/discovery/dns/sanity.t | 14 + t/discovery/nacos.t | 184 +++ t/discovery/nacos2.t | 84 + t/error_page/50x.html | 38 - t/error_page/error_page.t | 18 +- t/fuzzing/client_abort.py | 60 + t/fuzzing/public.py | 80 +- t/fuzzing/requirements.txt | 3 + t/fuzzing/serverless_route_test.py | 4 +- t/fuzzing/simple_http.py | 121 ++ t/fuzzing/simpleroute_test.py | 4 +- t/fuzzing/upstream/nginx.conf | 14 +- t/fuzzing/vars_route_test.py | 4 +- t/lib/ext-plugin.lua | 60 +- t/lib/server.lua | 74 +- t/lib/test_admin.lua | 2 +- t/misc/patch.t | 50 +- t/node/chash-hashon.t | 44 + t/node/global-rule.t | 119 ++ t/node/invalid-upstream.t | 33 +- t/node/not-exist-upstream.t | 2 +- t/node/plugin-configs.t | 73 + t/node/timeout-upstream.t | 8 +- t/node/upstream-discovery.t | 125 ++ t/node/upstream-keepalive-pool.t | 277 ++++ t/node/upstream-node-dns.t | 69 + t/node/upstream-retries.t | 47 + t/node/upstream-status-5xx.t | 4 +- {benchmark/server => t/perf}/conf/nginx.conf | 30 +- t/perf/requirements.txt | 1 + t/perf/test_http.py | 185 +++ t/plugin/api-breaker.t | 16 +- t/plugin/authz-casbin.t | 484 ++++++ t/plugin/authz-casbin/model.conf | 14 + t/plugin/authz-casbin/policy.csv | 3 + t/plugin/authz-keycloak.t | 91 ++ t/plugin/basic-auth.t | 14 +- t/plugin/batch-requests2.t | 219 +++ t/plugin/consumer-restriction.t | 239 ++- t/plugin/cors.t | 4 +- t/plugin/cors2.t | 91 ++ t/plugin/echo.t | 36 +- t/plugin/error-log-logger-skywalking.t | 225 +++ t/plugin/error-log-logger.t | 171 +- t/plugin/example.t | 2 +- t/plugin/ext-plugin/extra-info.t | 183 +++ t/plugin/ext-plugin/http-req-call.t | 20 + t/plugin/ext-plugin/sanity.t | 112 +- t/plugin/fault-injection.t | 2 +- t/plugin/grpc-transcode.t | 154 ++ t/plugin/grpc-transcode2.t | 130 ++ t/plugin/gzip.t | 546 +++++++ t/plugin/hmac-auth.t | 918 ----------- t/plugin/hmac-auth2.t | 882 +++++++++++ t/plugin/hmac-auth3.t | 534 +++++++ t/plugin/ip-restriction.t | 229 ++- t/plugin/jwt-auth.t | 99 +- .../kafka-logger-log-format.t} | 101 +- t/plugin/kafka-logger.t | 392 +++++ t/plugin/key-auth.t | 48 + t/plugin/limit-conn.t | 47 +- t/plugin/limit-conn2.t | 203 ++- t/plugin/limit-count-redis-cluster.t | 57 + t/plugin/limit-count-redis.t | 4 +- t/plugin/limit-count-redis2.t | 114 +- t/plugin/limit-count.t | 2 +- t/plugin/{limit-count-redis2.t => limit-count2.t} | 108 +- t/plugin/log-rotate.t | 2 +- t/plugin/log-rotate2.t | 96 ++ t/plugin/openid-configuration.json | 75 + t/plugin/prometheus.t | 186 +-- t/plugin/proxy-cache.t | 44 + t/plugin/proxy-mirror.t | 161 +- t/plugin/proxy-rewrite.t | 46 +- t/plugin/real-ip.t | 429 +++++ t/plugin/referer-restriction.t | 81 + t/plugin/request-id.t | 348 ++++ t/plugin/request-validation.t | 150 +- t/plugin/response-rewrite.t | 47 +- t/plugin/serverless.t | 156 ++ t/plugin/skywalking.t | 158 ++ t/plugin/traffic-split.t | 1657 +------------------- t/plugin/traffic-split2.t | 268 ++-- t/plugin/traffic-split3.t | 656 ++++++++ t/plugin/traffic-split4.t | 688 ++++++++ t/plugin/ua-restriction.t | 741 +++++++++ t/plugin/uri-blocker.t | 153 ++ t/router/radixtree-host-uri2.t | 36 + t/router/radixtree-host-uri3.t | 354 +++++ t/router/radixtree-sni2.t | 174 ++ t/router/radixtree-uri-host.t | 289 ++++ t/router/radixtree-uri-keep-end-slash.t | 3 +- t/router/radixtree-uri-vars.t | 35 + t/router/radixtree-uri-with-parameter.t | 87 + t/stream-node/sanity.t | 64 + t/stream-node/sni.t | 52 +- t/stream-plugin/ip-restriction.t | 161 ++ t/stream-plugin/limit-conn.t | 191 +++ utils/check-category.py | 12 +- utils/install-apisix.sh | 76 - utils/linux-install-luarocks.sh | 3 +- utils/linux-install-openresty.sh | 2 +- 453 files changed, 25667 insertions(+), 10867 deletions(-)
