diff --git a/.requirements b/.requirements index f5bafe3157f5..a2b0f88c8d84 100644 --- a/.requirements +++ b/.requirements @@ -18,4 +18,4 @@ APISIX_PACKAGE_NAME=apisix APISIX_RUNTIME=1.3.3 -APISIX_DASHBOARD_COMMIT=39be363cdbc5395d3163572c532be95f3dbad03a +APISIX_DASHBOARD_COMMIT=bbe05ad95396f90db03d831660f454c2844d906e diff --git a/CHANGELOG.md b/CHANGELOG.md index 36d3c66e1595..21f8e0256783 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ title: Changelog ## Table of Contents +- [3.15.0](#3150) - [3.14.1](#3141) - [3.14.0](#3140) - [3.13.0](#3130) @@ -82,6 +83,64 @@ title: Changelog - [0.7.0](#070) - [0.6.0](#060) +## 3.15.0 + +**The changes marked with :warning: are not backward compatible.** + +### Change + +- :warning: fix: disallow creating duplicate plugins in global rules [#12800](https://github.com/apache/apisix/pull/12800) + +### Core + +- feat: kubernetes discovery readiness check [#12852](https://github.com/apache/apisix/pull/12852) +- feat: standalone mode status api [#12810](https://github.com/apache/apisix/pull/12810) +- feat: add validate API to standalone mode [#12718](https://github.com/apache/apisix/pull/12718) +- feat: add dependency protocol checking and deletion checking for stream routing [#12794](https://github.com/apache/apisix/pull/12794) +- feat: relax resource name length restriction to 256 [#11822](https://github.com/apache/apisix/pull/11822) +- feat: add support for wildcard on SNIs for SSL [#12668](https://github.com/apache/apisix/pull/12668) +- refactor: use secret URI as key for cache and refactor lrucache [#12682](https://github.com/apache/apisix/pull/12682) +- fix: maintain node_version for independent upstream [#12856](https://github.com/apache/apisix/pull/12856) +- fix: request failure during reload after any Eureka node fails [#12906](https://github.com/apache/apisix/pull/12906) +- fix: nacos service discovery request lacks retries after failure [#12734](https://github.com/apache/apisix/pull/12734) +- fix: load full data during init_worker phase require a new apisix-runtime [#12678](https://github.com/apache/apisix/pull/12678) +- chore: upgrade lua-resty-logger-socket [#12898](https://github.com/apache/apisix/pull/12898) +- chore: upgrade lua-resty-dns-client to 7.1.0 [#12851](https://github.com/apache/apisix/pull/12851) +- change: remove lua-resty-worker-events from the core dependencies [#12930](https://github.com/apache/apisix/pull/12930) + +### Plugins + +- feat: rate limiting plugins support setting keepalive for redis policy [#12861](https://github.com/apache/apisix/pull/12861) +- feat: support `apisix_request_id` variable with request-id plugin [#12931](https://github.com/apache/apisix/pull/12931) +- feat: support vertex-ai [#12933](https://github.com/apache/apisix/pull/12933) +- feat: support gemini openai api [#12883](https://github.com/apache/apisix/pull/12883) +- feat: support anthropic openai api [#12881](https://github.com/apache/apisix/pull/12881) +- feat: add support for openrouter [#12878](https://github.com/apache/apisix/pull/12878) +- feat: auth plugins respond with `www-authenticate` header with realm [#12864](https://github.com/apache/apisix/pull/12864) +- feat: allow grpc web in non prefix based routes [#12830](https://github.com/apache/apisix/pull/12830) +- feat(file-logger): add path properties to file-logger plugin metadata [#12825](https://github.com/apache/apisix/pull/12825) +- feat(log): add nested log format support for logger plugins [#12697](https://github.com/apache/apisix/pull/12697) +- feat: add max pending entries to all logger plugins [#12709](https://github.com/apache/apisix/pull/12709) +- feat(kafka-logger): add support for scram for authentication [#12693](https://github.com/apache/apisix/pull/12693) +- fix(limit-conn): implement configurable redis key expiry [#12872](https://github.com/apache/apisix/pull/12872) +- fix(skywalking): start timer when route is hit [#12855](https://github.com/apache/apisix/pull/12855) +- fix: eliminate deepcopy when destroying prometheus [#12905](https://github.com/apache/apisix/pull/12905) +- fix(limit-req): ensure safe eviction of keys in redis [#12911](https://github.com/apache/apisix/pull/12911) +- fix(limit-count): use meta parent to identify plugin source [#12900](https://github.com/apache/apisix/pull/12900) +- fix: Make protocol_name optional and default to 'MQTT' for mqtt plugin [#12831](https://github.com/apache/apisix/pull/12831) +- fix(batch-requests): the number of sub-responses does not match that of sub-requests [#12779](https://github.com/apache/apisix/pull/12779) +- fix(ai-proxy): correct logging schema key in ai-proxy-multi [#12795](https://github.com/apache/apisix/pull/12795) +- fix(plugin_metadata): ensure enable_data_encryption initialization & querying issue [#12624](https://github.com/apache/apisix/pull/12624) + +### Bugfixes + +- fix: correct handling of endpointSlices in Kubernetes service discovery [#12634](https://github.com/apache/apisix/pull/12634) +- fix: Adding request-id header in case of empty header value in request [#12837](https://github.com/apache/apisix/pull/12837) +- fix(docker): adjust permissions for apisix directory to run in openshift without anyuid command [#12824](https://github.com/apache/apisix/pull/12824) +- fix: correct pre/post hook typos in Kubernetes discovery and improve cleanup safety [#12288](https://github.com/apache/apisix/pull/12288) +- fix(performance): move the ipv6 check to schema validation [#12714](https://github.com/apache/apisix/pull/12714) +- fix(authz-keycloak): strip query string when resolving resources with lazy_load_paths [#12914](https://github.com/apache/apisix/pull/12914) + ## 3.14.1 ### Bugfixes diff --git a/apisix/core/version.lua b/apisix/core/version.lua index db47f95cbb7a..f98207c408ee 100644 --- a/apisix/core/version.lua +++ b/apisix/core/version.lua @@ -20,5 +20,5 @@ -- @module core.version return { - VERSION = "3.14.1" + VERSION = "3.15.0" } diff --git a/ci/check_changelog_prs.ts b/ci/check_changelog_prs.ts index dc7929557aa9..ed7543623671 100755 --- a/ci/check_changelog_prs.ts +++ b/ci/check_changelog_prs.ts @@ -51,7 +51,9 @@ const IGNORE_PRS = [ // 3.13.0 9945, 11420, 11765, 12036, 12048, 12057, 12076, 12122, 12123, 12168, 12199, 12218, 12225, 12272, 12277, 12300, 12306, 12329, 12353, 12364, 12375, 12358, //3.14.0 - 8772, 12655 + 8772, 12655, + // 3.15.0 + 12761, 12805, 12844, 12863, 12829, 12725, 12948 ]; diff --git a/docs/en/latest/config.json b/docs/en/latest/config.json index 7052adca4b13..bb5495678af1 100644 --- a/docs/en/latest/config.json +++ b/docs/en/latest/config.json @@ -1,5 +1,5 @@ { - "version": "3.14.1", + "version": "3.15.0", "sidebar": [ { "type": "category", diff --git a/docs/zh/latest/config.json b/docs/zh/latest/config.json index fa08cc6661d1..fc1dd46b3de2 100644 --- a/docs/zh/latest/config.json +++ b/docs/zh/latest/config.json @@ -1,5 +1,5 @@ { - "version": "3.14.1", + "version": "3.15.0", "sidebar": [ { "type": "category", diff --git a/docs/zh/latest/terminology/script.md b/docs/zh/latest/terminology/script.md index 3e1820ec468d..fc57f143cebc 100644 --- a/docs/zh/latest/terminology/script.md +++ b/docs/zh/latest/terminology/script.md @@ -32,7 +32,7 @@ Script 表示将在 `HTTP` 请求/响应生命周期期间执行的脚本。 Script 配置需要绑定在路由上。 -Script 与 Plugin 不兼容,并且 Script 优先执行 Script,这意味着配置 Script 后,Route 上配置的 Plugin 将**不被执行**。 +Script 与 Plugin 不兼容,并且 Script 优先于 Plugin 执行,这意味着配置 Script 后,Route 上配置的 Plugin 将**不被执行**。 理论上,在 Script 中可以编写任意 Lua 代码,你也可以直接调用已有的插件以复用已有的代码。