What PostgREST/postgrest shipped
Written by FoxPlug from the repository's own releases; not affiliated with Postgrest. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/PostgREST/postgrest; Postgrest did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of November 2, 2026
What shipped
- The admin metrics endpoint now reports a
pgrst_schema_cache_last_reload_successfulmetric showing whether the last schema cache reload succeeded. Pull request #5365 - A fast loadtest for pool contention now borrows a connection from the pool, does nothing and returns it, running concurrently with many GHC threads across all cores. Pull request #5368
- The pool loadtest now monitors CPU and memory, sampling every 0.1 seconds because the pool test runs faster than the existing loadtest. Pull request #5369
- Broken links on the Authentication page were fixed by pointing to blog posts from webarchive.org since http://cryto.net is down. Pull request #5370
- The In Production section was removed from the docs. Pull request #5366
- The backport action's version comment is now updated so it shows the new patch release instead of just a new digest. Pull request #5373
- The backport action version comment update was released on devel. Release
Why it matters
This week adds a metric that tells operators whether the last schema cache reload succeeded, which helps diagnose a stale schema cache. The new pool contention loadtest and its CPU and memory monitoring give a faster way to reproduce and observe connection pool problems. Documentation links were also repaired after an external site went down.
Changelog entry
- Add
pgrst_schema_cache_last_reload_successfulmetric to the admin metrics endpoint. Pull request #5365 - Add a fast loadtest for pool contention that borrows, idles and returns a pooled connection under high thread concurrency. Pull request #5368
- Add CPU and memory monitoring to the pool loadtest, sampled every 0.1 seconds. Pull request #5369
- Fix linkcheck failures on the Authentication page by using webarchive.org blog posts for the down site. Pull request #5370
- Remove the In Production section from the docs. Pull request #5366
- Update the backport action version comment so it reflects the new patch release instead of a new digest. Pull request #5373
- Release the backport action version comment update on devel. Release
The admin metrics endpoint now reports pgrst_schema_cache_last_reload_successful, so you can see whether the last schema cache reload worked. A fast loadtest for pool contention is in, now with CPU and memory monitoring. Docs links fixed and the In Production section removed.
This week the admin metrics endpoint gained pgrst_schema_cache_last_reload_successful, which shows whether the last schema cache reload succeeded. A new fast loadtest reproduces pool contention by borrowing a connection, doing nothing and returning it across many GHC threads, and it now monitors CPU and memory every 0.1 seconds. Documentation also changed: broken links on the Authentication page were fixed using webarchive.org blog posts, and the In Production section was removed.
Week of October 19, 2026
What shipped
- Released v16.5, which fixes admin /live and /metrics waiting for a pool connection when db-channel-enabled is false, and fixes Prefer: timezone validation in selected pg versions. Release
- PostgREST now raises the open files soft limit to the hard limit on startup, since each connection takes a file descriptor and container runtimes start with a soft limit of 1024. Pull request #5297
- Reverted a performance change that copied JWT cache keys on insertion. Pull request #5352
- Added a changelog entry for v16.5. Pull request #5343
- Corrected the reloadable value of app settings config in the docs. Pull request #5339
- The FreeBSD build now caches stack dependencies to avoid frequent CI failures. Pull request #5344
- Applied small codebase-wide fixes. Pull request #5348
- Removed an unused argument from a test in the io-tests suite. Pull request #5353
Why it matters
Version 16.5 is out with fixes for admin endpoints and timezone validation, and the startup change helps avoid running out of file descriptors in container environments. Together these updates improve reliability for people running PostgREST in production.
Changelog entry
- Release v16.5 with fixes for admin /live and /metrics pool connection waiting and Prefer: timezone validation. Release
- Raise the open files soft limit to the hard limit on startup. Pull request #5297
- Revert the change that copied JWT cache keys on insertion. Pull request #5352
- Correct the reloadable value of app settings config in the docs. Pull request #5339
- Cache stack dependencies for the FreeBSD build in CI. Pull request #5344
- Apply small codebase-wide fixes. Pull request #5348
- Remove an unused argument from a test. Pull request #5353
- Add changelog entry for v16.5. Pull request #5343
PostgREST v16.5 is out: fixes admin /live and /metrics waiting for a pool connection when db-channel-enabled is false, and timezone validation in selected pg versions. Also: raise open files soft limit to hard limit on startup.
PostgREST v16.5 has been released. It fixes admin /live and /metrics waiting for a pool connection when db-channel-enabled is false, and fixes Prefer: timezone validation in selected pg versions. Additionally, PostgREST now raises the open files soft limit to the hard limit on startup, which helps in container runtimes that start with a soft limit of 1024. The FreeBSD build also caches stack dependencies to reduce CI failures, and the docs have a corrected reloadable value for app settings config.
Week of October 12, 2026
What shipped
- Fixed idle connection reaping in hasql-pool so idle connections are closed after db-pool-max-idletime instead of living until db-pool-max-lifetime. Pull request #5321
- Added validation of the Prefer: timezone header on Postgres versions lower than 18.6, 17.11, 16.15, 15.19 and 14.24, returning an error when the value exceeds 24 characters. Release
- Backported the timezone preference validation fix to v16. Pull request #5340
- Added a test suite build and run for the vendored hasql-pool tests, with a postgrest-test-hasql-pool command and a CI step. Pull request #5320
- Moved the vendored hasql tasty tests to hspec and made them run. Pull request #5335
- Added a test demonstrating unbounded prepared statements with distinct query aliases. Pull request #5329
- Moved shared hasql encoder and decoder helpers into a Hasql.Helpers module to deduplicate them. Pull request #5331
- Set fourmolu comma-style to trailing so haddock-style comments in record syntax appear above the line and diffs are easier to read. Pull request #5322
- Backported the fourmolu trailing comma-style setting to v16. Pull request #5326
- Added automatic labels to renovate bot pull requests so they can be filtered in the GitHub UI. Pull request #5334
Why it matters
This week fixes connection pool behavior so idle connections are actually closed after the idle timeout, and tightens timezone header validation on older Postgres versions, including a backport to v16. It also brings the vendored hasql and hasql-pool test suites into the build and CI, which is groundwork for further pool work.
Changelog entry
- Hasql-pool now reaps idle connections after db-pool-max-idletime instead of keeping them until db-pool-max-lifetime. Pull request #5321
- Prefer: timezone is validated on Postgres versions lower than 18.6, 17.11, 16.15, 15.19 and 14.24, rejecting values longer than 24 characters. Release
- Backported the timezone preference validation fix to v16. Pull request #5340
- Added a build and run of the vendored hasql-pool test suite, with a postgrest-test-hasql-pool command and a CI step. Pull request #5320
- Moved the vendored hasql tasty tests to hspec and run them. Pull request #5335
- Added a test proving prepared statement caching is unbounded with distinct query aliases. Pull request #5329
- Deduplicated hasql encoder and decoder helpers into the Hasql.Helpers module. Pull request #5331
- Set fourmolu comma-style to trailing for record syntax. Pull request #5322
- Backported the fourmolu trailing comma-style setting to v16. Pull request #5326
- Renovate bot pull requests are now auto-labeled. Pull request #5334
This week: idle connections in hasql-pool now close after db-pool-max-idletime instead of max-lifetime. Prefer: timezone is validated on older Postgres versions, with a v16 backport. Vendored hasql and hasql-pool tests now build and run in CI.
This week in PostgREST: the hasql-pool manager now reaps idle connections after db-pool-max-idletime rather than keeping them until db-pool-max-lifetime, fixing long-lived idle connections. The Prefer: timezone header is validated on Postgres versions below 18.6, 17.11, 16.15, 15.19 and 14.24, returning an error when the value exceeds 24 characters, and the fix is backported to v16. On the testing side, the vendored hasql-pool tests now build and run with a dedicated command and CI step, the hasql tasty tests moved to hspec, and there is a new test demonstrating unbounded prepared statements. Shared hasql encoder and decoder helpers were deduplicated into one module, and fourmolu now uses trailing comma style for cleaner diffs.
Week of October 5, 2026
What shipped
- The admin server no longer waits for a pool connection on /live and /metrics, checking AppState readiness only on /ready now. Pull request #5302
- The pool connection fix for admin /live and /metrics was backported to v16. Pull request #5310
- GC tuning with -A16m increases throughput by about 13% on average for machines from 2 CPUs and 0.5GB memory up to 16 CPUs and 64GB memory. Pull request #5316
- GHC RTS flags are shown at startup when log-level is set to debug. Pull request #5309
- Metrics are now scoped to the AppState and their samples registered once per process. Pull request #5299
- Dead code was removed from hasql and code coverage was enabled. Pull request #5303
- The JWT cache was simplified by removing the unused CacheVariant class. Pull request #5306
- RPC arguments are returned directly instead of being wrapped in NoOpExpr, removing unreachable code. Pull request #5304
- Shared Cabal fields were grouped using common stanzas. Pull request #5317
Why it matters
Liveness probes and metrics scrapes on the admin server are no longer delayed by a busy database pool, which matters when db-channel-enabled is false. The GC tuning raises throughput across low-end and high-end machines. Debug logging now shows the GHC RTS flags in use.
Changelog entry
- Admin /live and /metrics no longer wait for a pool connection; only /ready checks AppState readiness. Pull request #5302
- Backported the admin /live and /metrics pool connection fix to v16. Pull request #5310
- Added -A16m GC tuning, increasing throughput by about 13% on average across low-end and high-end machines. Pull request #5316
- GHC RTS flags are shown at startup when log-level is debug. Pull request #5309
- Scoped metrics to the AppState and registered their samples once per process. Pull request #5299
- Removed dead code from hasql and enabled code coverage. Pull request #5303
- Returned RPC arguments directly instead of wrapping them in NoOpExpr. Pull request #5304
- Simplified the JWT cache by removing the unused CacheVariant class. Pull request #5306
- Grouped shared Cabal fields using common stanzas. Pull request #5317
This week: admin /live and /metrics no longer wait for a pool connection, and the v16 backport is in. GC tuning adds about 13% average throughput. RTS flags now show at startup with log-level=debug. Metrics are scoped to AppState and registered once per process.
This week in PostgREST: the admin server no longer waits for a pool connection on /live and /metrics, so liveness probes and metrics scrapes are not delayed by a busy pool; readiness is still checked on /ready. A v16 backport of that fix is included. GC tuning with -A16m increases throughput by about 13% on average for machines from 2 CPUs and 0.5GB memory up to 16 CPUs and 64GB memory. GHC RTS flags are now shown at startup when log-level is debug. Metrics are scoped to AppState and their samples registered once per process. Also: dead hasql code removed with code coverage enabled, the unused CacheVariant class dropped from the JWT cache, RPC arguments returned directly without NoOpExpr, and shared Cabal fields grouped into common stanzas.
Week of September 21, 2026
What shipped
- V16.4 released with fixes for mixed-case schema names on the root endpoint and jwt-cache-max-entries configuration loading from the database. Release
- Schema cache queries are now logged when log-query is enabled at info or debug log levels. Pull request #5285
- Internal SchemaCache module renamed to Catalog to clarify module dependencies and centralize catalog queries. Pull request #5270
- CI workflow added to create releases from the UI using the postgrest-release tool. Pull request #5218
- Hsie check-aliases tool restored to nix tooling for local failure visibility. Pull request #5283
- Dependencies updated to ubuntu v26. Release
Why it matters
V16.4 addresses important bugs affecting schema handling and JWT configuration that users may encounter in production environments. The logging improvements help developers debug schema cache behavior, and internal refactoring improves code maintainability for future development.
Changelog entry
- Fix response on root endpoint when schema name is in mixed case Release
- Fix config jwt-cache-max-entries not loaded from the database Release
- Log-query now logs schema cache queries at info and debug log levels Pull request #5285
V16.4 is out. We fixed mixed-case schema names on the root endpoint and jwt-cache-max-entries config loading. Schema cache queries are now loggable for debugging.
PostgREST v16.4 is now available. This release includes fixes for mixed-case schema name handling on the root endpoint and resolves an issue where the jwt-cache-max-entries configuration wasn't being loaded from the database. We've also improved developer experience by enabling logging of schema cache queries at info/debug levels. Additionally, internal refactoring of the catalog module improves code clarity and maintainability.
More from PostgREST/postgrest on GitHub
Merged pull requests
- add: log schema cache queries (#5285, merged September 25, 2026 by steve-chavez) (source)
- nix(tools): add hsie check-aliases to postgrest-check (#5283, merged September 24, 2026 by taimoorzaeem) (source)
- chore: add changelog entry for v16.4 (#5282, merged September 24, 2026 by taimoorzaeem) (source)
- ci: add workflow to create release from UI (#5218, merged September 23, 2026 by taimoorzaeem) (source)
- [v16] fix: jwt-cache-max-entries not loaded from the database (#5278, merged September 23, 2026 by taimoorzaeem) (source)
- fix: jwt-cache-max-entries not loaded from the database (#5269, merged September 23, 2026 by mkleczek) (source)
- refactor: rename inner SchemaCache module to Catalog (#5270, merged September 21, 2026 by steve-chavez) (source)
- chore(changelog): fix misplaced entry (#5256, merged September 17, 2026 by mkleczek) (source)
- perf: copy JWT cache keys on insertion (#5229, merged September 17, 2026 by mkleczek) (source)
- fix: root endpoint response when schema name is in mixed case (#5251, merged September 17, 2026 by taimoorzaeem) (source)
- nix: switch to nixfmt (#5225, merged September 13, 2026 by wolfgangwalther) (source)
- nix: add merge-driver for treefmt (#5224, merged September 13, 2026 by wolfgangwalther) (source)