diff --git a/changelog/3.7.0/3.7.0.md b/changelog/3.7.0/3.7.0.md new file mode 100644 index 000000000000..99613a7101de --- /dev/null +++ b/changelog/3.7.0/3.7.0.md @@ -0,0 +1,394 @@ +## Kong + + +### Performance +#### Performance + +- Improved proxy performance by refactoring internal hooking mechanism. + [#12784](https://github.com/Kong/kong/issues/12784) + [KAG-3653](https://konghq.atlassian.net/browse/KAG-3653) + +- Speeded up the router matching when the `router_flavor` is `traditional_compatible` or `expressions`. + [#12467](https://github.com/Kong/kong/issues/12467) + [KAG-3653](https://konghq.atlassian.net/browse/KAG-3653) +#### Plugin + +- **Opentelemetry**: increase queue max batch size to 200 + [#12488](https://github.com/Kong/kong/issues/12488) + [KAG-3173](https://konghq.atlassian.net/browse/KAG-3173) + +### Breaking Changes +#### Plugin + +- **AI-Proxy**: To support the new messages API of `Anthropic`, the upstream path of the `Anthropic` for `llm/v1/chat` route type is changed from `/v1/complete` to `/v1/messages` + [#12699](https://github.com/Kong/kong/issues/12699) + [FTI-5770](https://konghq.atlassian.net/browse/FTI-5770) + + +### Dependencies +#### Core + +- Bumped atc-router from v1.6.0 to v1.6.2 + [#12231](https://github.com/Kong/kong/issues/12231) + [KAG-3403](https://konghq.atlassian.net/browse/KAG-3403) + +- Bumped libexpat to 2.6.2 + [#12910](https://github.com/Kong/kong/issues/12910) + [CVE-2023](https://konghq.atlassian.net/browse/CVE-2023) [CVE-2013](https://konghq.atlassian.net/browse/CVE-2013) [CVE-2024](https://konghq.atlassian.net/browse/CVE-2024) [KAG-4331](https://konghq.atlassian.net/browse/KAG-4331) + +- Bumped lua-kong-nginx-module from 0.8.0 to 0.11.0 + [#12752](https://github.com/Kong/kong/issues/12752) + [KAG-4050](https://konghq.atlassian.net/browse/KAG-4050) + +- Bump lua-protobuf to 0.5.1 + [#12834](https://github.com/Kong/kong/issues/12834) + + +- Bumped lua-resty-acme to 0.13.0 + [#12909](https://github.com/Kong/kong/issues/12909) + [KAG-4330](https://konghq.atlassian.net/browse/KAG-4330) + +- Bumped lua-resty-aws from 1.3.6 to 1.4.1 + [#12846](https://github.com/Kong/kong/issues/12846) + [KAG-3424](https://konghq.atlassian.net/browse/KAG-3424) [FTI-5732](https://konghq.atlassian.net/browse/FTI-5732) + +- Bumped lua-resty-lmdb from 1.4.1 to 1.4.2 + [#12786](https://github.com/Kong/kong/issues/12786) + + +- Bumped lua-resty-openssl from 1.2.0 to 1.3.1 + [#12665](https://github.com/Kong/kong/issues/12665) + + +- Bumped lua-resty-timer-ng to 0.2.7 + [#12756](https://github.com/Kong/kong/issues/12756) + [KAG-3653](https://konghq.atlassian.net/browse/KAG-3653) + +- Bumped PCRE from the legacy libpcre 8.45 to libpcre2 10.43 + [#12366](https://github.com/Kong/kong/issues/12366) + [KAG-3571](https://konghq.atlassian.net/browse/KAG-3571) [KAG-3521](https://konghq.atlassian.net/browse/KAG-3521) [KAG-2025](https://konghq.atlassian.net/browse/KAG-2025) + +- Bumped penlight to 1.14.0 + [#12862](https://github.com/Kong/kong/issues/12862) + +#### Default + +- Add package `tzdata` to DEB Docker image for convenient timezone setting. + [#12609](https://github.com/Kong/kong/issues/12609) + [FTI-5698](https://konghq.atlassian.net/browse/FTI-5698) + +- Bump lua-resty-http to 0.17.2. + [#12908](https://github.com/Kong/kong/issues/12908) + + +- Bumped LuaRocks from 3.9.2 to 3.11.0 + [#12662](https://github.com/Kong/kong/issues/12662) + [KAG-3883](https://konghq.atlassian.net/browse/KAG-3883) + +- Bump `ngx_wasm_module` to `91d447ffd0e9bb08f11cc69d1aa9128ec36b4526` + [#12011](https://github.com/Kong/kong/issues/12011) + + +- Bump `V8` version to `12.0.267.17` + [#12704](https://github.com/Kong/kong/issues/12704) + + +- Bump `Wasmtime` version to `19.0.0` + [#12011](https://github.com/Kong/kong/issues/12011) + + +- Improve the robustness of lua-cjson when handling unexpected input. + [#12904](https://github.com/Kong/kong/issues/12904) + [KAG-4275](https://konghq.atlassian.net/browse/KAG-4275) + +### Features +#### Configuration + +- now TLSv1.1 and lower is by default disabled in OpenSSL 3.x + [#12420](https://github.com/Kong/kong/issues/12420) + [KAG-3259](https://konghq.atlassian.net/browse/KAG-3259) + +- Introduce `nginx_wasm_main_shm_kv` configuration entry, which enables +Wasm filters to use the Proxy-Wasm operations `get_shared_data` and +`set_shared_data` without namespaced keys. + [#12663](https://github.com/Kong/kong/issues/12663) + + +- **Schema**: Added a deprecation field attribute to identify deprecated fields + [#12686](https://github.com/Kong/kong/issues/12686) + [KAG-3915](https://konghq.atlassian.net/browse/KAG-3915) + +- Add `wasm_filters` configuration value for enabling individual filters + [#12843](https://github.com/Kong/kong/issues/12843) + [KAG-4211](https://konghq.atlassian.net/browse/KAG-4211) +#### Core + +- Add `events:ai:response_tokens`, `events:ai:prompt_tokens` and `events:ai:requests` to the anonymous report to start counting AI usage + [#12924](https://github.com/Kong/kong/issues/12924) + + +- When CP runs with `expressions` flavor: +- if mixed config is detected and a lower DP is attached to the CP, no config will be sent at all +- if the expression is invalid on CP, no config will be sent at all +- if the expression is invalid on lower DP, it will be sent to the DP and DP validation will catch this and communicate back to the CP (this could result in partial config application) + [#12967](https://github.com/Kong/kong/issues/12967) + [KAG-3806](https://konghq.atlassian.net/browse/KAG-3806) + +- Supported fields `methods`, `hosts`, `paths`, `headers`, +`snis`, `sources`, `destinations` and `regex_priority` +for the `route` entity when the `router_flavor` is `expressions`. +The meaning of these fields are consistent with the traditional route entity. + [#12667](https://github.com/Kong/kong/issues/12667) + [KAG-3805](https://konghq.atlassian.net/browse/KAG-3805) [KAG-3807](https://konghq.atlassian.net/browse/KAG-3807) + +- Added a new function to bypass the Kong's DNS client synchronization option +when resolving hostnames. + [#12739](https://github.com/Kong/kong/issues/12739) + [KAG-3795](https://konghq.atlassian.net/browse/KAG-3795) +#### PDK + +- Add `latencies.receive` property to log serializer + [#12730](https://github.com/Kong/kong/issues/12730) + [KAG-3798](https://konghq.atlassian.net/browse/KAG-3798) +#### Plugin + +- AI Proxy now reads most prompt tuning parameters from the client, whilst the +plugin config 'model options' are now just defaults. This fixes support for +using the respective provider's native SDK. + [#12903](https://github.com/Kong/kong/issues/12903) + [KAG-4126](https://konghq.atlassian.net/browse/KAG-4126) + +- AI Proxy now has a 'preserve' route_type option, where the requests and responses +are passed directly to the upstream LLM. This is to enable compatilibity with any +and all models and SDKs, that may be used when calling the AI services. + [#12903](https://github.com/Kong/kong/issues/12903) + [KAG-4126](https://konghq.atlassian.net/browse/KAG-4126) + +- **Prometheus**: Added workspace label to Prometheus plugin metrics. + [#12836](https://github.com/Kong/kong/issues/12836) + [FTI-5573](https://konghq.atlassian.net/browse/FTI-5573) + +- **AI-Proxy**: add support for streaming event-by-event responses back to client on supported providers + [#12792](https://github.com/Kong/kong/issues/12792) + [KAG-4124](https://konghq.atlassian.net/browse/KAG-4124) + +- **AI-Prompt-Guard**: increase the maximum length of regex expression to 500 for both allow and deny parameter + [#12731](https://github.com/Kong/kong/issues/12731) + [FTI-5767](https://konghq.atlassian.net/browse/FTI-5767) + +- Addded support for EdDSA algorithms in JWT plugin + [#12726](https://github.com/Kong/kong/issues/12726) + + +- Added support for ES512, PS256, PS384, PS512 algorithms in JWT plugin + [#12638](https://github.com/Kong/kong/issues/12638) + [KAG-3821](https://konghq.atlassian.net/browse/KAG-3821) + +- **OpenTelemetry, Zipkin**: the propagation module has been reworked, new +options allow better control over the configuration of tracing headers propagation. + [#12670](https://github.com/Kong/kong/issues/12670) + [KAG-1886](https://konghq.atlassian.net/browse/KAG-1886) [KAG-1887](https://konghq.atlassian.net/browse/KAG-1887) +#### Clustering + +- Remote procedure call (RPC) framework for Hybrid mode deployments. + [#12320](https://github.com/Kong/kong/issues/12320) + [KAG-623](https://konghq.atlassian.net/browse/KAG-623) [KAG-3751](https://konghq.atlassian.net/browse/KAG-3751) + +- Dynamic log level over Hybrid mode RPC which allows setting DP log level +to a different level for specified duration before reverting back +to the `kong.conf` configured value. + [#12320](https://github.com/Kong/kong/issues/12320) + [KAG-623](https://konghq.atlassian.net/browse/KAG-623) [KAG-3751](https://konghq.atlassian.net/browse/KAG-3751) +#### Default + +- Added support for debugging with EmmyLuaDebugger. This feature is a +tech preview and not officially supported by Kong Inc. for now. + [#12899](https://github.com/Kong/kong/issues/12899) + [KAG-4316](https://konghq.atlassian.net/browse/KAG-4316) + +### Fixes +#### Configuration + +- Fixed default value in kong.conf.default documentation from 1000 to 10000 +for upstream_keepalive_max_requests option. + [#12643](https://github.com/Kong/kong/issues/12643) + [KAG-3360](https://konghq.atlassian.net/browse/KAG-3360) + +- Fix an issue where an external plugin (Go, Javascript, or Python) would fail to +apply a change to the plugin config via the Admin API. + [#12718](https://github.com/Kong/kong/issues/12718) + [KAG-3949](https://konghq.atlassian.net/browse/KAG-3949) + +- Disable usage of the Lua DNS resolver from proxy-wasm by default. + [#12825](https://github.com/Kong/kong/issues/12825) + [KAG-4277](https://konghq.atlassian.net/browse/KAG-4277) + +- Set security level of gRPC's TLS to 0 when ssl_cipher_suite is set to old + [#12613](https://github.com/Kong/kong/issues/12613) + [KAG-3259](https://konghq.atlassian.net/browse/KAG-3259) +#### Core + +- Fixed an issue wherein `POST /config?flatten_errors=1` could not return a proper response if the input included duplicate upstream targets + [#12797](https://github.com/Kong/kong/issues/12797) + [KAG-4144](https://konghq.atlassian.net/browse/KAG-4144) + +- **DNS Client**: Ignore a non-positive values on resolv.conf for options timeout, and use a default value of 2 seconds instead. + [#12640](https://github.com/Kong/kong/issues/12640) + [FTI-5791](https://konghq.atlassian.net/browse/FTI-5791) + +- update file permission of kong.logrotate to 644 + [#12629](https://github.com/Kong/kong/issues/12629) + [FTI-5756](https://konghq.atlassian.net/browse/FTI-5756) + +- Fixed a problem that in hybrid DP mode a certificate entity configured with vault reference may not get refreshed on time + [#12868](https://github.com/Kong/kong/issues/12868) + [FTI-5881](https://konghq.atlassian.net/browse/FTI-5881) + +- Fix the missing router section for the output of the request-debugging + [#12234](https://github.com/Kong/kong/issues/12234) + [KAG-3438](https://konghq.atlassian.net/browse/KAG-3438) + +- Fixed an issue that leaking locks in the internal caching logic + [#12743](https://github.com/Kong/kong/issues/12743) + + +- Fixed an issue where router may not work correctly +when the routes configuration changed. + [#12654](https://github.com/Kong/kong/issues/12654) + [KAG-3857](https://konghq.atlassian.net/browse/KAG-3857) + +- Fixed an issue where SNI-based routing does not work +using tls_passthrough and the traditional_compatible router flavor + [#12681](https://github.com/Kong/kong/issues/12681) + [KAG-3922](https://konghq.atlassian.net/browse/KAG-3922) [FTI-5781](https://konghq.atlassian.net/browse/FTI-5781) + +- fix a bug that `X-Kong-Upstream-Status` will not appear in the response headers even if it is set in the `headers` parameter in the kong.conf when the response is hit and returned by proxy cache plugin. + [#12744](https://github.com/Kong/kong/issues/12744) + [FTI-5827](https://konghq.atlassian.net/browse/FTI-5827) + +- fix vault initialization by postponing vault reference resolving on init_worker + [#12554](https://github.com/Kong/kong/issues/12554) + [KAG-2907](https://konghq.atlassian.net/browse/KAG-2907) + +- Fixed a bug that allowed vault secrets to refresh even when they had no TTL set. + [#12877](https://github.com/Kong/kong/issues/12877) + [FTI-5906](https://konghq.atlassian.net/browse/FTI-5906) [FTI-5916](https://konghq.atlassian.net/browse/FTI-5916) + +- **Vault**: do not use incorrect (default) workspace identifier when retrieving vault entity by prefix + [#12572](https://github.com/Kong/kong/issues/12572) + [FTI-5762](https://konghq.atlassian.net/browse/FTI-5762) + +- **Core**: Fixed unexpected table nil panic in the balancer's stop_healthchecks function + [#12865](https://github.com/Kong/kong/issues/12865) + + +- Use `-1` as the worker ID of privileged agent to avoid access issues. + [#12385](https://github.com/Kong/kong/issues/12385) + [FTI-5707](https://konghq.atlassian.net/browse/FTI-5707) + +- **Plugin Server**: fix an issue where Kong fails to properly restart MessagePack-based pluginservers (used in Python and Javascript plugins, for example) + [#12582](https://github.com/Kong/kong/issues/12582) + [KAG-3765](https://konghq.atlassian.net/browse/KAG-3765) + +- revert the hard-coded limitation of the ngx.read_body() API in OpenResty upstreams' new versions when downstream connections are in HTTP/2 or HTTP/3 stream modes. + [#12658](https://github.com/Kong/kong/issues/12658) + [FTI-5766](https://konghq.atlassian.net/browse/FTI-5766) [FTI-5795](https://konghq.atlassian.net/browse/FTI-5795) + +- Each Kong cache instance now utilizes its own cluster event channel. This approach isolates cache invalidation events and reducing the generation of unnecessary worker events. + [#12321](https://github.com/Kong/kong/issues/12321) + [FTI-5559](https://konghq.atlassian.net/browse/FTI-5559) + +- Update telemetry collection for AI Plugins to allow multiple plugins data to be set for the same request. + [#12583](https://github.com/Kong/kong/issues/12583) + [KAG-3759](https://konghq.atlassian.net/browse/KAG-3759) [KAG-4124](https://konghq.atlassian.net/browse/KAG-4124) +#### PDK + +- **PDK:** fix kong.request.get_forwarded_port to always return a number which was caused by an incorrectly +stored string value in ngx.ctx.host_port. + [#12806](https://github.com/Kong/kong/issues/12806) + [KAG-4158](https://konghq.atlassian.net/browse/KAG-4158) + +- The value of `latencies.kong` in the log serializer payload no longer includes +the response receive time, so it now has the same value as the +`X-Kong-Proxy-Latency` response header. Response receive time is recorded in +the new `latencies.receive` metric, so if desired, the old value can be +calculated as `latencies.kong + latencies.receive`. **Note:** this also +affects payloads from all logging plugins that use the log serializer: +`file-log`, `tcp-log`, `udp-log`,`http-log`, `syslog`, and `loggly`. + [#12795](https://github.com/Kong/kong/issues/12795) + [KAG-3798](https://konghq.atlassian.net/browse/KAG-3798) + +- **Tracing**: enhanced robustness of trace ID parsing + [#12848](https://github.com/Kong/kong/issues/12848) + [KAG-4218](https://konghq.atlassian.net/browse/KAG-4218) +#### Plugin + +- **AI-proxy-plugin**: Fix the bug that the route_type `/llm/v1/chat` does not include the analytics in the responses. + [#12781](https://github.com/Kong/kong/issues/12781) + [FTI-5769](https://konghq.atlassian.net/browse/FTI-5769) + +- **ACME**: Fixed an issue where the certificate was not successfully renewed during ACME renewal. + [#12773](https://github.com/Kong/kong/issues/12773) + [KAG-4008](https://konghq.atlassian.net/browse/KAG-4008) + +- **AWS-Lambda**: fix an issue that the latency attributed to AWS Lambda API requests will be counted as part of the latency in Kong + [#12835](https://github.com/Kong/kong/issues/12835) + [FTI-5261](https://konghq.atlassian.net/browse/FTI-5261) + +- **Jwt**: fix an issue where the plugin would fail when using invalid public keys for ES384 and ES512 algorithms. + [#12724](https://github.com/Kong/kong/issues/12724) + + +- Add WWW-Authenticate headers to all 401 response in key auth plugin. + [#11794](https://github.com/Kong/kong/issues/11794) + [KAG-321](https://konghq.atlassian.net/browse/KAG-321) + +- **Opentelemetry**: fix otel sampling mode lua panic bug when http_response_header_for_traceid option enable + [#12544](https://github.com/Kong/kong/issues/12544) + [FTI-5742](https://konghq.atlassian.net/browse/FTI-5742) +#### Admin API + +- **Admin API**: fixed an issue where calling the endpoint `POST /schemas/vaults/validate` was conflicting with the endpoint `/schemas/vaults/:name` which only has GET implemented, hence resulting in a 405. + [#12607](https://github.com/Kong/kong/issues/12607) + [KAG-3699](https://konghq.atlassian.net/browse/KAG-3699) +#### Default + +- Fix a bug where the ulimit setting (open files) is low Kong will fail to start as the lua-resty-timer-ng exhausts the available worker_connections. Decrease the concurrency range of the lua-resty-timer-ng library from [512, 2048] to [256, 1024] to fix this bug. + [#12606](https://github.com/Kong/kong/issues/12606) + [KAG-3779](https://konghq.atlassian.net/browse/KAG-3779) [FTI-5780](https://konghq.atlassian.net/browse/FTI-5780) + +- Fix an issue where external plugins using the protobuf-based protocol would fail to call the `kong.Service.SetUpstream` method with an error `bad argument #2 to 'encode' (table expected, got boolean)`. + [#12727](https://github.com/Kong/kong/issues/12727) + +## Kong-Manager + + + + + + +### Features +#### Default + +- When using Kong in hybrid mode, Kong Manager now provides a page to list all the data planes in the cluster under the newly added "Data Plane nodes" tab. + [#214](https://github.com/Kong/kong-manager/issues/214) + + +- Kong Manager now supports setting log levels with timeouts in bulk for data planes under the hybrid mode. + [#214](https://github.com/Kong/kong-manager/issues/214) + + +- Kong Manager now supports creating and editing Expressions routes with an interactive in-browser editor with syntax highlighting and autocompletion features for Kong's Expressions language. + [#217](https://github.com/Kong/kong-manager/issues/217) + + +- Kong Manager now groups the parameters to provide a better user experience while configuring plugins. Meanwhile, several issues with the plugin form page were fixed. + [#195](https://github.com/Kong/kong-manager/issues/195) [#199](https://github.com/Kong/kong-manager/issues/199) [#201](https://github.com/Kong/kong-manager/issues/201) [#202](https://github.com/Kong/kong-manager/issues/202) [#207](https://github.com/Kong/kong-manager/issues/207) [#208](https://github.com/Kong/kong-manager/issues/208) [#209](https://github.com/Kong/kong-manager/issues/209) [#213](https://github.com/Kong/kong-manager/issues/213) [#216](https://github.com/Kong/kong-manager/issues/216) + + +### Fixes +#### Default + +- Improved the user experience in Kong Manager by fixing various UI-related issues. + [#185](https://github.com/Kong/kong-manager/issues/185) [#188](https://github.com/Kong/kong-manager/issues/188) [#190](https://github.com/Kong/kong-manager/issues/190) [#195](https://github.com/Kong/kong-manager/issues/195) [#199](https://github.com/Kong/kong-manager/issues/199) [#201](https://github.com/Kong/kong-manager/issues/201) [#202](https://github.com/Kong/kong-manager/issues/202) [#207](https://github.com/Kong/kong-manager/issues/207) [#208](https://github.com/Kong/kong-manager/issues/208) [#209](https://github.com/Kong/kong-manager/issues/209) [#213](https://github.com/Kong/kong-manager/issues/213) [#216](https://github.com/Kong/kong-manager/issues/216) + diff --git a/changelog/3.7.0/kong-manager/.gitkeep b/changelog/3.7.0/kong-manager/.gitkeep new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/changelog/unreleased/kong-manager/data_plane_list.yml b/changelog/3.7.0/kong-manager/data_plane_list.yml similarity index 100% rename from changelog/unreleased/kong-manager/data_plane_list.yml rename to changelog/3.7.0/kong-manager/data_plane_list.yml diff --git a/changelog/unreleased/kong-manager/dynamic_log_leveling.yml b/changelog/3.7.0/kong-manager/dynamic_log_leveling.yml similarity index 100% rename from changelog/unreleased/kong-manager/dynamic_log_leveling.yml rename to changelog/3.7.0/kong-manager/dynamic_log_leveling.yml diff --git a/changelog/unreleased/kong-manager/expressions_routes.yml b/changelog/3.7.0/kong-manager/expressions_routes.yml similarity index 100% rename from changelog/unreleased/kong-manager/expressions_routes.yml rename to changelog/3.7.0/kong-manager/expressions_routes.yml diff --git a/changelog/unreleased/kong-manager/plugin_forms_improvements.yml b/changelog/3.7.0/kong-manager/plugin_forms_improvements.yml similarity index 100% rename from changelog/unreleased/kong-manager/plugin_forms_improvements.yml rename to changelog/3.7.0/kong-manager/plugin_forms_improvements.yml diff --git a/changelog/unreleased/kong-manager/ui_improvements.yml b/changelog/3.7.0/kong-manager/ui_improvements.yml similarity index 100% rename from changelog/unreleased/kong-manager/ui_improvements.yml rename to changelog/3.7.0/kong-manager/ui_improvements.yml diff --git a/changelog/3.7.0/kong/.gitkeep b/changelog/3.7.0/kong/.gitkeep new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/changelog/unreleased/kong/add-ai-data-report.yml b/changelog/3.7.0/kong/add-ai-data-report.yml similarity index 100% rename from changelog/unreleased/kong/add-ai-data-report.yml rename to changelog/3.7.0/kong/add-ai-data-report.yml diff --git a/changelog/unreleased/kong/add-messages-api-to-anthropic.yml b/changelog/3.7.0/kong/add-messages-api-to-anthropic.yml similarity index 100% rename from changelog/unreleased/kong/add-messages-api-to-anthropic.yml rename to changelog/3.7.0/kong/add-messages-api-to-anthropic.yml diff --git a/changelog/unreleased/kong/add_tzdata.yml b/changelog/3.7.0/kong/add_tzdata.yml similarity index 100% rename from changelog/unreleased/kong/add_tzdata.yml rename to changelog/3.7.0/kong/add_tzdata.yml diff --git a/changelog/unreleased/kong/ai-proxy-client-params.yml b/changelog/3.7.0/kong/ai-proxy-client-params.yml similarity index 100% rename from changelog/unreleased/kong/ai-proxy-client-params.yml rename to changelog/3.7.0/kong/ai-proxy-client-params.yml diff --git a/changelog/unreleased/kong/ai-proxy-preserve-mode.yml b/changelog/3.7.0/kong/ai-proxy-preserve-mode.yml similarity index 100% rename from changelog/unreleased/kong/ai-proxy-preserve-mode.yml rename to changelog/3.7.0/kong/ai-proxy-preserve-mode.yml diff --git a/changelog/unreleased/kong/analytics-for-anthropic.yml b/changelog/3.7.0/kong/analytics-for-anthropic.yml similarity index 100% rename from changelog/unreleased/kong/analytics-for-anthropic.yml rename to changelog/3.7.0/kong/analytics-for-anthropic.yml diff --git a/changelog/unreleased/kong/bump-atc-router.yml b/changelog/3.7.0/kong/bump-atc-router.yml similarity index 100% rename from changelog/unreleased/kong/bump-atc-router.yml rename to changelog/3.7.0/kong/bump-atc-router.yml diff --git a/changelog/unreleased/kong/bump-libexpat.yml b/changelog/3.7.0/kong/bump-libexpat.yml similarity index 100% rename from changelog/unreleased/kong/bump-libexpat.yml rename to changelog/3.7.0/kong/bump-libexpat.yml diff --git a/changelog/unreleased/kong/bump-lua-kong-nginx-module.yml b/changelog/3.7.0/kong/bump-lua-kong-nginx-module.yml similarity index 100% rename from changelog/unreleased/kong/bump-lua-kong-nginx-module.yml rename to changelog/3.7.0/kong/bump-lua-kong-nginx-module.yml diff --git a/changelog/unreleased/kong/bump-lua-protobuf.yml b/changelog/3.7.0/kong/bump-lua-protobuf.yml similarity index 100% rename from changelog/unreleased/kong/bump-lua-protobuf.yml rename to changelog/3.7.0/kong/bump-lua-protobuf.yml diff --git a/changelog/unreleased/kong/bump-lua-resty-acme.yml b/changelog/3.7.0/kong/bump-lua-resty-acme.yml similarity index 100% rename from changelog/unreleased/kong/bump-lua-resty-acme.yml rename to changelog/3.7.0/kong/bump-lua-resty-acme.yml diff --git a/changelog/unreleased/kong/bump-lua-resty-aws.yml b/changelog/3.7.0/kong/bump-lua-resty-aws.yml similarity index 100% rename from changelog/unreleased/kong/bump-lua-resty-aws.yml rename to changelog/3.7.0/kong/bump-lua-resty-aws.yml diff --git a/changelog/unreleased/kong/bump-lua-resty-http-0.17.2.yml b/changelog/3.7.0/kong/bump-lua-resty-http-0.17.2.yml similarity index 100% rename from changelog/unreleased/kong/bump-lua-resty-http-0.17.2.yml rename to changelog/3.7.0/kong/bump-lua-resty-http-0.17.2.yml diff --git a/changelog/unreleased/kong/bump-lua-resty-lmdb.yml b/changelog/3.7.0/kong/bump-lua-resty-lmdb.yml similarity index 100% rename from changelog/unreleased/kong/bump-lua-resty-lmdb.yml rename to changelog/3.7.0/kong/bump-lua-resty-lmdb.yml diff --git a/changelog/unreleased/kong/bump-lua-resty-openssl.yml b/changelog/3.7.0/kong/bump-lua-resty-openssl.yml similarity index 100% rename from changelog/unreleased/kong/bump-lua-resty-openssl.yml rename to changelog/3.7.0/kong/bump-lua-resty-openssl.yml diff --git a/changelog/unreleased/kong/bump-lua-resty-timer-ng.yml b/changelog/3.7.0/kong/bump-lua-resty-timer-ng.yml similarity index 100% rename from changelog/unreleased/kong/bump-lua-resty-timer-ng.yml rename to changelog/3.7.0/kong/bump-lua-resty-timer-ng.yml diff --git a/changelog/unreleased/kong/bump-luarocks.yml b/changelog/3.7.0/kong/bump-luarocks.yml similarity index 100% rename from changelog/unreleased/kong/bump-luarocks.yml rename to changelog/3.7.0/kong/bump-luarocks.yml diff --git a/changelog/unreleased/kong/bump-ngx-wasm-module.yml b/changelog/3.7.0/kong/bump-ngx-wasm-module.yml similarity index 100% rename from changelog/unreleased/kong/bump-ngx-wasm-module.yml rename to changelog/3.7.0/kong/bump-ngx-wasm-module.yml diff --git a/changelog/unreleased/kong/bump-pcre.yml b/changelog/3.7.0/kong/bump-pcre.yml similarity index 100% rename from changelog/unreleased/kong/bump-pcre.yml rename to changelog/3.7.0/kong/bump-pcre.yml diff --git a/changelog/unreleased/kong/bump-penlight.yml b/changelog/3.7.0/kong/bump-penlight.yml similarity index 100% rename from changelog/unreleased/kong/bump-penlight.yml rename to changelog/3.7.0/kong/bump-penlight.yml diff --git a/changelog/unreleased/kong/bump-v8.yml b/changelog/3.7.0/kong/bump-v8.yml similarity index 100% rename from changelog/unreleased/kong/bump-v8.yml rename to changelog/3.7.0/kong/bump-v8.yml diff --git a/changelog/unreleased/kong/bump-wasmtime.yml b/changelog/3.7.0/kong/bump-wasmtime.yml similarity index 100% rename from changelog/unreleased/kong/bump-wasmtime.yml rename to changelog/3.7.0/kong/bump-wasmtime.yml diff --git a/changelog/unreleased/kong/cp-dp-rpc.yml b/changelog/3.7.0/kong/cp-dp-rpc.yml similarity index 100% rename from changelog/unreleased/kong/cp-dp-rpc.yml rename to changelog/3.7.0/kong/cp-dp-rpc.yml diff --git a/changelog/unreleased/kong/decrease-cocurrency-limit-of-timer-ng.yml b/changelog/3.7.0/kong/decrease-cocurrency-limit-of-timer-ng.yml similarity index 100% rename from changelog/unreleased/kong/decrease-cocurrency-limit-of-timer-ng.yml rename to changelog/3.7.0/kong/decrease-cocurrency-limit-of-timer-ng.yml diff --git a/changelog/unreleased/kong/disable-TLSv1_1-in-openssl3.yml b/changelog/3.7.0/kong/disable-TLSv1_1-in-openssl3.yml similarity index 100% rename from changelog/unreleased/kong/disable-TLSv1_1-in-openssl3.yml rename to changelog/3.7.0/kong/disable-TLSv1_1-in-openssl3.yml diff --git a/changelog/unreleased/kong/dynamic-log-level-rpc.yml b/changelog/3.7.0/kong/dynamic-log-level-rpc.yml similarity index 100% rename from changelog/unreleased/kong/dynamic-log-level-rpc.yml rename to changelog/3.7.0/kong/dynamic-log-level-rpc.yml diff --git a/changelog/unreleased/kong/feat-add-workspace-label-to-prometheus.yml b/changelog/3.7.0/kong/feat-add-workspace-label-to-prometheus.yml similarity index 100% rename from changelog/unreleased/kong/feat-add-workspace-label-to-prometheus.yml rename to changelog/3.7.0/kong/feat-add-workspace-label-to-prometheus.yml diff --git a/changelog/unreleased/kong/feat-ai-proxy-add-streaming.yml b/changelog/3.7.0/kong/feat-ai-proxy-add-streaming.yml similarity index 100% rename from changelog/unreleased/kong/feat-ai-proxy-add-streaming.yml rename to changelog/3.7.0/kong/feat-ai-proxy-add-streaming.yml diff --git a/changelog/unreleased/kong/feat-emmy-debugger.yml b/changelog/3.7.0/kong/feat-emmy-debugger.yml similarity index 100% rename from changelog/unreleased/kong/feat-emmy-debugger.yml rename to changelog/3.7.0/kong/feat-emmy-debugger.yml diff --git a/changelog/unreleased/kong/feat-hybrid-sync-mixed-route-policy.yml b/changelog/3.7.0/kong/feat-hybrid-sync-mixed-route-policy.yml similarity index 100% rename from changelog/unreleased/kong/feat-hybrid-sync-mixed-route-policy.yml rename to changelog/3.7.0/kong/feat-hybrid-sync-mixed-route-policy.yml diff --git a/changelog/unreleased/kong/feat-increase-ai-anthropic-regex-expression-length.yml b/changelog/3.7.0/kong/feat-increase-ai-anthropic-regex-expression-length.yml similarity index 100% rename from changelog/unreleased/kong/feat-increase-ai-anthropic-regex-expression-length.yml rename to changelog/3.7.0/kong/feat-increase-ai-anthropic-regex-expression-length.yml diff --git a/changelog/unreleased/kong/feat-jwt-eddsa.yml b/changelog/3.7.0/kong/feat-jwt-eddsa.yml similarity index 100% rename from changelog/unreleased/kong/feat-jwt-eddsa.yml rename to changelog/3.7.0/kong/feat-jwt-eddsa.yml diff --git a/changelog/unreleased/kong/feat-jwt-es512.yml b/changelog/3.7.0/kong/feat-jwt-es512.yml similarity index 100% rename from changelog/unreleased/kong/feat-jwt-es512.yml rename to changelog/3.7.0/kong/feat-jwt-es512.yml diff --git a/changelog/unreleased/kong/feat-wasm-general-shm-kv.yml b/changelog/3.7.0/kong/feat-wasm-general-shm-kv.yml similarity index 100% rename from changelog/unreleased/kong/feat-wasm-general-shm-kv.yml rename to changelog/3.7.0/kong/feat-wasm-general-shm-kv.yml diff --git a/changelog/unreleased/kong/fix-acme-renewal-bug.yml b/changelog/3.7.0/kong/fix-acme-renewal-bug.yml similarity index 100% rename from changelog/unreleased/kong/fix-acme-renewal-bug.yml rename to changelog/3.7.0/kong/fix-acme-renewal-bug.yml diff --git a/changelog/unreleased/kong/fix-aws-lambda-kong-latency.yml b/changelog/3.7.0/kong/fix-aws-lambda-kong-latency.yml similarity index 100% rename from changelog/unreleased/kong/fix-aws-lambda-kong-latency.yml rename to changelog/3.7.0/kong/fix-aws-lambda-kong-latency.yml diff --git a/changelog/unreleased/kong/fix-cjson-t-end.yml b/changelog/3.7.0/kong/fix-cjson-t-end.yml similarity index 100% rename from changelog/unreleased/kong/fix-cjson-t-end.yml rename to changelog/3.7.0/kong/fix-cjson-t-end.yml diff --git a/changelog/unreleased/kong/fix-ctx-host-port.yml b/changelog/3.7.0/kong/fix-ctx-host-port.yml similarity index 100% rename from changelog/unreleased/kong/fix-ctx-host-port.yml rename to changelog/3.7.0/kong/fix-ctx-host-port.yml diff --git a/changelog/unreleased/kong/fix-dbless-duplicate-target-error.yml b/changelog/3.7.0/kong/fix-dbless-duplicate-target-error.yml similarity index 100% rename from changelog/unreleased/kong/fix-dbless-duplicate-target-error.yml rename to changelog/3.7.0/kong/fix-dbless-duplicate-target-error.yml diff --git a/changelog/unreleased/kong/fix-default-value-of-upstream-keepalive-max-requests.yml b/changelog/3.7.0/kong/fix-default-value-of-upstream-keepalive-max-requests.yml similarity index 100% rename from changelog/unreleased/kong/fix-default-value-of-upstream-keepalive-max-requests.yml rename to changelog/3.7.0/kong/fix-default-value-of-upstream-keepalive-max-requests.yml diff --git a/changelog/unreleased/kong/fix-dns-resolv-timeout-zero.yml b/changelog/3.7.0/kong/fix-dns-resolv-timeout-zero.yml similarity index 100% rename from changelog/unreleased/kong/fix-dns-resolv-timeout-zero.yml rename to changelog/3.7.0/kong/fix-dns-resolv-timeout-zero.yml diff --git a/changelog/unreleased/kong/fix-external-plugin-instance.yml b/changelog/3.7.0/kong/fix-external-plugin-instance.yml similarity index 100% rename from changelog/unreleased/kong/fix-external-plugin-instance.yml rename to changelog/3.7.0/kong/fix-external-plugin-instance.yml diff --git a/changelog/unreleased/kong/fix-file-permission-of-logrotate.yml b/changelog/3.7.0/kong/fix-file-permission-of-logrotate.yml similarity index 100% rename from changelog/unreleased/kong/fix-file-permission-of-logrotate.yml rename to changelog/3.7.0/kong/fix-file-permission-of-logrotate.yml diff --git a/changelog/unreleased/kong/fix-hybrid-dp-certificate-with-vault-not-refresh.yml b/changelog/3.7.0/kong/fix-hybrid-dp-certificate-with-vault-not-refresh.yml similarity index 100% rename from changelog/unreleased/kong/fix-hybrid-dp-certificate-with-vault-not-refresh.yml rename to changelog/3.7.0/kong/fix-hybrid-dp-certificate-with-vault-not-refresh.yml diff --git a/changelog/unreleased/kong/fix-jwt-plugin-check.yml b/changelog/3.7.0/kong/fix-jwt-plugin-check.yml similarity index 100% rename from changelog/unreleased/kong/fix-jwt-plugin-check.yml rename to changelog/3.7.0/kong/fix-jwt-plugin-check.yml diff --git a/changelog/unreleased/kong/fix-missing-router-section-of-request-debugging.yml b/changelog/3.7.0/kong/fix-missing-router-section-of-request-debugging.yml similarity index 100% rename from changelog/unreleased/kong/fix-missing-router-section-of-request-debugging.yml rename to changelog/3.7.0/kong/fix-missing-router-section-of-request-debugging.yml diff --git a/changelog/unreleased/kong/fix-mlcache-renew-lock-leaks.yml b/changelog/3.7.0/kong/fix-mlcache-renew-lock-leaks.yml similarity index 100% rename from changelog/unreleased/kong/fix-mlcache-renew-lock-leaks.yml rename to changelog/3.7.0/kong/fix-mlcache-renew-lock-leaks.yml diff --git a/changelog/unreleased/kong/fix-router-rebuing-flag.yml b/changelog/3.7.0/kong/fix-router-rebuing-flag.yml similarity index 100% rename from changelog/unreleased/kong/fix-router-rebuing-flag.yml rename to changelog/3.7.0/kong/fix-router-rebuing-flag.yml diff --git a/changelog/unreleased/kong/fix-snis-tls-passthrough-in-trad-compat.yml b/changelog/3.7.0/kong/fix-snis-tls-passthrough-in-trad-compat.yml similarity index 100% rename from changelog/unreleased/kong/fix-snis-tls-passthrough-in-trad-compat.yml rename to changelog/3.7.0/kong/fix-snis-tls-passthrough-in-trad-compat.yml diff --git a/changelog/unreleased/kong/fix-upstream-status-unset.yml b/changelog/3.7.0/kong/fix-upstream-status-unset.yml similarity index 100% rename from changelog/unreleased/kong/fix-upstream-status-unset.yml rename to changelog/3.7.0/kong/fix-upstream-status-unset.yml diff --git a/changelog/unreleased/kong/fix-vault-init-worker.yml b/changelog/3.7.0/kong/fix-vault-init-worker.yml similarity index 100% rename from changelog/unreleased/kong/fix-vault-init-worker.yml rename to changelog/3.7.0/kong/fix-vault-init-worker.yml diff --git a/changelog/unreleased/kong/fix-vault-secret-update-without-ttl.yml b/changelog/3.7.0/kong/fix-vault-secret-update-without-ttl.yml similarity index 100% rename from changelog/unreleased/kong/fix-vault-secret-update-without-ttl.yml rename to changelog/3.7.0/kong/fix-vault-secret-update-without-ttl.yml diff --git a/changelog/unreleased/kong/fix-vault-workspaces.yml b/changelog/3.7.0/kong/fix-vault-workspaces.yml similarity index 100% rename from changelog/unreleased/kong/fix-vault-workspaces.yml rename to changelog/3.7.0/kong/fix-vault-workspaces.yml diff --git a/changelog/unreleased/kong/fix-wasm-disable-pwm-lua-resolver.yml b/changelog/3.7.0/kong/fix-wasm-disable-pwm-lua-resolver.yml similarity index 100% rename from changelog/unreleased/kong/fix-wasm-disable-pwm-lua-resolver.yml rename to changelog/3.7.0/kong/fix-wasm-disable-pwm-lua-resolver.yml diff --git a/changelog/unreleased/kong/fix_api_405_vaults_validate_endpoint.yml b/changelog/3.7.0/kong/fix_api_405_vaults_validate_endpoint.yml similarity index 100% rename from changelog/unreleased/kong/fix_api_405_vaults_validate_endpoint.yml rename to changelog/3.7.0/kong/fix_api_405_vaults_validate_endpoint.yml diff --git a/changelog/unreleased/kong/fix_balancer_healthecker_unexpected_panic.yml b/changelog/3.7.0/kong/fix_balancer_healthecker_unexpected_panic.yml similarity index 100% rename from changelog/unreleased/kong/fix_balancer_healthecker_unexpected_panic.yml rename to changelog/3.7.0/kong/fix_balancer_healthecker_unexpected_panic.yml diff --git a/changelog/unreleased/kong/fix_privileged_agent_id_1.yml b/changelog/3.7.0/kong/fix_privileged_agent_id_1.yml similarity index 100% rename from changelog/unreleased/kong/fix_privileged_agent_id_1.yml rename to changelog/3.7.0/kong/fix_privileged_agent_id_1.yml diff --git a/changelog/unreleased/kong/flavor-expressions-supports-traditional-fields.yml b/changelog/3.7.0/kong/flavor-expressions-supports-traditional-fields.yml similarity index 100% rename from changelog/unreleased/kong/flavor-expressions-supports-traditional-fields.yml rename to changelog/3.7.0/kong/flavor-expressions-supports-traditional-fields.yml diff --git a/changelog/unreleased/kong/force-no_sync-noip.yml b/changelog/3.7.0/kong/force-no_sync-noip.yml similarity index 100% rename from changelog/unreleased/kong/force-no_sync-noip.yml rename to changelog/3.7.0/kong/force-no_sync-noip.yml diff --git a/changelog/unreleased/kong/key_auth_www_authenticate.yml b/changelog/3.7.0/kong/key_auth_www_authenticate.yml similarity index 100% rename from changelog/unreleased/kong/key_auth_www_authenticate.yml rename to changelog/3.7.0/kong/key_auth_www_authenticate.yml diff --git a/changelog/unreleased/kong/log-serializer-kong-latency.yml b/changelog/3.7.0/kong/log-serializer-kong-latency.yml similarity index 100% rename from changelog/unreleased/kong/log-serializer-kong-latency.yml rename to changelog/3.7.0/kong/log-serializer-kong-latency.yml diff --git a/changelog/unreleased/kong/log-serializer-receive-latency.yml b/changelog/3.7.0/kong/log-serializer-receive-latency.yml similarity index 100% rename from changelog/unreleased/kong/log-serializer-receive-latency.yml rename to changelog/3.7.0/kong/log-serializer-receive-latency.yml diff --git a/changelog/unreleased/kong/otel-increase-queue-max-batch-size.yml b/changelog/3.7.0/kong/otel-increase-queue-max-batch-size.yml similarity index 100% rename from changelog/unreleased/kong/otel-increase-queue-max-batch-size.yml rename to changelog/3.7.0/kong/otel-increase-queue-max-batch-size.yml diff --git a/changelog/unreleased/kong/otel-sampling-panic-when-header-trace-id-enable.yml b/changelog/3.7.0/kong/otel-sampling-panic-when-header-trace-id-enable.yml similarity index 100% rename from changelog/unreleased/kong/otel-sampling-panic-when-header-trace-id-enable.yml rename to changelog/3.7.0/kong/otel-sampling-panic-when-header-trace-id-enable.yml diff --git a/changelog/unreleased/kong/plugin-schema-deprecation-record.yml b/changelog/3.7.0/kong/plugin-schema-deprecation-record.yml similarity index 100% rename from changelog/unreleased/kong/plugin-schema-deprecation-record.yml rename to changelog/3.7.0/kong/plugin-schema-deprecation-record.yml diff --git a/changelog/unreleased/kong/plugin_server_restart.yml b/changelog/3.7.0/kong/plugin_server_restart.yml similarity index 100% rename from changelog/unreleased/kong/plugin_server_restart.yml rename to changelog/3.7.0/kong/plugin_server_restart.yml diff --git a/changelog/unreleased/kong/pluginsocket-proto-wrong-type.yml b/changelog/3.7.0/kong/pluginsocket-proto-wrong-type.yml similarity index 100% rename from changelog/unreleased/kong/pluginsocket-proto-wrong-type.yml rename to changelog/3.7.0/kong/pluginsocket-proto-wrong-type.yml diff --git a/changelog/unreleased/kong/propagation-module-rework.yml b/changelog/3.7.0/kong/propagation-module-rework.yml similarity index 100% rename from changelog/unreleased/kong/propagation-module-rework.yml rename to changelog/3.7.0/kong/propagation-module-rework.yml diff --git a/changelog/unreleased/kong/revert-req-body-limitation-patch.yml b/changelog/3.7.0/kong/revert-req-body-limitation-patch.yml similarity index 100% rename from changelog/unreleased/kong/revert-req-body-limitation-patch.yml rename to changelog/3.7.0/kong/revert-req-body-limitation-patch.yml diff --git a/changelog/unreleased/kong/separate_kong_cache_invalidation_cluster_event_channel.yml b/changelog/3.7.0/kong/separate_kong_cache_invalidation_cluster_event_channel.yml similarity index 100% rename from changelog/unreleased/kong/separate_kong_cache_invalidation_cluster_event_channel.yml rename to changelog/3.7.0/kong/separate_kong_cache_invalidation_cluster_event_channel.yml diff --git a/changelog/unreleased/kong/set_grpc_tls_seclevel.yml b/changelog/3.7.0/kong/set_grpc_tls_seclevel.yml similarity index 100% rename from changelog/unreleased/kong/set_grpc_tls_seclevel.yml rename to changelog/3.7.0/kong/set_grpc_tls_seclevel.yml diff --git a/changelog/unreleased/kong/speed_up_internal_hooking_mechanism.yml b/changelog/3.7.0/kong/speed_up_internal_hooking_mechanism.yml similarity index 100% rename from changelog/unreleased/kong/speed_up_internal_hooking_mechanism.yml rename to changelog/3.7.0/kong/speed_up_internal_hooking_mechanism.yml diff --git a/changelog/unreleased/kong/speed_up_router.yml b/changelog/3.7.0/kong/speed_up_router.yml similarity index 100% rename from changelog/unreleased/kong/speed_up_router.yml rename to changelog/3.7.0/kong/speed_up_router.yml diff --git a/changelog/unreleased/kong/tracing-pdk-short-trace-ids.yml b/changelog/3.7.0/kong/tracing-pdk-short-trace-ids.yml similarity index 100% rename from changelog/unreleased/kong/tracing-pdk-short-trace-ids.yml rename to changelog/3.7.0/kong/tracing-pdk-short-trace-ids.yml diff --git a/changelog/unreleased/kong/update-ai-proxy-telemetry.yml b/changelog/3.7.0/kong/update-ai-proxy-telemetry.yml similarity index 100% rename from changelog/unreleased/kong/update-ai-proxy-telemetry.yml rename to changelog/3.7.0/kong/update-ai-proxy-telemetry.yml diff --git a/changelog/unreleased/kong/wasm-bundled-filters.yml b/changelog/3.7.0/kong/wasm-bundled-filters.yml similarity index 100% rename from changelog/unreleased/kong/wasm-bundled-filters.yml rename to changelog/3.7.0/kong/wasm-bundled-filters.yml