kayx23 commented on code in PR #13976:
URL: https://github.com/apache/apisix/pull/13976#discussion_r4061376625


##########
CHANGELOG.md:
##########
@@ -86,6 +87,66 @@ title: Changelog
 - [0.7.0](#070)
 - [0.6.0](#060)
 
+## 3.19.0
+
+**The changes marked with :warning: are not backward compatible.**
+
+### Change
+
+- :warning: feat(upstream): verify the upstream certificate against 
configurable CAs. `upstream.tls.verify` was only read by the `kafka` scheme and 
is now honoured for `https` and `grpcs` as well, so an upstream that already 
carried `verify: true` starts rejecting a certificate it cannot validate; 
`tls.ca_certs` picks the trust anchors per upstream 
[#13863](https://github.com/apache/apisix/pull/13863)
+- :warning: fix(openid-connect): validate the introspection issuer. With an 
explicit `claim_validator.issuer.valid_issuers`, a successful remote 
introspection response must now carry a string `iss` matching one of them, or 
the request is rejected with 401; omit the allowlist to keep the previous 
behavior [#13916](https://github.com/apache/apisix/pull/13916)
+- :warning: fix(batch-requests): bound aggregated response bodies. New 
`max_response_body_size` (1 MiB) and `max_response_body_size_total` (10 MiB) 
plugin metadata; a pipeline above either limit now returns 502 instead of the 
full aggregate [#13906](https://github.com/apache/apisix/pull/13906)

Review Comment:
   The new limits are global plugin metadata written through 
`/apisix/admin/plugin_metadata/batch-requests`, not route-level fields. Also, 
the merged `docs/en/latest/plugins/batch-requests.md` and Chinese counterpart 
still omit `max_response_body_size` and `max_response_body_size_total` from the 
Metadata table and configuration example. Please add the two fields so 
operators can act on this breaking change without relying on the changelog 
alone.



##########
CHANGELOG.md:
##########
@@ -86,6 +87,66 @@ title: Changelog
 - [0.7.0](#070)
 - [0.6.0](#060)
 
+## 3.19.0
+
+**The changes marked with :warning: are not backward compatible.**
+
+### Change
+
+- :warning: feat(upstream): verify the upstream certificate against 
configurable CAs. `upstream.tls.verify` was only read by the `kafka` scheme and 
is now honoured for `https` and `grpcs` as well, so an upstream that already 
carried `verify: true` starts rejecting a certificate it cannot validate; 
`tls.ca_certs` picks the trust anchors per upstream 
[#13863](https://github.com/apache/apisix/pull/13863)
+- :warning: fix(openid-connect): validate the introspection issuer. With an 
explicit `claim_validator.issuer.valid_issuers`, a successful remote 
introspection response must now carry a string `iss` matching one of them, or 
the request is rejected with 401; omit the allowlist to keep the previous 
behavior [#13916](https://github.com/apache/apisix/pull/13916)
+- :warning: fix(batch-requests): bound aggregated response bodies. New 
`max_response_body_size` (1 MiB) and `max_response_body_size_total` (10 MiB) 
plugin metadata; a pipeline above either limit now returns 502 instead of the 
full aggregate [#13906](https://github.com/apache/apisix/pull/13906)
+- :warning: fix(basic-auth): reject an empty consumer password. `password` 
requires `minLength: 1`, so the Admin API rejects an empty value and a consumer 
already stored with one fails closed with 401 
[#13884](https://github.com/apache/apisix/pull/13884)
+- :warning: fix(ai-proxy-multi): reject instances that share a name. 
`instance.name` is the instance identity across the balancer, the health 
checker, `ai-rate-limiting` and `semantic_opts.fallback`, so a route whose 
instances share a name is now rejected on write and dropped on reload 
[#13851](https://github.com/apache/apisix/pull/13851)
+- :warning: fix(workflow): reject invalid case expressions and missing action 
conf. A `case` expression that was silently accepted and then matched every 
request is now a schema error, and `actions` is pinned to exactly one `[name, 
conf]` pair, so a rule carrying several actions (only the first ever ran) or an 
action without its conf is rejected on write and dropped on reload 
[#13862](https://github.com/apache/apisix/pull/13862)
+
+### Core
+
+- feat(stream): support TLS passthrough on the stream proxy, so a stream route 
can pick its upstream from the SNI in the prereaded ClientHello and still 
forward the session encrypted 
[#13912](https://github.com/apache/apisix/pull/13912)
+- feat(stream): match a stream route by several SNIs through the new `snis` 
field, mutually exclusive with `sni` 
[#13911](https://github.com/apache/apisix/pull/13911)
+- feat(websocket): add the `ws`/`wss` upstream scheme, which proxies frames 
through APISIX itself and exposes the `ws_handshake`, `ws_client_frame`, 
`ws_upstream_frame` and `ws_close` plugin phases plus the `core.websocket` API 
[#13939](https://github.com/apache/apisix/pull/13939)
+- feat(upstream): slow start for newly observed upstream nodes via 
`warm_up_conf` [#13941](https://github.com/apache/apisix/pull/13941)
+- feat: improve API-driven standalone update reliability: workers report a 
per-entity configuration digest, `PUT /apisix/admin/configs` accepts a `wait` 
parameter and answers 200 once every worker has loaded the configuration (202 
otherwise), and the shdict format carries the digest outside the JSON 
[#13904](https://github.com/apache/apisix/pull/13904)

Review Comment:
   “Per-entity configuration digest” is misleading here. The implementation 
writes the same target `X-Digest` under each tracked resource-type key 
(`routes`, `services`, and so on) for every worker/subsystem; it does not 
compute a separate digest for each resource object. Consider “workers report 
application of the configuration digest for each tracked resource type.”



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to