ThreeMammals / Ocelot

.NET API Gateway
https://www.nuget.org/packages/Ocelot
MIT License
8.28k stars 1.63k forks source link

Release 23.1 #1977

Closed raman-m closed 5 months ago

raman-m commented 5 months ago

January 2024 release

Milestone: January'24 Version: 23.1

Features

raman-m commented 5 months ago

January 2024 (version 23.1.0-beta0001) aka Hornussen release

Codenamed as Hornussen Sport Read the Docs: Ocelot 23.1

Focus On

Multiplexing middleware aka Request Aggregation feature - Significant refactoring and design review of the [Multiplexer](https://github.com/ThreeMammals/Ocelot/tree/develop/src/Ocelot/Multiplexer) - Optimizing multiplexer performance: `HttpContext` is not copied when there is only one downstream route, and etc. - Fixed [the bug](https://github.com/ThreeMammals/Ocelot/pull/1462) in the multiplexer: `HttpContext.User` information was not copied if there was more than one downstream request.
System routing. Content streaming when Transfer-Encoding: 'chunked' - Correction of [the bug](https://github.com/ThreeMammals/Ocelot/pull/1972) when creating requests: The header [Transfer-Encoding](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Transfer-Encoding): `chunked` was present even when there was no content or the request body size was 0. These cases are now addressed.
Updates of the features: QoS, Load Balancer and Error Status Codes - [Quality of Service](https://ocelot.readthedocs.io/en/latest/features/qualityofservice.html): Possibility of implementation of custom Polly v8.2 providers. New `AddPolly` extension methods. - [Load Balancer](https://ocelot.readthedocs.io/en/latest/features/loadbalancer.html): Extension of the route key format, ensuring that the key remains unique for cases of **UpstreamHost** route property and **ServiceName** vs **ServiceNamespace** properties in Consul setup. - [Error Status Codes](https://ocelot.readthedocs.io/en/latest/features/errorcodes.html): When [413 Content Too Large](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/413), Ocelot now returns a 413 `PayloadTooLargeError` (Ocelot error code `41`).
Documentation for Request Aggregation - [Request Aggregation](https://ocelot.readthedocs.io/en/latest/features/requestaggregation.html)
Stabilization aka bug fixing - See [all bugs](https://github.com/ThreeMammals/Ocelot/issues?q=is%3Aissue+is%3Aclosed+label%3Abug+milestone%3AJanuary%2724) of the [January'24](https://github.com/ThreeMammals/Ocelot/milestone/4) milestone

Honoring :medal_sports: aka Top Contributors :clap:

1st :1st_place_medal: goes to Guillaume Gnaegi for delivering 2 features 2nd :2nd_place_medal: goes to Alexander Reinert for delivering 1 feature in 8 files changed 3rd :3rd_place_medal: goes to Steven for delivering 1 feature in 5 files changed with 353 insertions

Starring :star: aka Release Influencers :bowtie:

:star::star: Guillaume Gnaegi :star: Alexander Reinert :star: Chris Williams :star: Masoud Bahrami :star: Raynald Messi├й :star: Steven :star: Ugway77

Features in Release 23.1.0-beta0001

36986d6e by Guillaume Gnaegi on Friday, March 01 at 18:33 →

1825 #1330 #1287 #1069 Improvements of the multiplexing middleware (#1826)

42ac3ca5 by Guillaume Gnaegi on Friday, March 01 at 12:00 →

749 Bad error handling for IOException while reading incoming request body (#1769)

319e397d by Alexander Reinert on Thursday, February 29 at 22:16 →

1971 #928 Avoid content if original request has no content and avoid Transfer-Encoding: chunked if Content-Length is known (#1972)

8845d1b9 by Steven on Thursday, February 29 at 09:44 →

849 #1496 Extend the route key format used for load balancing making it unique (#1944)

171e3a7b by Masoud Bahrami on Tuesday, February 27 at 19:05 → Logging bug in HttpRequesterMiddleware (#1953) 0404c247 by Raynald Messi├й on Monday, February 26 at 09:24 →

1844 More open customization of Polly use (#1974)

108bedef by Ugway77 on Thursday, February 22 at 23:38 →

1396 Lost context User in MultiplexingMiddleware (#1462)

a9dff7c1 by Chris Williams on Thursday, February 22 at 04:25 → Fix typo in the name of the DistributedCacheRateLimitCounterHandler class (#1969) by @williamscs