@@ -23,6 +23,7 @@ title: Changelog
2323
2424## Table of Contents
2525
26+ - [ 3.12.0] ( #3120 )
2627- [ 3.11.0] ( #3110 )
2728- [ 3.10.0] ( #3100 )
2829- [ 3.9.0] ( #390 )
@@ -78,6 +79,67 @@ title: Changelog
7879- [ 0.7.0] ( #070 )
7980- [ 0.6.0] ( #060 )
8081
82+ ## 3.12.0
83+
84+ ### Change
85+
86+ - refactor ai-proxy and ai-proxy-multi [ 12030] ( https://github.com/apache/apisix/pull/12030 )
87+ - replace plugin attribute with plugin metadata [ 11940] ( https://github.com/apache/apisix/pull/11940 )
88+ - each metric should have an expire time [ 11838] ( https://github.com/apache/apisix/pull/11838 )
89+
90+ ### Bugfixes
91+
92+ - Fix: resync etcd when a lower revision is found [ 12015] ( https://github.com/apache/apisix/pull/12015 )
93+ - Fix: remove model options' ` stream ` default value [ 12013] ( https://github.com/apache/apisix/pull/12013 )
94+ - Fix: grpc-web response contains two trailer chunks [ 11988] ( https://github.com/apache/apisix/pull/11988 )
95+ - Fix: event_id is nil in chaitin-waf [ 11651] ( https://github.com/apache/apisix/pull/11651 )
96+ - Fix: race condition problem while update upstream.nodes [ 11916] ( https://github.com/apache/apisix/pull/11916 )
97+ - Fix: ` upstream_obj.upstream ` should not be a string [ 11932] ( https://github.com/apache/apisix/pull/11932 )
98+ - Fix: query params in override.endpoint not being sent to LLMs [ 11863] ( https://github.com/apache/apisix/pull/11863 )
99+ - Fix: corrupt data in routes() response due to healthchecker data [ 11844] ( https://github.com/apache/apisix/pull/11844 )
100+ - Fix: deepcopy should copy same table exactly only once [ 11861] ( https://github.com/apache/apisix/pull/11861 )
101+ - Fix: disallow empty key configuration attributes [ 11852] ( https://github.com/apache/apisix/pull/11852 )
102+ - Fix: etcd watch restart when receive invalid revision [ 11833] ( https://github.com/apache/apisix/pull/11833 )
103+ - Fix: missing parsed_url nil check [ 11637] ( https://github.com/apache/apisix/pull/11637 )
104+ - Fix: use ` plugin.get ` to fetch plugin configured in multi-auth plugin [ 11794] ( https://github.com/apache/apisix/pull/11794 )
105+ - Fix: allow special characters in uri params [ 11788] ( https://github.com/apache/apisix/pull/11788 )
106+ - Fix: add nil check to conf in body-transformer [ 11768] ( https://github.com/apache/apisix/pull/11768 )
107+ - Fix: use max_req_body_bytes field in custom_format [ 11771] ( https://github.com/apache/apisix/pull/11771 )
108+ - Fix: health checker can't be released due to health parent being released early [ 11760] ( https://github.com/apache/apisix/pull/11760 )
109+ - Fix: use right modifiedIndex for consumer when use credential [ 11649] ( https://github.com/apache/apisix/pull/11649 )
110+
111+ ### Core
112+
113+ - upgrade openresty version to v1.27.11 [ 11936] ( https://github.com/apache/apisix/pull/11936 )
114+ - add support for "system" ssl_trusted_certificate [ 11809] ( https://github.com/apache/apisix/pull/11809 )
115+ - support _ meta.pre_function to execute custom logic before execution of each phase [ 11793] ( https://github.com/apache/apisix/pull/11793 )
116+ - support anonymous consumer [ 11917] ( https://github.com/apache/apisix/pull/11917 )
117+ - accelerate the creation of the consumer cache [ 11840] ( https://github.com/apache/apisix/pull/11840 )
118+ - replace 'string.find' with 'core.string.find' [ 11886] ( https://github.com/apache/apisix/pull/11886 )
119+ - workflow plugin registration [ 11832] ( https://github.com/apache/apisix/pull/11832 )
120+
121+ ### Plugins
122+
123+ - support embeddings API [ 12062] ( https://github.com/apache/apisix/pull/12062 )
124+ - implement rate limiting based fallback strategy [ 12047] ( https://github.com/apache/apisix/pull/12047 )
125+ - ai-rate-limiting plugin [ 12037] ( https://github.com/apache/apisix/pull/12037 )
126+ - add "valid_issuers" field in openidc plugin [ 12002] ( https://github.com/apache/apisix/pull/12002 )
127+ - add ai-prompt-guard plugin [ 12008] ( https://github.com/apache/apisix/pull/12008 )
128+ - add jwt audience validator [ 11987] ( https://github.com/apache/apisix/pull/11987 )
129+ - store JWT in the request context [ 11675] ( https://github.com/apache/apisix/pull/11675 )
130+ - support proxying openai compatible LLMs [ 12004] ( https://github.com/apache/apisix/pull/12004 )
131+ - add ` ai-proxy-multi ` plugin [ 11986] ( https://github.com/apache/apisix/pull/11986 )
132+ - make rate-limit response headers configurable [ 11831] ( https://github.com/apache/apisix/pull/11831 )
133+ - allow workflow config without case [ 11787] ( https://github.com/apache/apisix/pull/11787 )
134+ - support mulipart content-type in ` body-transformer ` [ 11767] ( https://github.com/apache/apisix/pull/11767 )
135+ - plugins in multi-auth returns error instead of logging it [ 11775] ( https://github.com/apache/apisix/pull/11775 )
136+ - support configuring ` key_claim_name ` [ 11772] ( https://github.com/apache/apisix/pull/11772 )
137+ - add Total request per second panel in grafana dashboard [ 11692] ( https://github.com/apache/apisix/pull/11692 )
138+ - add ai-rag plugin [ 11568] ( https://github.com/apache/apisix/pull/11568 )
139+ - add ai-content-moderation plugin [ 11541] ( https://github.com/apache/apisix/pull/11541 )
140+ - use setmetatable to set hidden variables without effecting serialisation [ 11770] ( https://github.com/apache/apisix/pull/11770 )
141+ - rectify business logic/code in ai-proxy [ 12055] ( https://github.com/apache/apisix/pull/12055 )
142+
81143## 3.11.0
82144
83145### Change
0 commit comments