Releases: ledgetech/ledge
v1.26.1
v1.26
- Feature: Rewrote ESI parser, now with full support for nested conditional (choose/when/otherwise) statements.
- Feature: Added regular expression operator to ESI conditionals (=~).
- Feature: PURGE requests now return JSON bodies.
- Bugfix: Deal more gracefully with erroneous duplicate
Expires
headers #128 - Documentation: General doc fixes and some better explanations around ESI and stale features.
v1.25
- We now detect Redis errors on cache read and return 500 instead of considering it a MISS. If we're able to connect to Redis but have issues reading then this is most likely under a load / failure scenario, and so sending traffic upstream should be avoided.
- Stale-revalidation jobs now use full_uri() for the jid for parity with purge-revalidation jobs.
- Bugfix: Correctly reset Redis connection timeout after waiting on the collapsed forwarding channel.
v1.24
Important fix to avoid malicious response splitting. See: http://resources.infosecinstitute.com/http-response-splitting-attack/ for more information.
v1.23
v1.22
New feature: Revalidate-on-purge
We now support an X-Purge request header on PURGE requests, which can specify "revalidate" or "delete". Delete hard deletes the item (instead of just expiring, which might be served stale still depending on your setup).
Revalidate will first expire the item, before scheduling a background job to revalidate. This only happens if the item previously existed.
In the case of a wildcard PURGE (i.e. PURGE by pattern) the PURGE itself is backgrounded (because the scan can take a while), and revalidation jobs are spawned for each item matching the pattern. Be careful what you wish for!
v1.21
v1.20
Bugfix: If an ESI include fails hard (connection failure of 5xx), the parent page would be truncated. Thanks @hamishforbes
v1.19
v1.18
- Bugfix: Parent headers for background requests were being treated case sensitively
- Bugfix: Stale responses would always return 200, regardless of the actual response status
- Bugfix: ESI processing was being skipped when serving stale
- Optimisation: Revalidation qless jobs are now unique by URI