You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by sp...@apache.org on 2022/06/30 01:07:41 UTC

[apisix] branch next updated (d1d8a8e4b -> 10deb7888)

This is an automated email from the ASF dual-hosted git repository.

spacewander pushed a change to branch next
in repository https://gitbox.apache.org/repos/asf/apisix.git


    from d1d8a8e4b chore: remove zipkin.md special character (#6671)
     new d5bfbaee7 build(deps): bump actions/cache from 2.1.7 to 3 (#6683)
     new 555140ae5 feat: support reading configuration form xds(mvp) (#6614)
     new f3e792b16 ci: should check ngx.redirect & stream plugins (#6684)
     new 13a43f167 docs: modify the make install in how to build Apache APISIX doc (#6627)
     new b48002f8e docs: fix some logger plugin metadata description (#6659)
     new 6df282681 feat: add optional request method for forward-auth plugin (#6682)
     new c8b723752 docs(lint): import Chinese copywriting autocorrect linter (#6568)
     new 3afb2483d docs: fix skywalking-logger typo (#6696)
     new 0a70fe28c docs: fix links to OpenTelemetry specification (#6711)
     new a1a46009c docs(zh): fix links to OpenTelemetry specification (#6712)
     new 81ed1645b docs: update external-plugin image (#6715)
     new 4d2cdd290 feat: release 2.13.0 (#6716)
     new c2f013932 docs: update FAQ docs (#6695)
     new c902d3c37 fix: hidding real message when password or username is error (#6707)
     new 31746cd85 docs: added an Introductory section to the "Getting started" (#6554)
     new ce1be237f ci: remove unnecessary step (#6727)
     new 5a613e1cf ci: should check the `>>> master` too (#6717)
     new fe9f25098 feat(file-logger): cache & reopen file handler (#6721)
     new 132aa3ca9 feat: add auth plugin for casdoor (#6382)
     new e2c073fe6 docs: delete extra characters (#6691)
     new 069649dec docs: opentelemetry plugin update to prose (#6723)
     new 3413b6d7b chore(lint): filter files by git-ls-files and remove subcommand grep (#6730)
     new b7c117d55 fix: need to invalidate req hdr cache properly (#6733)
     new dc42b5ebd chore: upgrade lua-resty-session to 3.10 (#6737)
     new 1fc806aad fix(DNS): support SRV with port 0 (#6739)
     new e339e7c6b fix: `env.lua` should use absolute path (#6758)
     new a18cd4b79 feat: release 2.10.5 (#6757)
     new aa27460be feat(DNS): allow specifying port to override the discovered one (#6764)
     new 1d01be7fa docs: fix error-log-logger.md format (#6756)
     new 08518fe23 chore: upgrade etcd version to 3.4.18 for ci (#6755)
     new 8f7a1c6a7 feat: use `command -v` instead of `which` to find the installed path. (#6778)
     new 3604f1676 docs: fix forward-auth typo (#6784)
     new dd2e22379 docs: remove OS/discovery list (#6785)
     new 46116d472 build(deps): bump actions/setup-node from 3.0.0 to 3.1.0 (#6790)
     new bea9a0b93 feat: Add the function to hide header for key-auth plugin (#6670)
     new e3ffd1fd3 fix: allow `purge` method in `route` (#6780)
     new b66155c7b docs: improve authentication/authorization methods (#6796)
     new e8d587f87 feat(zookeeper): support zookeeper service discovery (#6751)
     new b21974847 fix(authz-keycloak): add missing path for access_denied_redirect_uri (#6794)
     new f3884a96c feat(xds): using data written by xds to control dp behavior (#6759)
     new 8b2961666 feat(request-id): add algorithm support nanoid (#6779)
     new 16b00cbec fix: inappropriate default timeout of syslog schema (#6807)
     new 2ca992552 chore: fix confusing var name (#6808)
     new ee8f252f1 feat(response-rewrite): support filters (#6750)
     new 979cabc54 fix(admin): reject unknown stream plugin (#6813)
     new b469b0752 build(deps): bump actions/upload-artifact from 2 to 3 (#6815)
     new 5f889866e test: rewrite test to bypass "missing the closing long bracket" err (#6818)
     new 9568f9df0 test(xds): add Centos7 CI (#6814)
     new 4c53c3892  chore: set the license location threshold (#6825)
     new 5bb8870ad build(deps): bump dubbo from 2.7.7 to 2.7.15 in /t/lib/dubbo-backend/dubbo-backend-provider (#6820)
     new c5ee98859 build(deps): bump dubbo from 2.7.7 to 2.7.15 in /t/lib/dubbo-backend (#6819)
     new adf593eed fix: add support for multi-header with same key (#6811)
     new 282e3c962 docs: update "General" Plugins (#6763)
     new 00c407be5 docs: update "Transformation" Plugins (#6775)
     new ebbf84780 feat(xRPC): add Admin API support (#6817)
     new b86b2d76c build(deps): bump actions/setup-node from 3.1.0 to 3.1.1 (#6832)
     new 0b770ce34 build(deps): bump httpclient from 4.5.5 to 4.5.13 in /t/lib/dubbo-backend/dubbo-backend-provider (#6831)
     new d853b8ba6 ci: upgrade ancient redis image (#6838)
     new e775e762d chore: modify links (#6839)
     new 1a5e777cc feat(xrpc): add unary structure (#6837)
     new 05094db7c docs(zookeeper): add zookeeper discovery to README (#6816)
     new daeda3fbb fix: jwt-auth error may leak secret (#6846)
     new 39a459061 chore: upgrade lua-resty-jwt to a new version (#6847)
     new 3e81e18d0 docs: update "Authentication" Plugins (#6824)
     new 4d3f79f14 fix(grpc-web): don't override Access-Control-Allow-Origin header in response (#6842)
     new 357f2deb9 feat: release 2.13.1 (#6849)
     new 3fb18048b chore(jwt-auth): adjust error log level to warn (#6858)
     new 3f435985b fix(hmac-auth): don't let client know why it is rejected (#6853)
     new 669266b96 docs: update MAINTAIN.md (#6863)
     new 64e5c88fe fix(authz-keycloak): do not expose internal errors to the client (#6854)
     new 539d377d4 feat(serverless): return like other plugins (#6870)
     new 2674a48f9 feat: inject kubernetes discovery environment variable (#6869)
     new 0c577ff77 fix: do not expose internal errors to the client (#6859)
     new ffdd9632d feat(xRPC): simple redis support (#6873)
     new 0d5735bfc fix(grpc-transcode): fetch the response body cached in the ctx (#6862)
     new 56cb0a91a docs: we don't use our fork anymore (#6875)
     new 9d8eeafe7 docs(how-to-build): update centos repo support (#6871)
     new 043418bc2 chore(redis): avoid recording bad value (#6876)
     new 8ef3a93de feat(xRPC): basic stream support (#6885)
     new 55413bb20 docs: update prowered-by.md (#6894)
     new 9cec44219 docs: Modify APISIX Chinese docs directory  (#6898)
     new cb7ef36fb feat(xRPC): support dynamic upstream (#6901)
     new 819278a4e fix: the client verify flag might not be set (#6906)
     new 279af39b8 docs: update "cors" docs (#6877)
     new 28c13e5c3 docs: update "ua-restriction" Plugin docs (#6884)
     new d80f28164 docs: update "uri-blocker" Plugin docs (#6882)
     new be61d5de6 chore: don't report upstream http host check error in stream subsystem (#6904)
     new 701d9f525 docs: update "limit-conn" plugin docs  (#6897)
     new c3d0e6253 fix: upstream nodes cant't include ipv6 addr (#6908)
     new 9b4b9fe5b feat(xRPC): support dynamic upstream with upstream_id (#6919)
     new 19ca46a54 docs: update "ip-restriction" Plugin docs (#6883)
     new b0fabe1fa fix: replace get_headers and get_uri_args with the function in core.request (#6922)
     new eda3379ca fix: replace ngx.req.get_post_args to core.request.get_post_args (#6924)
     new b7164738a fix: the same fix to other headers (#6921)
     new a85c8f188 docs: update "Authentication" Plugins (#6895)
     new 0c2612ba5 chore(stream): there is no reusable api_ctx (#6933)
     new 55f2f583b docs: update "General" Plugins (#6886)
     new ec1f71ff3 docs: update "Transformation" Plugins  (#6891)
     new 11c57d197 chore: the second returned value of ngx.thread.wait is execution result but not err (#6910)
     new cbf2113d1 test: reject bad client TLS request in handshake (#6941)
     new 034d56a0b docs: correct @tparam format (#6915)
     new 878f8c575 docs: fix description format in mocking doc (#6947)
     new 0f2258c4d chore: replace ngx.decode_args to core.string.decode_args (#6925)
     new 811905dcc docs: update "Security" docs (#6911)
     new 214ffa963 fix: allow apisix start when open file descriptors unlimited (#6952)
     new a9f2895e8 docs: fix code block format in jwt-auth doc (#6955)
     new 228375edf docs: fix plugin document's format and contents (#6957)
     new 044279114 test: add client mTLS test for vanilla OpenResty (#6951)
     new 04fae196f docs(xRPC): add the main entry (#6956)
     new 59f8fbe83 docs: update "Getting started" guide (#6929)
     new 0e420aec7 ci: use wildcard to protect branches (#6966)
     new 00559b96b fix: upgrade lua-resty-etcd to 1.6.2 (#6892)
     new 3ca7c8c81 refactor(ops): penlight path instead of shell command mkdir (#6980)
     new a4aa64448 fix: hide 5xx error message from client (#6982)
     new 5f56379f6 feat(xRPC): support timeout (#6965)
     new dfb7c63b9 chore: remove redundant code (#6967)
     new 30957872f feat(stream): port syslog plugin (#6953)
     new cfe9cc30c fix-docs: fix error in doc of request-validation plugin (#6943)
     new a104d6931 feat(redis): support pipeline (#6959)
     new 42760d431 feat(redirect): set redirect server port when enable http_to_https (#6686)
     new 3993c41de perf: avoid rematching SSL when our customized Nginx is used (#6970)
     new b163fc65a docs: update "Installation" guide (#6964)
     new 321dfa910 docs: update plugin concept link in README (#6881)
     new b0e110cf2 docs: sync Chinese version FAQ docs (#6736)
     new 0ba869673 feat: just change uri args or headers when hiding credentials (#6991)
     new 6bb125cc3 chore: Set permissions for GitHub actions (#6986)
     new de4b6efb1 docs: fix error link (#6989)
     new 532168a59 feat: add option to normalize uri like servlet (#6984)
     new 6d0c2ebf0 docs: fix FAQ page error link (#6942)
     new 23aeb2d43 ci: revert wildcard rule as it doesn't work (#7001)
     new 5ad04a620 docs: replace all apisix-openresty to apisix-base (#6998)
     new 49a9f75a5 docs: upadate Chinese installation docs (#7002)
     new 7a4d15be8 docs: add three Chinese version about Authentication doc (#6974)
     new 0beadf95d feat: upgrade lua-resty-logger-socket to 2.0.1 (#7004)
     new eddc0b338 feat(ops): handle real_ip_from CIDR format (#6981)
     new 87bb43171 feat(redis): delay according to the cmd & key (#6999)
     new b5335901e feat(ext-plugin): support hook response body (#6968)
     new d30f77e02 feat(api-breaker): allow configuring response (#6949)
     new dbf2334e0 chore: the default network port for OTLP/HTTP is 4318 (#7007)
     new aed36ab29 docs: updated CODE_STYLE.md (#7023)
     new 0a1da8999 docs: add datadog document(zh) (#6616)
     new a6e507c82 docs: update description of how to join slack (#7029)
     new bde035151 build(deps): bump apache/skywalking-eyes from 0.2.0 to 0.3.0 (#7024)
     new 339df3e49 docs: add unit to upstream timeout (#7027)
     new e1e8d708d feat(xRPC): support log filter (#6960)
     new feaff67de fix(xRPC): don't keepalive (#7009)
     new 39b7ecf20 fix(xRPC): log down unfinished request (#7014)
     new e37cd53d5 docs: update Chinese getting started doc (#7022)
     new 4c2dcbbc5 feat: add pubsub framework (#7028)
     new ec2b5659f feat(redis): support pubsub (#7031)
     new b660d5387 feat(real-ip): support search recursive (#6988)
     new f7e2cdee8 chore: improve the implementation of pubsub module (#7043)
     new c7ba8dbd1 docs(redis): add xRPC doc (#7038)
     new e08643eea docs: update "Traffic" Plugin docs 1 (#7030)
     new 8a4eb4d16 docs: update "Traffic" Plugin docs 2 (#7050)
     new b3aa0f217 docs: update apisix-base link. (#7047)
     new 481da04d5 ci(traffic-split): improve ci stability (#7055)
     new 4c14a45f3 fix(xRPC): release ctx.var when ctx is done (#7045)
     new 058093567 feat(xrpc): register variable rpc_time (#7040)
     new 6993631fa feat(pubsub): support kafka (#7032)
     new d488dee89 fix(upstream): keepalive should consider TLS param (#7054)
     new 8f00454a1 docs: sync Chinese benchmark doc and add notes on running the benchmark (#7035)
     new dd5e92c63 feat(xrpc): register variable redis_cmd_line (#7041)
     new 1970debbc feat: add default handler for pubsub ping command (#7058)
     new de283cf9f feat(pubsub): support kafka tls and sasl/plain auth (#7046)
     new 511bff0c0 build(deps): bump actions/setup-node from 3.1.1 to 3.2.0 (#7060)
     new d94ee5ba1 feat: upgrade casbin dependency to 1.41.1 (#7062)
     new 2a259b3d7 ci(lint): fix the path of Chinese doc (#7063)
     new ee0df5b6f ci: make it pass under OpenResty 1.21 (#7067)
     new 478ccbd83 fix: redirect http to https but port not change (#7065)
     new 9375c764f ci: enable rebase in some situation (#7074)
     new 247cd466f docs: add pubsub develop example for kafka (#7059)
     new 08ff60063 chore(ci): apt update before install (#7080)
     new 4162744c9 docs: fix link of hot-reload in docs (#7081)
     new 572d7099b docs: modify how-to-build filename (#7087)
     new eea2b7fdb feat(ops): check process running with posix.signal insteadof lsof (#7006)
     new c12d38d24 docs: update "Serverless" Plugins (#7076)
     new deef1b78c docs: update "Traffic" Plugin docs 3 (#7064)
     new 9e492a50b docs: update "Tracers" Plugins (#7086)
     new 8a6ca1fc8 feat: release 2.14.0 (#7057)
     new 8cdcea128 chore(ci): move set_dns.sh to ci dir (#7089)
     new 6beeaccc3 test: reduce CI failure caused by flaky tests (#7085)
     new b953434a4 feat(ops): use lua libs to backup config file insteadof shell command (#7048)
     new 02038a8af fix: install dependencies issues (#7092)
     new 79f797292 fix(batch-requests): ignore "unix:" in the configuration (#7106)
     new 35e9e05f2 chore(ci): use the latest build script for apisix-base (#7090)
     new 138bd8791 chore(script): support to install dependencies under arm64 (#7091)
     new 3265ab635 fix(proxy-cache): bypass when method mismatch cache_method (#7111)
     new b12759966 fix: reduce memory usage when abnormal weights are given in chash (#7103)
     new 877400915 feat(ops):   check dns resolver address is valid (#7079)
     new 954e9482d fix(grpc-transcode): pb_option should be set on the route (#7116)
     new a8b30e994 test: make sure the nginx.pid is written (#7122)
     new 888ad6e27 ci: ignore releases.hashicorp.com's new certificate which can't be verified in CentOS7 (#7134)
     new b7d4c52ce feat: allow customizing response in the plugin (#7128)
     new 87eec216b chore: prepare the 2.14.1 release (#7133)
     new a9019cc42 docs: fix markdown format (#7143)
     new 5796cb906 docs: update zipkin Chinese doc (#7146)
     new f9dbdabfa docs:update "plugin-develop"(#6743) (#7127)
     new 67c34911d fix(xds): handle removed symbol in apisix-base (#7160)
     new 017a6f983 perf(stream): reuse ctx & var (#7165)
     new 8ec9748c6 chore: upgrade the nginx-lua-prometheus version (#7166)
     new d15cd16ad docs: updated links of slack and mailing list. (#7157)
     new 3a923a511 docs: add openwhisk CN document (#7117)
     new 6dfe729b1 docs: add azure-functions CN document (#7120)
     new 5f55db5c9 feat(stream): add prometheus plugin (#7174)
     new 09774dc7d fix(proxy-cache): allow nil ctx vars in cache key (#7168)
     new 21490c15b docs: updated slack link. (#7158)
     new ddbbabf8f feat(redis): add metrics (#7183)
     new 41c87ddbb docs: add aws-lambda CN document (#7097)
     new 46eb1f2c5 docs: add zookeeper CN document (#7094)
     new 7d59b74e8 docs(prometheus): need to enable prometheus stream plugin first (#7189)
     new 59bd77438 docs(control-api): add some notes for healthcheck API (#7184)
     new fe2591e64 docs: update "Loggers" Plugins (#7191)
     new 0d0a886e4 perf: reuse ctx in ssl phase (#7196)
     new b16f0e1d5 docs: update slack and mailing list link's hash (#7194)
     new 6725fe093 docs: update redirect plugin's Required field (#7195)
     new cf1c0c70a build(deps): bump actions/setup-node from 3.2.0 to 3.3.0 (#7203)
     new 2bd3043cf docs: update skywalking Chinese doc (#7170)
     new ea0f898e3 chore: require http_stub_status_module exists (#7208)
     new 9045cf5ea docs(proxy-rewrite): remove empty space (#7210)
     new 8465f6e12 fix(response-rewrite): schema format error (#7212)
     new 9ade30d6b docs: add API Gateway keyword and AWS graviton3. (#7217)
     new 07e636cc5 docs: add re case on response-rewrite plugin (#7197)
     new 45457384d change: remove upstream.enable_websocket which is deprecated since 2020 (#7222)
     new 273f608cb fix: add debug yaml validation (#7201)
     new cfee9c3f6 test: remove unused required etcd (#7225)
     new 5c6b0051e docs: make company on README more preciser (#7230)
     new 0a2a2eb68 fix: distinguish different upstreams even they have the same addr (#7213)
     new 51e8eb0c9 fix: duplicate X-Forwarded-Proto will be sent as string (#7229)
     new ee54ad764 fix(api-response): check response header format (#7238)
     new 4e171c23a chore: validate etcd conf strictly (#7245)
     new 82e3ecb14 feat(ssl): support get upstream cert from ssl object (#7221)
     new 72c4cec31 feat: Add support for capturing OIDC refresh tokens (#7220)
     new ab4ca6972 docs: correct the repo url (#7253)
     new 11dcaabba fix(benchmark): write worker_processes into config.yaml (#7250)
     new 6499c344f feat(deployment): add structure of traditional role (#7249)
     new 6d0589400 docs(deployment): sync design to online docs (#7256)
     new 3b05a330d docs: fix err in batch-processor (#7259)
     new 34f579bf7 docs: update Chinese opentelemetry docs (#7235)
     new 49094083c chore(ci): upgrade etcd version to 3.5.4 (#7265)
     new 0e73664c3 fix: grpc-transcode request support object array  (#7231)
     new 10de675ba docs: update Metric plugin documents (#7188)
     new 194be9b01 feat(cli): display test option when help (#7268)
     new d25fbd324 feat: export some importent params for kafka-client (#7266)
     new 5ef7a5796 fix(traffic-split): the default timeout doesn't match the one in Nginx (#7277)
     new 1fcf517cf feat(deployment): support connecting to etcd via https (#7269)
     new 66d974ff7 fix: the argument to usleep should be integer (#7271)
     new 6342deec3 docs: udpate prometheus Chinese doc (#7275)
     new 54de1ee92 docs(response-rewrite): change image source from jsdelivr to github (#7193)
     new 521a68ded docs: create page for "Building APISIX" (#7219)
     new 54406b2a1 chore: explain why new injected fields should be under `_meta` (#7290)
     new 8c29339f9 docs: update "Loggers" Plugin 4/n (#7254)
     new 0290b30a3 perf: don't cache all request headers on critical code path (#7287)
     new cdee8d766 fix: adjust the execution priority of request-id to fix opentelemetry has no request id (#7281)
     new f5c02901d feat(deployment): data_plane does not write data to etcd (#7294)
     new 91b8fb675 docs: 2.14.1 isn't a LTS version (#7305)
     new aed5898fe change(etcd): the health_check_retry should be named as startup_retry (#7304)
     new 17d6f23e7 docs(ext-plugin-post-resp): add ext-plugin-post-resp plugin documentation (#7306)
     new 2badeb2c3 feat: ready to release 2.13.2 (#7293)
     new 4c49771b2 feat: allows users to specify plugin execution priority (#7273)
     new 9f01b2b24 docs: update "Loggers" Plugins (#7247)
     new 3a15bd115 docs: update "Loggers" Plugins 2/n (#7246)
     new f9f2b8a4c feat(deployment): select backend & retry (#7309)
     new 52b9aafb6 docs: update control plane service discovery doc. (#7289)
     new 4c5380a1f feat(sls-logger): support custom log format (#7328)
     new 0f6d8ac1a feat: config center will check plugin_metadata (#7315)
     new fcc2a2c06 chore: adjust etcd max_fails for the admin api and add comments (#7311)
     new 456d9fd88 feat(deployment): send the right Host & SNI (#7323)
     new 75358b131 docs: update "Loggers" Plugins 5/5 (#7308)
     new 7d99fdf4b chore: update the license location threshold. (#7329)
     new 54f5ab2b1 docs: fix typo (#7337)
     new 435889d8f chore(deployment): disable former health check to avoid flaky test (#7344)
     new 6e0847764 docs: fix typo and syntax (#7347)
     new 10deb7888 docs: add building apisix Chinese doc. (#7318)

The 274 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .asf.yaml                                          |  12 +-
 .github/workflows/build.yml                        |  25 +-
 .github/workflows/centos7-ci.yml                   |  16 +-
 .github/workflows/chaos.yml                        |   8 +-
 .github/workflows/cli-master.yml                   |   8 +-
 .github/workflows/cli.yml                          |   8 +-
 .github/workflows/code-lint.yml                    |   7 +-
 .github/workflows/doc-lint.yml                     |  19 +-
 .github/workflows/fuzzing-ci.yaml                  |   5 +-
 .github/workflows/kubernetes-ci.yml                |  13 +-
 .github/workflows/license-checker.yml              |   2 +-
 .github/workflows/lint.yml                         |   9 +-
 .github/workflows/performance.yml                  |   9 +-
 .github/workflows/stale.yml                        |   6 +
 .github/workflows/tars-ci.yml                      |  13 +-
 .gitignore                                         |   1 +
 .ignore_words                                      |   1 +
 .licenserc.yaml                                    |   3 +
 CHANGELOG.md                                       | 134 ++++
 CODE_STYLE.md                                      |   2 +-
 CONTRIBUTING.md                                    |  12 +
 MAINTAIN.md                                        |   4 +-
 Makefile                                           |  20 +-
 README.md                                          |  60 +-
 apisix/admin/plugins.lua                           |   6 -
 apisix/admin/ssl.lua                               |   2 +-
 apisix/admin/stream_routes.lua                     |   2 +-
 apisix/balancer.lua                                |  15 +
 apisix/balancer/chash.lua                          |  16 +
 apisix/cli/env.lua                                 |  12 +-
 apisix/cli/etcd.lua                                |   6 +-
 apisix/cli/ip.lua                                  |  66 ++
 apisix/cli/ngx_tpl.lua                             |  61 +-
 apisix/cli/ops.lua                                 | 183 +++--
 apisix/cli/schema.lua                              |  92 ++-
 apisix/cli/snippet.lua                             | 103 +++
 apisix/cli/util.lua                                |  14 -
 apisix/conf_server.lua                             | 209 ++++++
 apisix/constants.lua                               |   1 +
 apisix/core.lua                                    |   2 +
 apisix/core/config_etcd.lua                        |   7 +-
 apisix/core/config_util.lua                        |   2 +-
 apisix/core/config_xds.lua                         | 382 ++++++++++
 apisix/core/config_yaml.lua                        |   2 +
 apisix/core/ctx.lua                                |   7 +-
 apisix/core/dns/client.lua                         |  10 +-
 apisix/core/etcd.lua                               |  61 +-
 apisix/core/json.lua                               |   2 +-
 apisix/{utils/router.lua => core/math.lua}         |  25 +-
 apisix/core/os.lua                                 |  19 +-
 apisix/core/pubsub.lua                             | 240 +++++++
 apisix/core/request.lua                            |  25 +-
 apisix/core/string.lua                             |  30 +
 apisix/core/version.lua                            |   2 +-
 apisix/debug.lua                                   |  61 +-
 apisix/discovery/dns/init.lua                      |   8 +-
 apisix/include/apisix/model/pubsub.proto           | 143 ++++
 apisix/init.lua                                    | 317 +++++----
 apisix/plugin.lua                                  | 171 ++++-
 apisix/plugins/api-breaker.lua                     |  31 +
 apisix/plugins/authz-casbin.lua                    |   8 +-
 apisix/plugins/authz-casdoor.lua                   | 173 +++++
 apisix/plugins/authz-keycloak.lua                  |  39 +-
 apisix/plugins/basic-auth.lua                      |   7 +-
 apisix/plugins/client-control.lua                  |   2 +-
 apisix/plugins/ext-plugin-post-resp.lua            | 172 +++++
 apisix/plugins/ext-plugin/init.lua                 | 131 +++-
 apisix/plugins/file-logger.lua                     |  57 +-
 apisix/plugins/forward-auth.lua                    |  13 +-
 apisix/plugins/grpc-transcode.lua                  |   6 +
 apisix/plugins/grpc-transcode/request.lua          |   7 +-
 apisix/plugins/grpc-transcode/response.lua         |  13 +-
 apisix/plugins/grpc-transcode/util.lua             |  53 ++
 apisix/plugins/grpc-web.lua                        |   5 +-
 apisix/plugins/gzip.lua                            |   2 +-
 apisix/plugins/hmac-auth.lua                       |  38 +-
 apisix/plugins/jwt-auth.lua                        |   8 +-
 apisix/plugins/kafka-logger.lua                    |   9 +
 .../plugins/kafka-proxy.lua                        |  26 +-
 apisix/plugins/key-auth.lua                        |  16 +
 apisix/plugins/ldap-auth.lua                       |   7 +-
 apisix/plugins/openid-connect.lua                  |  18 +-
 apisix/plugins/opentelemetry.lua                   |   4 +-
 apisix/plugins/prometheus.lua                      |  54 +-
 apisix/plugins/prometheus/exporter.lua             | 115 ++-
 apisix/plugins/proxy-cache/disk_handler.lua        |   5 +
 apisix/plugins/proxy-cache/util.lua                |   2 +-
 apisix/plugins/proxy-control.lua                   |   2 +-
 apisix/plugins/real-ip.lua                         |  40 +-
 apisix/plugins/redirect.lua                        |  46 +-
 apisix/plugins/request-id.lua                      |   8 +-
 apisix/plugins/response-rewrite.lua                |  83 ++-
 apisix/plugins/server-info.lua                     |   9 +
 apisix/plugins/serverless/init.lua                 |  41 +-
 apisix/plugins/sls-logger.lua                      |  16 +-
 apisix/plugins/syslog.lua                          |  84 +--
 apisix/plugins/{syslog.lua => syslog/init.lua}     |  51 +-
 apisix/plugins/traffic-split.lua                   |   6 +-
 apisix/plugins/wolf-rbac.lua                       |  15 +-
 apisix/pubsub/kafka.lua                            | 149 ++++
 apisix/schema_def.lua                              | 111 ++-
 apisix/ssl.lua                                     |   4 +
 apisix/ssl/router/radixtree_sni.lua                |  26 +-
 .../stream/plugins/prometheus.lua                  |  21 +-
 apisix/stream/plugins/syslog.lua                   |  82 +++
 apisix/stream/router/ip_port.lua                   |  26 +-
 apisix/stream/xrpc.lua                             | 121 ++++
 .../{admin/schema.lua => stream/xrpc/metrics.lua}  |  33 +-
 apisix/stream/xrpc/protocols/redis/commands.lua    | 222 ++++++
 apisix/stream/xrpc/protocols/redis/init.lua        | 499 +++++++++++++
 .../xrpc/protocols/redis/metrics.lua}              |  31 +-
 .../stream/xrpc/protocols/redis/schema.lua         |  42 +-
 apisix/stream/xrpc/runner.lua                      | 279 ++++++++
 apisix/stream/xrpc/sdk.lua                         | 202 ++++++
 apisix/timers.lua                                  |   4 +-
 apisix/upstream.lua                                |  96 ++-
 apisix/utils/batch-processor.lua                   |   9 +-
 apisix/utils/upstream.lua                          |  56 +-
 apisix/wasm.lua                                    |   2 +-
 benchmark/run.sh                                   |  31 +-
 bin/apisix                                         |  12 +-
 ci/centos7-ci.sh                                   |  11 +-
 ci/common.sh                                       |  53 +-
 ci/linux-ci-init-service.sh                        |   9 +
 ci/linux_apisix_current_luarocks_runner.sh         |   4 +-
 ci/linux_apisix_master_luarocks_runner.sh          |   2 +
 ci/linux_openresty_common_runner.sh                |   8 +-
 ci/pod/docker-compose.common.yml                   |   6 +-
 ci/pod/docker-compose.yml                          |  15 +-
 ci/pod/kafka/kafka-server/env/common.env           |   9 +-
 .../pod/kafka/kafka-server/kafka_jaas.conf         |  18 +-
 conf/config-default.yaml                           |  41 +-
 docs/assets/images/apisix-seed.svg                 |   3 +
 .../images/control-plane-service-discovery.png     | Bin 0 -> 94513 bytes
 docs/assets/images/create-a-route.png              | Bin 0 -> 360565 bytes
 docs/assets/images/deployment-cp_and_dp.png        | Bin 0 -> 59955 bytes
 docs/assets/images/deployment-traditional.png      | Bin 0 -> 48338 bytes
 docs/assets/images/external-plugin.png             | Bin 617453 -> 301675 bytes
 docs/assets/images/list-of-routes.png              | Bin 0 -> 407723 bytes
 docs/assets/images/pubsub-architecture.svg         |   4 +
 docs/en/latest/FAQ.md                              | 368 +++++-----
 docs/en/latest/admin-api.md                        |  58 +-
 docs/en/latest/apisix-variable.md                  |   2 +
 .../latest/architecture-design/deployment-role.md  | 137 ++++
 docs/en/latest/batch-processor.md                  |   2 +-
 docs/en/latest/benchmark.md                        |  14 +
 docs/en/latest/building-apisix.md                  | 282 ++++++++
 docs/en/latest/config.json                         |  41 +-
 docs/en/latest/control-api.md                      |  10 +-
 docs/en/latest/discovery.md                        |  14 -
 .../discovery/control-plane-service-discovery.md   |  72 ++
 docs/en/latest/discovery/dns.md                    |   3 +
 docs/en/latest/getting-started.md                  | 303 ++++----
 docs/en/latest/health-check.md                     |   2 +-
 docs/en/latest/how-to-build.md                     | 375 ----------
 docs/en/latest/installation-guide.md               | 242 +++++++
 docs/en/latest/internal/testing-framework.md       |   2 +-
 docs/en/latest/mtls.md                             |   4 +-
 docs/en/latest/plugin-develop.md                   |  10 +-
 docs/en/latest/plugins/api-breaker.md              |  61 +-
 docs/en/latest/plugins/authz-casbin.md             |  89 ++-
 docs/en/latest/plugins/authz-casdoor.md            | 106 +++
 docs/en/latest/plugins/authz-keycloak.md           | 203 +++---
 docs/en/latest/plugins/aws-lambda.md               |  99 ++-
 docs/en/latest/plugins/azure-functions.md          | 102 +--
 docs/en/latest/plugins/basic-auth.md               |  82 +--
 docs/en/latest/plugins/batch-requests.md           | 168 +++--
 docs/en/latest/plugins/clickhouse-logger.md        | 122 ++--
 docs/en/latest/plugins/client-control.md           |  37 +-
 docs/en/latest/plugins/consumer-restriction.md     | 109 +--
 docs/en/latest/plugins/cors.md                     |  61 +-
 docs/en/latest/plugins/csrf.md                     |  62 +-
 docs/en/latest/plugins/datadog.md                  | 143 ++--
 docs/en/latest/plugins/dubbo-proxy.md              |   2 +-
 docs/en/latest/plugins/echo.md                     |  46 +-
 docs/en/latest/plugins/error-log-logger.md         | 127 ++--
 docs/en/latest/plugins/ext-plugin-post-req.md      |  12 +-
 docs/en/latest/plugins/ext-plugin-post-resp.md     | 109 +++
 docs/en/latest/plugins/ext-plugin-pre-req.md       |  41 +-
 docs/en/latest/plugins/fault-injection.md          | 351 +++------
 docs/en/latest/plugins/file-logger.md              |  88 +--
 docs/en/latest/plugins/forward-auth.md             |  80 ++-
 docs/en/latest/plugins/google-cloud-logging.md     |  67 +-
 docs/en/latest/plugins/grpc-transcode.md           | 141 ++--
 docs/en/latest/plugins/grpc-web.md                 |  46 +-
 docs/en/latest/plugins/gzip.md                     |  48 +-
 docs/en/latest/plugins/hmac-auth.md                | 223 +++---
 docs/en/latest/plugins/http-logger.md              | 114 +--
 docs/en/latest/plugins/ip-restriction.md           |  84 +--
 docs/en/latest/plugins/jwt-auth.md                 | 198 ++++--
 docs/en/latest/plugins/kafka-logger.md             | 254 +++----
 docs/en/latest/plugins/kafka-proxy.md              |  80 +++
 docs/en/latest/plugins/key-auth.md                 |  82 ++-
 docs/en/latest/plugins/ldap-auth.md                |  86 ++-
 docs/en/latest/plugins/limit-conn.md               |  62 +-
 docs/en/latest/plugins/limit-count.md              | 141 ++--
 docs/en/latest/plugins/limit-req.md                | 159 ++---
 docs/en/latest/plugins/log-rotate.md               |  75 +-
 docs/en/latest/plugins/loggly.md                   |  97 +--
 docs/en/latest/plugins/mocking.md                  |  62 +-
 docs/en/latest/plugins/node-status.md              |  81 ++-
 docs/en/latest/plugins/opa.md                      | 153 ++--
 docs/en/latest/plugins/openid-connect.md           | 128 ++--
 docs/en/latest/plugins/opentelemetry.md            | 144 ++--
 docs/en/latest/plugins/openwhisk.md                |  76 +-
 docs/en/latest/plugins/prometheus.md               | 248 ++++---
 docs/en/latest/plugins/proxy-cache.md              | 230 ++----
 docs/en/latest/plugins/proxy-control.md            |  36 +-
 docs/en/latest/plugins/proxy-mirror.md             |  91 ++-
 docs/en/latest/plugins/proxy-rewrite.md            |  42 +-
 docs/en/latest/plugins/public-api.md               |  91 ++-
 docs/en/latest/plugins/real-ip.md                  |  48 +-
 docs/en/latest/plugins/redirect.md                 |  70 +-
 docs/en/latest/plugins/referer-restriction.md      |  63 +-
 docs/en/latest/plugins/request-id.md               | 136 ++--
 docs/en/latest/plugins/request-validation.md       | 114 +--
 docs/en/latest/plugins/response-rewrite.md         | 154 +++-
 docs/en/latest/plugins/rocketmq-logger.md          | 247 +++----
 docs/en/latest/plugins/server-info.md              |  81 ++-
 docs/en/latest/plugins/serverless.md               |  57 +-
 docs/en/latest/plugins/skywalking-logger.md        |  93 ++-
 docs/en/latest/plugins/skywalking.md               | 239 +++----
 docs/en/latest/plugins/sls-logger.md               |  94 ++-
 docs/en/latest/plugins/splunk-hec-logging.md       |  54 +-
 docs/en/latest/plugins/syslog.md                   |  59 +-
 docs/en/latest/plugins/tcp-logger.md               |  51 +-
 docs/en/latest/plugins/traffic-split.md            | 243 ++++---
 docs/en/latest/plugins/ua-restriction.md           |  56 +-
 docs/en/latest/plugins/udp-logger.md               |  49 +-
 docs/en/latest/plugins/uri-blocker.md              |  39 +-
 docs/en/latest/plugins/wolf-rbac.md                | 127 ++--
 docs/en/latest/plugins/zipkin.md                   | 161 +++--
 docs/en/latest/pubsub.md                           | 144 ++++
 docs/en/latest/pubsub/kafka.md                     | 127 ++++
 docs/en/latest/terminology/plugin.md               |  63 +-
 docs/en/latest/wasm.md                             |   2 +-
 docs/en/latest/xrpc.md                             | 211 ++++++
 docs/en/latest/xrpc/redis.md                       | 122 ++++
 docs/zh/latest/CHANGELOG.md                        | 238 +++++--
 docs/zh/latest/CODE_STYLE.md                       |   6 +-
 docs/zh/latest/FAQ.md                              | 309 ++++----
 docs/zh/latest/README.md                           | 179 ++---
 docs/zh/latest/admin-api.md                        | 138 ++--
 docs/zh/latest/architecture-design/debug-mode.md   |  16 +-
 .../zh/latest/architecture-design/plugin-config.md |   4 +-
 docs/zh/latest/batch-processor.md                  |   2 +-
 docs/zh/latest/benchmark.md                        |  79 ++-
 docs/zh/latest/building-apisix.md                  | 280 ++++++++
 docs/zh/latest/certificate.md                      |  12 +-
 docs/zh/latest/config.json                         |  52 +-
 docs/zh/latest/control-api.md                      |   8 +-
 docs/zh/latest/debug-function.md                   |   6 +-
 docs/zh/latest/discovery.md                        |  22 +-
 .../discovery/control-plane-service-discovery.md   |  72 ++
 docs/zh/latest/discovery/dns.md                    |   3 +
 docs/zh/latest/discovery/kubernetes.md             |  42 +-
 docs/zh/latest/external-plugin.md                  |   1 +
 docs/zh/latest/getting-started.md                  | 291 ++++----
 docs/zh/latest/grpc-proxy.md                       |   8 +-
 docs/zh/latest/health-check.md                     |  36 +-
 docs/zh/latest/how-to-build.md                     | 369 ----------
 docs/zh/latest/installation-guide.md               | 245 +++++++
 docs/zh/latest/mtls.md                             |   4 +-
 docs/zh/latest/plugin-develop.md                   |  20 +-
 docs/zh/latest/plugins/api-breaker.md              |   8 +-
 docs/zh/latest/plugins/authz-casbin.md             | 104 +--
 docs/zh/latest/plugins/authz-casdoor.md            | 102 +++
 docs/zh/latest/plugins/authz-keycloak.md           | 153 ++--
 docs/zh/latest/plugins/aws-lambda.md               | 217 ++++++
 docs/zh/latest/plugins/azure-functions.md          | 202 ++++++
 docs/zh/latest/plugins/basic-auth.md               |  85 ++-
 docs/zh/latest/plugins/batch-requests.md           | 126 ++--
 docs/zh/latest/plugins/clickhouse-logger.md        |  14 +-
 docs/zh/latest/plugins/client-control.md           |   2 +-
 docs/zh/latest/plugins/consumer-restriction.md     |  24 +-
 docs/zh/latest/plugins/cors.md                     |   4 +-
 docs/zh/latest/plugins/csrf.md                     |  10 +-
 docs/zh/latest/plugins/datadog.md                  | 200 ++++++
 docs/zh/latest/plugins/dubbo-proxy.md              |  10 +-
 docs/zh/latest/plugins/echo.md                     |  53 +-
 docs/zh/latest/plugins/error-log-logger.md         |  20 +-
 docs/zh/latest/plugins/ext-plugin-post-req.md      |  11 +-
 docs/zh/latest/plugins/ext-plugin-post-resp.md     | 111 +++
 docs/zh/latest/plugins/ext-plugin-pre-req.md       |  41 +-
 docs/zh/latest/plugins/fault-injection.md          | 364 +++-------
 docs/zh/latest/plugins/file-logger.md              |   4 +-
 docs/zh/latest/plugins/forward-auth.md             |  79 ++-
 docs/zh/latest/plugins/google-cloud-logging.md     |  14 +-
 docs/zh/latest/plugins/grpc-transcode.md           | 150 ++--
 docs/zh/latest/plugins/grpc-web.md                 |  51 +-
 docs/zh/latest/plugins/gzip.md                     |  48 +-
 docs/zh/latest/plugins/hmac-auth.md                | 227 +++---
 docs/zh/latest/plugins/http-logger.md              |   4 +-
 docs/zh/latest/plugins/ip-restriction.md           |   6 +-
 docs/zh/latest/plugins/jwt-auth.md                 | 214 +++---
 docs/zh/latest/plugins/kafka-logger.md             |  12 +-
 docs/zh/latest/plugins/key-auth.md                 |  89 ++-
 docs/zh/latest/plugins/ldap-auth.md                | 155 ++++
 docs/zh/latest/plugins/limit-conn.md               |  22 +-
 docs/zh/latest/plugins/limit-count.md              |   6 +-
 docs/zh/latest/plugins/limit-req.md                |  14 +-
 docs/zh/latest/plugins/mocking.md                  |  68 +-
 docs/zh/latest/plugins/mqtt-proxy.md               |   4 +-
 docs/zh/latest/plugins/node-status.md              |   2 +-
 docs/zh/latest/plugins/opa.md                      | 318 +++++++++
 docs/zh/latest/plugins/openid-connect.md           | 122 ++--
 docs/zh/latest/plugins/opentelemetry.md            | 129 ++--
 docs/zh/latest/plugins/openwhisk.md                | 136 ++++
 docs/zh/latest/plugins/prometheus.md               | 237 ++++---
 docs/zh/latest/plugins/proxy-cache.md              |  14 +-
 docs/zh/latest/plugins/proxy-control.md            |   2 +-
 docs/zh/latest/plugins/proxy-mirror.md             |   6 +-
 docs/zh/latest/plugins/proxy-rewrite.md            |  41 +-
 docs/zh/latest/plugins/real-ip.md                  |  48 +-
 docs/zh/latest/plugins/redirect.md                 |  81 ++-
 docs/zh/latest/plugins/referer-restriction.md      |   8 +-
 docs/zh/latest/plugins/request-id.md               |  32 +-
 docs/zh/latest/plugins/request-validation.md       |  28 +-
 docs/zh/latest/plugins/response-rewrite.md         | 156 +++-
 docs/zh/latest/plugins/rocketmq-logger.md          |  30 +-
 docs/zh/latest/plugins/server-info.md              |  73 +-
 docs/zh/latest/plugins/serverless.md               |   2 +-
 docs/zh/latest/plugins/skywalking-logger.md        |  12 +-
 docs/zh/latest/plugins/skywalking.md               | 259 ++++---
 docs/zh/latest/plugins/sls-logger.md               |  48 +-
 docs/zh/latest/plugins/splunk-hec-logging.md       |   8 +-
 docs/zh/latest/plugins/syslog.md                   |  12 +-
 docs/zh/latest/plugins/tcp-logger.md               |   2 +-
 docs/zh/latest/plugins/traffic-split.md            |  48 +-
 docs/zh/latest/plugins/ua-restriction.md           |   4 +-
 docs/zh/latest/plugins/udp-logger.md               |   2 +-
 docs/zh/latest/plugins/uri-blocker.md              |   2 +-
 docs/zh/latest/plugins/wolf-rbac.md                | 129 ++--
 docs/zh/latest/plugins/zipkin.md                   | 153 ++--
 docs/zh/latest/router-radixtree.md                 |  10 +-
 docs/zh/latest/stream-proxy.md                     |   8 +-
 docs/zh/latest/terminology/api-gateway.md          |  37 +
 .../consumer.md                                    |   6 +-
 .../global-rule.md                                 |   0
 .../{architecture-design => terminology}/plugin.md |  61 ++
 .../{architecture-design => terminology}/route.md  |   0
 .../{architecture-design => terminology}/router.md |   8 +-
 .../{architecture-design => terminology}/script.md |   0
 .../service.md                                     |   0
 .../upstream.md                                    |   2 +-
 powered-by.md                                      |   1 +
 ...-2.10.1-0.rockspec => apisix-2.10.5-0.rockspec} |   7 +-
 ...-master-0.rockspec => apisix-2.13.0-0.rockspec} |   4 +-
 ...-master-0.rockspec => apisix-2.13.1-0.rockspec} |   6 +-
 ...-master-0.rockspec => apisix-2.13.2-0.rockspec} |   8 +-
 ...-master-0.rockspec => apisix-2.14.0-0.rockspec} |  20 +-
 ...-master-0.rockspec => apisix-2.14.1-0.rockspec} |  20 +-
 rockspec/apisix-master-0.rockspec                  |  20 +-
 t/APISIX.pm                                        |  38 +-
 t/admin/plugin-configs.t                           |   2 -
 t/admin/plugins.t                                  |   9 +-
 t/admin/proto.t                                    |   4 -
 t/admin/routes3.t                                  |   2 +-
 t/admin/ssl.t                                      |  73 +-
 t/admin/ssl2.t                                     |   8 +-
 t/admin/stream-routes.t                            |  85 +++
 t/admin/upstream-array-nodes.t                     |  35 +
 t/admin/upstream.t                                 | 133 ++++
 t/admin/upstream5.t                                | 113 +++
 apisix/cli/apisix.lua => t/bin/gen_snippet.lua     |  39 +-
 t/chaos/utils/Dockerfile                           |  75 ++
 t/cli/common.sh                                    |   1 +
 t/cli/test_admin_mtls.sh                           |   2 +-
 ...or_timeout.sh => test_deployment_data_plane.sh} |  37 +-
 t/cli/test_deployment_traditional.sh               | 133 ++++
 t/cli/test_dns.sh                                  |  27 +
 t/cli/test_etcd_mtls.sh                            |   4 +-
 ..._proxy_mirror_timeout.sh => test_kubernetes.sh} |  27 +-
 t/cli/test_main.sh                                 |  29 +-
 t/cli/test_prometheus_stream.sh                    |  93 +++
 t/cli/test_validate_config.sh                      |  56 +-
 t/config-center-yaml/plugin-metadata.t             |  24 +-
 t/core/os.t                                        |  19 +
 t/coredns/db.test.local                            |   2 +
 t/debug/debug-mode.t                               |   2 +-
 t/debug/dynamic-hook.t                             |   6 +
 t/debug/hook.t                                     |  34 +-
 t/deployment/conf_server.t                         | 429 +++++++++++
 t/discovery/dns/sanity.t                           |  33 +
 t/fuzzing/serverless_route_test.py                 |   2 +-
 t/fuzzing/simpleroute_test.py                      |   2 +-
 t/fuzzing/vars_route_test.py                       |   2 +-
 t/grpc_server_example/main.go                      |  25 +
 t/grpc_server_example/proto/helloworld.pb.go       | 321 +++++++--
 t/grpc_server_example/proto/helloworld.proto       |  15 +
 t/grpc_server_example/proto/helloworld_grpc.pb.go  |  40 ++
 t/grpc_server_example/proto/import.pb.go           |  21 +-
 t/grpc_server_example/proto/src.pb.go              |  21 +-
 t/grpc_server_example/proto/src_grpc.pb.go         |   4 +
 t/lib/dubbo-backend/dubbo-backend-provider/pom.xml |   4 +-
 t/lib/dubbo-backend/pom.xml                        |   2 +-
 t/lib/ext-plugin.lua                               | 145 ++++
 t/lib/pubsub.lua                                   | 128 ++++
 t/node/chash-balance.t                             | 124 ++++
 t/node/client-mtls-openresty-1-19.t                | 121 ++++
 t/node/client-mtls.t                               |   8 +-
 t/node/upstream-keepalive-pool.t                   | 360 ++++++++++
 t/node/upstream-mtls.t                             | 144 +++-
 t/node/upstream.t                                  |  70 ++
 t/plugin/api-breaker.t                             |  39 +
 t/plugin/authz-casdoor.t                           | 444 ++++++++++++
 t/plugin/authz-keycloak.t                          |  76 ++
 t/plugin/authz-keycloak3.t                         | 108 +++
 t/plugin/basic-auth.t                              |  22 +-
 t/plugin/custom_sort_plugins.t                     | 633 +++++++++++++++++
 t/plugin/ext-plugin/http-req-call.t                | 104 +++
 .../ext-plugin/{http-req-call.t => response.t}     | 377 +++-------
 t/plugin/ext-plugin/sanity.t                       |  19 +-
 t/plugin/{file-logger.t => file-logger-reopen.t}   | 158 ++---
 t/plugin/file-logger.t                             |  20 +-
 t/plugin/forward-auth.t                            | 119 +++-
 t/plugin/grpc-transcode2.t                         | 420 ++++++++++-
 t/plugin/grpc-transcode3.t                         | 124 ++++
 t/plugin/grpc-web.t                                |  55 ++
 .../{custom_hmac_auth.t => hmac-auth-custom.t}     | 103 +--
 t/plugin/hmac-auth.t                               |  66 +-
 t/plugin/hmac-auth2.t                              |  12 +-
 t/plugin/hmac-auth3.t                              | 129 +++-
 t/plugin/jwt-auth.t                                |  30 +-
 t/{misc/timers.t => plugin/kafka-proxy.t}          |  43 +-
 t/plugin/key-auth.t                                | 251 +++++++
 t/plugin/ldap-auth.t                               |  18 +-
 t/plugin/limit-count-redis.t                       |  20 +-
 t/plugin/limit-count-redis2.t                      |   2 +-
 t/plugin/openid-connect.t                          |   6 +-
 t/plugin/plugin.t                                  |  87 +++
 t/plugin/prometheus2.t                             |   2 +-
 t/plugin/proxy-cache/disk.t                        |  65 +-
 t/plugin/proxy-rewrite2.t                          |  24 +
 t/plugin/real-ip.t                                 |  47 ++
 t/plugin/redirect.t                                | 131 +++-
 t/plugin/referer-restriction.t                     |   1 -
 t/plugin/request-id.t                              |  68 ++
 t/plugin/response-rewrite2.t                       | 519 ++++++++++++++
 t/plugin/serverless.t                              |  50 ++
 t/plugin/sls-logger.t                              |  46 ++
 t/plugin/traffic-split.t                           |  12 +-
 t/plugin/traffic-split5.t                          |  59 ++
 t/plugin/wolf-rbac.t                               |  81 ++-
 t/pubsub/kafka.t                                   | 360 ++++++++++
 t/pubsub/pubsub.t                                  | 228 ++++++
 .../radixtree-method.t}                            |  97 +--
 t/router/radixtree-sni2.t                          |  54 ++
 t/router/radixtree-uri-sanity.t                    | 102 +++
 t/stream-node/sanity.t                             |  91 +++
 t/stream-node/tls.t                                |  33 +
 t/stream-plugin/prometheus.t                       | 162 +++++
 t/{plugin => stream-plugin}/syslog.t               | 285 ++++----
 t/xds-library/config_xds.t                         | 121 ++++
 t/xds-library/config_xds_2.t                       | 237 +++++++
 t/{chaos/e2e.go => xds-library/export.go}          |  13 +-
 t/xds-library/main.go                              | 134 ++++
 t/xds-library/xds.h                                |  55 ++
 .../apisix/stream/xrpc/protocols/pingpong/init.lua | 287 ++++++++
 .../stream/xrpc/protocols/pingpong/schema.lua      |  33 +-
 t/xrpc/pingpong.t                                  | 783 +++++++++++++++++++++
 t/xrpc/pingpong2.t                                 | 753 ++++++++++++++++++++
 t/xrpc/pingpong3.t                                 | 193 +++++
 t/xrpc/prometheus.t                                | 273 +++++++
 t/xrpc/redis.t                                     | 783 +++++++++++++++++++++
 t/xrpc/redis2.t                                    | 200 ++++++
 .../Dockerfile => utils/check-merge-conflict.sh    |  18 +-
 utils/check-plugins-code.sh                        |   9 +
 utils/gen-vote-contents.sh                         |   2 +-
 utils/install-dependencies.sh                      |   6 +-
 utils/linux-install-etcd-client.sh                 |  18 +-
 utils/linux-install-luarocks.sh                    |  10 +-
 utils/linux-install-openresty.sh                   |  12 +-
 utils/set-dns.sh                                   |  60 --
 474 files changed, 28823 insertions(+), 8992 deletions(-)
 create mode 100644 apisix/cli/ip.lua
 create mode 100644 apisix/cli/snippet.lua
 create mode 100644 apisix/conf_server.lua
 create mode 100644 apisix/core/config_xds.lua
 copy apisix/{utils/router.lua => core/math.lua} (71%)
 create mode 100644 apisix/core/pubsub.lua
 create mode 100644 apisix/include/apisix/model/pubsub.proto
 create mode 100644 apisix/plugins/authz-casdoor.lua
 create mode 100644 apisix/plugins/ext-plugin-post-resp.lua
 copy example/apisix/stream/plugins/3rd-party.lua => apisix/plugins/kafka-proxy.lua (66%)
 copy apisix/plugins/{syslog.lua => syslog/init.lua} (68%)
 create mode 100644 apisix/pubsub/kafka.lua
 copy example/apisix/stream/plugins/3rd-party.lua => apisix/stream/plugins/prometheus.lua (77%)
 create mode 100644 apisix/stream/plugins/syslog.lua
 create mode 100644 apisix/stream/xrpc.lua
 copy apisix/{admin/schema.lua => stream/xrpc/metrics.lua} (55%)
 create mode 100644 apisix/stream/xrpc/protocols/redis/commands.lua
 create mode 100644 apisix/stream/xrpc/protocols/redis/init.lua
 copy apisix/{plugins/ext-plugin-pre-req.lua => stream/xrpc/protocols/redis/metrics.lua} (64%)
 copy example/apisix/plugins/3rd-party.lua => apisix/stream/xrpc/protocols/redis/schema.lua (56%)
 create mode 100644 apisix/stream/xrpc/runner.lua
 create mode 100644 apisix/stream/xrpc/sdk.lua
 copy t/grpc_server_example/proto/import.proto => ci/pod/kafka/kafka-server/kafka_jaas.conf (82%)
 create mode 100644 docs/assets/images/apisix-seed.svg
 create mode 100644 docs/assets/images/control-plane-service-discovery.png
 create mode 100644 docs/assets/images/create-a-route.png
 create mode 100644 docs/assets/images/deployment-cp_and_dp.png
 create mode 100644 docs/assets/images/deployment-traditional.png
 create mode 100644 docs/assets/images/list-of-routes.png
 create mode 100644 docs/assets/images/pubsub-architecture.svg
 create mode 100644 docs/en/latest/architecture-design/deployment-role.md
 create mode 100644 docs/en/latest/building-apisix.md
 create mode 100644 docs/en/latest/discovery/control-plane-service-discovery.md
 delete mode 100644 docs/en/latest/how-to-build.md
 create mode 100644 docs/en/latest/installation-guide.md
 create mode 100644 docs/en/latest/plugins/authz-casdoor.md
 create mode 100644 docs/en/latest/plugins/ext-plugin-post-resp.md
 create mode 100644 docs/en/latest/plugins/kafka-proxy.md
 create mode 100644 docs/en/latest/pubsub.md
 create mode 100644 docs/en/latest/pubsub/kafka.md
 create mode 100644 docs/en/latest/xrpc.md
 create mode 100644 docs/en/latest/xrpc/redis.md
 create mode 100644 docs/zh/latest/building-apisix.md
 create mode 100644 docs/zh/latest/discovery/control-plane-service-discovery.md
 delete mode 100644 docs/zh/latest/how-to-build.md
 create mode 100644 docs/zh/latest/installation-guide.md
 create mode 100644 docs/zh/latest/plugins/authz-casdoor.md
 create mode 100644 docs/zh/latest/plugins/aws-lambda.md
 create mode 100644 docs/zh/latest/plugins/azure-functions.md
 create mode 100644 docs/zh/latest/plugins/datadog.md
 create mode 100644 docs/zh/latest/plugins/ext-plugin-post-resp.md
 create mode 100644 docs/zh/latest/plugins/ldap-auth.md
 create mode 100644 docs/zh/latest/plugins/opa.md
 create mode 100644 docs/zh/latest/plugins/openwhisk.md
 create mode 100644 docs/zh/latest/terminology/api-gateway.md
 rename docs/zh/latest/{architecture-design => terminology}/consumer.md (95%)
 rename docs/zh/latest/{architecture-design => terminology}/global-rule.md (100%)
 rename docs/zh/latest/{architecture-design => terminology}/plugin.md (60%)
 rename docs/zh/latest/{architecture-design => terminology}/route.md (100%)
 rename docs/zh/latest/{architecture-design => terminology}/router.md (74%)
 rename docs/zh/latest/{architecture-design => terminology}/script.md (100%)
 rename docs/zh/latest/{architecture-design => terminology}/service.md (100%)
 rename docs/zh/latest/{architecture-design => terminology}/upstream.md (99%)
 copy rockspec/{apisix-2.10.1-0.rockspec => apisix-2.10.5-0.rockspec} (96%)
 copy rockspec/{apisix-master-0.rockspec => apisix-2.13.0-0.rockspec} (98%)
 copy rockspec/{apisix-master-0.rockspec => apisix-2.13.1-0.rockspec} (97%)
 copy rockspec/{apisix-master-0.rockspec => apisix-2.13.2-0.rockspec} (96%)
 copy rockspec/{apisix-master-0.rockspec => apisix-2.14.0-0.rockspec} (89%)
 copy rockspec/{apisix-master-0.rockspec => apisix-2.14.1-0.rockspec} (89%)
 create mode 100644 t/admin/upstream5.t
 copy apisix/cli/apisix.lua => t/bin/gen_snippet.lua (57%)
 create mode 100644 t/chaos/utils/Dockerfile
 copy t/cli/{test_proxy_mirror_timeout.sh => test_deployment_data_plane.sh} (59%)
 create mode 100755 t/cli/test_deployment_traditional.sh
 copy t/cli/{test_proxy_mirror_timeout.sh => test_kubernetes.sh} (65%)
 create mode 100755 t/cli/test_prometheus_stream.sh
 create mode 100644 t/deployment/conf_server.t
 create mode 100644 t/lib/pubsub.lua
 create mode 100644 t/node/client-mtls-openresty-1-19.t
 create mode 100644 t/plugin/authz-casdoor.t
 create mode 100644 t/plugin/authz-keycloak3.t
 create mode 100644 t/plugin/custom_sort_plugins.t
 copy t/plugin/ext-plugin/{http-req-call.t => response.t} (52%)
 copy t/plugin/{file-logger.t => file-logger-reopen.t} (62%)
 create mode 100644 t/plugin/grpc-transcode3.t
 rename t/plugin/{custom_hmac_auth.t => hmac-auth-custom.t} (83%)
 copy t/{misc/timers.t => plugin/kafka-proxy.t} (57%)
 create mode 100644 t/plugin/response-rewrite2.t
 create mode 100644 t/pubsub/kafka.t
 create mode 100644 t/pubsub/pubsub.t
 copy t/{node/sanity-radixtree.t => router/radixtree-method.t} (66%)
 create mode 100644 t/stream-plugin/prometheus.t
 copy t/{plugin => stream-plugin}/syslog.t (53%)
 create mode 100644 t/xds-library/config_xds.t
 create mode 100644 t/xds-library/config_xds_2.t
 copy t/{chaos/e2e.go => xds-library/export.go} (82%)
 create mode 100644 t/xds-library/main.go
 create mode 100644 t/xds-library/xds.h
 create mode 100644 t/xrpc/apisix/stream/xrpc/protocols/pingpong/init.lua
 copy example/apisix/stream/plugins/3rd-party.lua => t/xrpc/apisix/stream/xrpc/protocols/pingpong/schema.lua (67%)
 create mode 100644 t/xrpc/pingpong.t
 create mode 100644 t/xrpc/pingpong2.t
 create mode 100644 t/xrpc/pingpong3.t
 create mode 100644 t/xrpc/prometheus.t
 create mode 100644 t/xrpc/redis.t
 create mode 100644 t/xrpc/redis2.t
 copy ci/pod/nacos/healthcheck/Dockerfile => utils/check-merge-conflict.sh (82%)
 mode change 100644 => 100755
 delete mode 100755 utils/set-dns.sh