The directory's public pages read the list once a minute (#341)
/, /all, /search and /category are anyone's to ask for (#215), and each called Store::list: the whole catalogue, joined with the snapshots and grouped, on the 10-connection pool the refresher and every server's /v1 calls share, on the Postgres that holds production ipx's database. The pages' Cache-Control did nothing for a request with a query string of its own, such as /search?q=<random>. Directory::pages_list keeps the list for a minute behind a mutex held through the read, so a burst of misses waits on one query rather than each sending its own. Filtering and rendering still happen per request, in memory. /v1/feeds, behind a token, still reads the database. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
### Security
|
||||
|
||||
- HTTPS connections no longer trust certificates from emSign's distrusted intermediates, and certificate checks use constant-time comparisons: rustls-webpki, webpki-roots and ctutils are updated (#351).
|
||||
- The public pages read the list from the database at most once a minute, however many people ask. Each page asked for the whole catalogue, so a flood of requests with query strings of their own reached the database every time (#341).
|
||||
|
||||
## [1.3.0] - 2026-10-19
|
||||
|
||||
|
||||
Reference in New Issue
Block a user