Features
Observability
- Prometheus metrics by @steve-chavez in #1526
- More detailed logging by @steve-chavez in #3171, #3046, #3340, #3184
- log-level=debug by @steve-chavez and @laurenceisla in #3435, #3214, #3229
Listener
- Force the Listener to connect to the primary instance when using read replicas by @steve-chavez in #3414, #2781
API
- Preference
max-affected
to limit affected resources by @taimoorzaeem in #2887
Transactions
- db-hoisted-tx-settings to apply to function settings by @taimoorzaeem in #3242
Admin
- Dump the runtime configuration by @SkyWriter in #3171
- Dump the runtime schema cache by @taimoorzaeem in #3210
Performance
- Performance improvement on bulk json inserts, around 10% increase on requests per second by removing
json_typeof
from write queries by @steve-chavez in #2676.
Documentation
- Dark mode toggling (with a button on the bottom right corner) by @laurenceisla in #3289
- Architecture page by @steve-chavez in #3384
- CLI page by @taimoorzaeem in #3248
- Listener page by @laurenceisla and @steve-chavez in #3582
Errors
- Show extra information in the
PGRST121
error (could not parse RAISE 'PGRST') by @laurenceisla in #3404- Shows the failed MESSAGE or DETAIL in the
details
field - Shows the correct JSON format in the
hints
field
- Shows the failed MESSAGE or DETAIL in the
Fixes
- Dump media handlers and timezones with --dump-schema by @wolfgangwalther in #3237
- Don't hide error on LISTEN channel failure by @steve-chavez in #3323 and #3324
- Incorrect admin server
/ready
response on slow schema cache loads by @steve-chavez in #3330 - Fix in-database configuration values not loading for
pgrst.server_trace_header
andpgrst.server_cors_allowed_origins
by @laurenceisla in #3345 - Clarify the
PGRST121
(could not parse RAISE 'PGRST') error message by @laurenceisla in #3404 - Fix wrong
503 Service Unavailable
on pg error53400
by @taimoorzaeem in #3267 - Fix not adding
application_name
on all connection strings by @steve-chavez in #2985 - Admin
/live
and/ready
now differentiates a failure as 500 status by @steve-chavez in #3424- 503 status is still given when postgREST is in a recovering state
- Media Types are parsed case insensitively by @develop7 in #3478
- Fix listener silently failing on read replica by @steve-chavez in #3533 and #3536
- If the LISTEN connection fails, it's retried with exponential backoff
- Force listener to connect to read-write instances using
target_session_attrs
by @steve-chavez in #3414 - Fix incorrect
413 Request Entity Too Large
on pg errors54*
by @taimoorzaeem in #3255 - Remove verbosity from error logs starting with "An error occurred..." and replacing it with "Failed to..." by @laurenceisla in #3549
Deprecations
- Support for PostgreSQL versions 9.6, 10 and 11 is deprecated. From this on version onwards, PostgREST will only support non-end-of-life PostgreSQL versions. See https://www.postgresql.org/support/versioning/.
Prefer: params=single-object
is deprecated. Use a function with a single unnamed JSON parameter instead. - @steve-chavez