Skip to content

Commit 4c8d86f

Browse files
committed
Merge remote-tracking branch 'apache/master'
2 parents d0243d9 + ebe8d6c commit 4c8d86f

File tree

277 files changed

+13656
-4712
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

277 files changed

+13656
-4712
lines changed

.asf.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ github:
5454
dismiss_stale_reviews: true
5555
require_code_owner_reviews: true
5656
required_approving_review_count: 3
57+
release/3.14:
58+
required_pull_request_reviews:
59+
require_code_owner_reviews: true
60+
required_approving_review_count: 3
5761
release/3.13:
5862
required_pull_request_reviews:
5963
require_code_owner_reviews: true

.devcontainer/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ services:
2525
- ..:/workspace:cached
2626
network_mode: service:etcd
2727
etcd:
28-
image: bitnami/etcd:3.5
28+
image: bitnamilegacy/etcd:3.5
2929
volumes:
3030
- etcd_data:/bitnami/etcd
3131
environment:

.github/workflows/kubernetes-ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ jobs:
5353
5454
kubectl apply -f ./t/kubernetes/configs/endpoint.yaml
5555
56+
kubectl apply -f ./t/kubernetes/configs/endpointslices.yaml
57+
5658
KUBERNETES_CLIENT_TOKEN_CONTENT=$(kubectl get secrets | grep apisix-test | awk '{system("kubectl get secret -o jsonpath={.data.token} "$1" | base64 --decode")}')
5759
5860
KUBERNETES_CLIENT_TOKEN_DIR="/tmp/var/run/secrets/kubernetes.io/serviceaccount"

.github/workflows/link-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
wget https://raw.githubusercontent.com/xuruidong/markdown-link-checker/main/link_checker.py
4040
4141
- name: Setup python
42-
uses: actions/setup-python@v5
42+
uses: actions/setup-python@v6
4343
with:
4444
python-version: '3.9'
4545

.github/workflows/source-install.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
- redhat
3232
services:
3333
etcd:
34-
image: bitnami/etcd:3.5.4
34+
image: bitnamilegacy/etcd:3.5.4
3535
ports:
3636
- 2379:2379
3737
- 2380:2380

.requirements

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@
1717

1818
APISIX_PACKAGE_NAME=apisix
1919

20-
APISIX_RUNTIME=1.3.2
21-
APISIX_DASHBOARD_COMMIT=70712bd33f55f7979d4cb73a898e9778e0fbfe8b
20+
APISIX_RUNTIME=1.3.3
21+
APISIX_DASHBOARD_COMMIT=39be363cdbc5395d3163572c532be95f3dbad03a

CHANGELOG.md

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ title: Changelog
2323

2424
## Table of Contents
2525

26+
- [3.14.1](#3141)
27+
- [3.14.0](#3140)
2628
- [3.13.0](#3130)
2729
- [3.12.0](#3120)
2830
- [3.11.0](#3110)
@@ -80,6 +82,123 @@ title: Changelog
8082
- [0.7.0](#070)
8183
- [0.6.0](#060)
8284

85+
## 3.14.1
86+
87+
### Bugfixes
88+
89+
- fix: port conflict in worker process for prometheus port [#12667](https://github.com/apache/apisix/pull/12667)
90+
91+
### Core
92+
93+
- fix: add warning log when skipping check for disabled plugin [#12655](https://github.com/apache/apisix/pull/12655)
94+
- chore: add test for verifying lua-resty-openssl bug fix [#12656](https://github.com/apache/apisix/pull/12656)
95+
96+
## Doc improvements
97+
98+
- docs: remove unnecessary sentence in opentelemetry plugin doc [#12660](https://github.com/apache/apisix/pull/12660)
99+
100+
## 3.14.0
101+
102+
**The changes marked with :warning: are not backward compatible.**
103+
104+
### Change
105+
106+
- :warning: feat: admin api no longer populates default values when writing [#12603](https://github.com/apache/apisix/pull/12603)
107+
- :warning: change(jwt-auth): when algorithm is not RS256 or ES256, require the user to fill in secret [#12611](https://github.com/apache/apisix/pull/12611)
108+
- :warning: change(openid-connect): when bearer_only is false, require the user to fill in session.secret [#12609](https://github.com/apache/apisix/pull/12609)
109+
110+
### Bugfixes
111+
112+
- fix: redact encrypted fields from error log [#12629](https://github.com/apache/apisix/pull/12629)
113+
- fix: run init_worker of apisix.admin module in stream subsystem [#12632](https://github.com/apache/apisix/pull/12632)
114+
- fix(ai-proxy-multi): inconsistent resolved nodes for healthcheck [#12594](https://github.com/apache/apisix/pull/12594)
115+
- fix: only trust X-Forwarded-* headers from trusted_addresses [#12551](https://github.com/apache/apisix/pull/12551)
116+
- fix(plugin/redirect): ensure redirect when scheme is not https [#12561](https://github.com/apache/apisix/pull/12561)
117+
- fix: fix ui redirect error when behind proxy [#12566](https://github.com/apache/apisix/pull/12566)
118+
- fix(secret): refresh stale lru cache item in background [#12614](https://github.com/apache/apisix/pull/12614)
119+
- fix: healthcheck manager missing runtime information [#12607](https://github.com/apache/apisix/pull/12607)
120+
- fix(standalone): support stream route in admin api mode [#12604](https://github.com/apache/apisix/pull/12604)
121+
- fix: only log response body when include_resp_body is enabled [#12599](https://github.com/apache/apisix/pull/12599)
122+
- fix: correct spelling error in get_healthcheck_events_module function name [#12587](https://github.com/apache/apisix/pull/12587)
123+
- fix: typo in ai-proxy-multi [#12601](https://github.com/apache/apisix/pull/12601)
124+
- fix(ai-proxy-multi): panic when instance dont have custom endpoint [#12584](https://github.com/apache/apisix/pull/12584)
125+
- fix(ai-prompt-decorator): prevent message accumulation across requests [#12582](https://github.com/apache/apisix/pull/12582)
126+
- fix: docker entrypoint remove stream_worker_events.sock if exists [#12546](https://github.com/apache/apisix/pull/12546)
127+
- fix: add exptime to ewma shared dict items [#12557](https://github.com/apache/apisix/pull/12557)
128+
- fix(ai-proxy): catch malformed override endpoint in schema validation [#12563](https://github.com/apache/apisix/pull/12563)
129+
- fix: missing ctx.llm_raw_usage in non-stream mode [#12564](https://github.com/apache/apisix/pull/12564)
130+
- fix(ai-proxy): set llm variables default value to 0 [#12549](https://github.com/apache/apisix/pull/12549)
131+
- fix(ai-proxy): check type of choices/usage/content fields before use it [#12548](https://github.com/apache/apisix/pull/12548)
132+
- fix(discovery/kubernetes): adjust id length [#12536](https://github.com/apache/apisix/pull/12536)
133+
- fix: basic auth scheme supports case insensitivity [#12539](https://github.com/apache/apisix/pull/12539)
134+
- fix: when only tls.verify, skip the logic of judging client cert [#12527](https://github.com/apache/apisix/pull/12527)
135+
- fix(etcd): load full data from etcd while worker restart [#12523](https://github.com/apache/apisix/pull/12523)
136+
- fix(etcd): upgrade revision when watch request timeout [#12514](https://github.com/apache/apisix/pull/12514)
137+
- fix: enable issue of endpointslices for k8s discovery [#11654](https://github.com/apache/apisix/pull/11654)
138+
- fix(grpc-web): missing trailers when empty resp body [#12490](https://github.com/apache/apisix/pull/12490)
139+
- fix: can not get hostname in redhat [#12267](https://github.com/apache/apisix/pull/12267)
140+
- fix: batch processor cache not working when configure plugin in service [#12474](https://github.com/apache/apisix/pull/12474)
141+
- fix(forward-auth): extra_headers not resolving variable on $post_arg. [#12435](https://github.com/apache/apisix/pull/12435)
142+
- fix: skipped failing bailedout tests in CI [#12462](https://github.com/apache/apisix/pull/12462)
143+
- fix(api-breaker): inconsistent circuit breaking due to premature breaker_time increment [#12451](https://github.com/apache/apisix/pull/12451)
144+
- fix(standalone): lack of configuration validation in api [#12424](https://github.com/apache/apisix/pull/12424)
145+
- fix(log-rotate): skip access log when enable_access_log is set to false [#11310](https://github.com/apache/apisix/pull/11310)
146+
- fix(opentelemetry): remove plugin attr set_ngx_var [#12411](https://github.com/apache/apisix/pull/12411)
147+
- fix: broken mcp-bridge test cases [#12425](https://github.com/apache/apisix/pull/12425)
148+
- fix(request-validation): support Content-Type header with charset for urlencoded data [#12406](https://github.com/apache/apisix/pull/12406)
149+
- fix: zipkin trace_id and span_id format in ngx_var [#12403](https://github.com/apache/apisix/pull/12403)
150+
- fix(consumer): missed consumer update due to wrong version in cache [#12413](https://github.com/apache/apisix/pull/12413)
151+
- revert: fix: forward-auth request body too large [#12404](https://github.com/apache/apisix/pull/12404)
152+
- fix: get_keys only return first 1024 items in shared dict by default [#12380](https://github.com/apache/apisix/pull/12380)
153+
154+
### Core
155+
156+
- ci: migrate docker image for testing to bitnamilegacy repo [#12562](https://github.com/apache/apisix/pull/12562)
157+
- chore: remove redundant profile.apisix_home assignment in start [#12529](https://github.com/apache/apisix/pull/12529)
158+
- chore: upgrade deps to solve vulnerability alerts [#12473](https://github.com/apache/apisix/pull/12473)
159+
- refactor: add healthcheck manager to decouple upstream [#12426](https://github.com/apache/apisix/pull/12426)
160+
- feat: add last modified and digest metadata to standalone API [#12526](https://github.com/apache/apisix/pull/12526)
161+
- feat: support ctx.var.post_arg for vars based route matching on request body [#12388](https://github.com/apache/apisix/pull/12388)
162+
- feat: add a global switch to disable upstream health check [#12407](https://github.com/apache/apisix/pull/12407)
163+
- feat: support multiple json.delay_encode objects in single log [#12395](https://github.com/apache/apisix/pull/12395)
164+
165+
### Plugins
166+
167+
- feat: support OIDC claim validator [#11824](https://github.com/apache/apisix/pull/11824)
168+
- feat: support traffic split plugin for stream routes [#12630](https://github.com/apache/apisix/pull/12630)
169+
- feat: add ksuid algorithm on request-id plugin [#12573](https://github.com/apache/apisix/pull/12573)
170+
- feat: add fallback mechanism for specific error codes in ai-proxy-multi [#12571](https://github.com/apache/apisix/pull/12571)
171+
- feat(ai-proxy): add upstream_response_time in access log [#12555](https://github.com/apache/apisix/pull/12555)
172+
- feat(ai-proxy): add new ctx variable for request llm model [#12554](https://github.com/apache/apisix/pull/12554)
173+
- feat: add support for azure-ai driver [#12565](https://github.com/apache/apisix/pull/12565)
174+
- feat(ai-proxy): add support for pushing logs in ai-proxy plugins [#12515](https://github.com/apache/apisix/pull/12515)
175+
- feat: add ai-aliyun-content-moderation plugin [#12530](https://github.com/apache/apisix/pull/12530)
176+
- feat: allow to use environment variables for openid-connect plugin [#11451](https://github.com/apache/apisix/pull/11451)
177+
- feat(ai-proxy-multi): add support for healthcheck [#12509](https://github.com/apache/apisix/pull/12509)
178+
- feat(ai-proxy): add latency and usage in access log and prometheus metrics [#12518](https://github.com/apache/apisix/pull/12518)
179+
- feat: support limit-conn in workflow plugin [#12465](https://github.com/apache/apisix/pull/12465)
180+
- feat(datadog): Improve Datadog plugin tag support [#11943](https://github.com/apache/apisix/pull/11943)
181+
- feat: decoupled prometheus exporter's calculation and output [#12383](https://github.com/apache/apisix/pull/12383)
182+
- feat: add support for extra_headers in forward-auth plugin [#12405](https://github.com/apache/apisix/pull/12405)
183+
- feat: Add AIMLAPI provider support to AI plugins [#12379](https://github.com/apache/apisix/pull/12379)
184+
185+
## Doc improvements
186+
187+
- docs: update admin api documentation for plugin metadata list endpoint [#12621](https://github.com/apache/apisix/pull/12621)
188+
- docs: add new dashboard documentation [#12616](https://github.com/apache/apisix/pull/12616)
189+
- docs: update note for API-drive standalone mode [#12612](https://github.com/apache/apisix/pull/12612)
190+
- docs: Improve chaitin-waf plugin docs and remove unintended highlights [#12608](https://github.com/apache/apisix/pull/12608)
191+
- docs: remove outdate dashboard doc [#12596](https://github.com/apache/apisix/pull/12596)
192+
- docs: update apisix_upstream_response_time and request_llm_model in access log info [#12583](https://github.com/apache/apisix/pull/12583)
193+
- docs: remove LLM variable in access log examples [#12503](https://github.com/apache/apisix/pull/12503)
194+
- docs: update jwt-auth docs [#12450](https://github.com/apache/apisix/pull/12450)
195+
- docs: update rpm installation guide [#12460](https://github.com/apache/apisix/pull/12460)
196+
- docs: fix typo in credentials doc [#12434](https://github.com/apache/apisix/pull/12434)
197+
- docs: add dashboard ui tips [#12420](https://github.com/apache/apisix/pull/12420)
198+
- docs: correct minor typo for openwhisk [#12401](https://github.com/apache/apisix/pull/12401)
199+
- docs: update changelog with breakchange notices [#12396](https://github.com/apache/apisix/pull/12396)
200+
- docs: improve openid-connect plugin doc and add keycloak OIDC tutorial [#11889](https://github.com/apache/apisix/pull/11889)
201+
83202
## 3.13.0
84203

85204
**The changes marked with :warning: are not backward compatible.**

apisix-master-0.rockspec

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ dependencies = {
4040
"lua-resty-balancer = 0.04",
4141
"lua-resty-ngxvar = 0.5.2",
4242
"lua-resty-jit-uuid = 0.0.7",
43+
"lua-resty-ksuid = 1.0.1",
4344
"lua-resty-worker-events = 1.0.0",
4445
"lua-resty-healthcheck-api7 = 3.2.0",
4546
"api7-lua-resty-jwt = 0.2.5",
@@ -84,6 +85,7 @@ dependencies = {
8485
"jsonpath = 1.0-1",
8586
"api7-lua-resty-aws == 2.0.2-1",
8687
"multipart = 0.5.9-1",
88+
"luautf8 = 0.1.6-1",
8789
}
8890

8991
build = {

apisix/admin/consumer_group.lua

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ local core = require("apisix.core")
1818
local consumers = require("apisix.consumer").consumers
1919
local resource = require("apisix.admin.resource")
2020
local schema_plugin = require("apisix.admin.plugins").check_schema
21+
local plugins_encrypt_conf = require("apisix.admin.plugins").encrypt_conf
2122
local type = type
2223
local tostring = tostring
2324
local ipairs = ipairs
@@ -38,6 +39,11 @@ local function check_conf(id, conf, need_id, schema)
3839
end
3940

4041

42+
local function encrypt_conf(id, conf)
43+
plugins_encrypt_conf(conf.plugins)
44+
end
45+
46+
4147
local function delete_checker(id)
4248
local consumers, consumers_ver = consumers()
4349
if consumers_ver and consumers then
@@ -61,6 +67,7 @@ return resource.new({
6167
kind = "consumer group",
6268
schema = core.schema.consumer_group,
6369
checker = check_conf,
70+
encrypt_conf = encrypt_conf,
6471
unsupported_methods = {"post"},
6572
delete_checker = delete_checker
6673
})

apisix/admin/consumers.lua

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
--
1717
local core = require("apisix.core")
1818
local plugins = require("apisix.admin.plugins")
19+
local plugins_encrypt_conf = require("apisix.admin.plugins").encrypt_conf
1920
local resource = require("apisix.admin.resource")
2021

2122

@@ -57,10 +58,16 @@ local function check_conf(username, conf, need_username, schema, opts)
5758
end
5859

5960

61+
local function encrypt_conf(id, conf)
62+
plugins_encrypt_conf(conf.plugins, core.schema.TYPE_CONSUMER)
63+
end
64+
65+
6066
return resource.new({
6167
name = "consumers",
6268
kind = "consumer",
6369
schema = core.schema.consumer,
6470
checker = check_conf,
71+
encrypt_conf = encrypt_conf,
6572
unsupported_methods = {"post", "patch"}
6673
})

0 commit comments

Comments
 (0)