Welcome¶
Welcome to the Ocelot 23.4 documentation!
It is recommended to read all 📢 Release Notes if you have deployed the Ocelot app in a production environment and are planning to upgrade to major or patched versions.
The major version 23.4.0 includes several patches, the history of which is provided below.
Patches
📢 Release Notes¶
With release jokes:
for men: Wearing a cap with the MAGA slogan is encouraged when visiting McDonald’s.
for women: Donald is fond of caps, particularly the MAGA cap, and it’s amusing to see children’s reactions when We Ask Kids How Mr.D is Doing?
for black men: Here are some highlights of Donald’s antics aka Mr. D:
ℹ️ About¶
This minor release significantly upgrades the Routing feature by supporting Embedded Placeholders 1 within path segments (between slashes).
Additionally, the team has focused on enhancing the performance of Regex
objects.
🆕 What’s New?¶
Routing: Introducing the new “Embedded Placeholders 1” feature by @ggnaegi.
As of November 2024, Ocelot was unable to process multiple Placeholders embedded between two forward slashes (/
). It was also challenging to differentiate the placeholder from other elements within the slashes. For example,/{url}-2/
for/y-2/
would yield{url} = y-2
. We are excited to introduce an enhanced method for evaluating placeholders that allows for the resolution of Placeholders within complex URLs.For additional information, refer to PR 2200.
🆙 Feature Updates¶
Routing: The new feature is “Embedded Placeholders 1” by @ggnaegi.
Core: All
Regex
logic has been refactored by @EngRajabi.The Ocelot Core now boasts improved performance of
Regex
objects, striving to adhere to the Best Practices for Regular Expressions in .NET. It is estimated that each request could save from 1 to over 10 microseconds in processing time (though no benchmarks have been developed to measure this).Rate Limiting: The persistent issue with Rate Limiting headers has been resolved by @jlukawska.
The problem was the absence of unofficialX-Rate-Limit-*
headers (found in the RateLimitingHeaders class) in theRateLimitingMiddleware
’s response.For more details, see PR 1307.Note that these unofficial headers have not yet been documented, so they may be subject to change since Ocelot’s RateLimiting headers do not align with industry standards.Middleware Injection: The
ClaimsToHeadersMiddleware
property has been introduced by @kesskalli.This new property of the
OcelotPipelineConfiguration
class enables the overriding of the ClaimsToHeadersMiddleware. For additional information, refer to PR 1403.
📘 Documentation Summary¶
Routing: New section on Embedded Placeholders 1.
Middleware Injection: Added the ClaimsToHeadersMiddleware property.
🧑💻 Contributing¶
Pull requests, issues, and commentary are welcome at the Ocelot GitHub repository.
For ideas and questions, please post them in the Ocelot Discussions space.
Our Development Process is a part of successful Release Process. If you are a new contributor, it is crucial to read Development Process attentively to grasp our methods for efficient and swift feature delivery. We, as a team, advocate adhering to Best Practices throughout the development phase.
We extend our best wishes for your successful contributions to the Ocelot product!