Repository navigation
Bump PostgREST for v16.4 - #2529
laurenceisla wants to merge 3 commits into
Conversation
39007ce to
395bb13
Compare
| postgresorioledb-17: "17.11.0.005-orioledb-pgrst-16-4" | ||
| postgres17: "17.11.0.005-pgrst-16-4" | ||
| postgres15: "15.19.0.005-pgrst-16-4" |
There was a problem hiding this comment.
Please remove suffix before merge to develop.
There was a problem hiding this comment.
PostgREST 14.18 to 16.4 changelog review. 16.0 is a major with breaking changes.
Verified
- PG13 dropped in 16.0. We ship 15 and 17 only.
- Embedded table filters with an alias are deprecated, not removed. Default keeps old behavior.
- Graceful shutdown: salt drains via Envoy before stopping
postgrest@<slot>. No unit change needed. - Admin server and
/liveon 3001/3003 unchanged. - ARM binary is pulled from S3, not the GitHub asset in
ansible/vars.yml. - 16.1, 16.3, 16.4 are JWT and config fixes only.
- Worker
buildConfig()emitsrole-claim-key = ".role"anddb-schema. Both legacy names still parse in 16.4. Old role claim syntax works via the 16.2 shim with a warning. role_claim_keyis not user-editable. Default.roleonly.db-use-legacy-gucswas removed in v12 and is already ignored.
Unknown
- Projects with
db_schemacontainingpg_catalogorinformation_schema. 16.0 fails at startup. The API and DB do not validate this field. A bad value crash-loops with no start limit. - S3
arm64.tar.xzbuild. 16.x aarch64 is now static, not Ubuntu-based. Not tested. - Clients sending
Prefer: timezonewithhandling=lenient. Invalid timezones now always error. Varyheader added to responses. Not checked against Kong or CDN caching.
Follow-up
- Check db_schema in middleware db:
select project_ref, db_schema from public.postgrest_config where db_schema ~* '(^|,)\s*(pg_catalog|information_schema)\s*(,|$)';```
- Worker should emit
jwt-role-claim-key = "$.role"to stop the deprecation warning.
|
Thanks for the review!
The replica keeps disallowing this, will come back to it later.
Manually tested AMI in staging (see pic) and also Supadev Smoke tests are passing/running (Oct. 6 ones).
We used to have PostgREST tests when opening a PR, but they don't seem to be running right now? https://github.com/supabase/postgres/blob/develop/testinfra/test_ami_nix.py#L462-L467
There's an internal conversation about this. IIUC, the consensus was to allow it.
Not sure about this, will verify.
Replica problem as mentioned above.
Planned, but not a blocker for now: the deprecation warning only shows on startup / schema reload. cc. @steve-chavez For confirmation on these |
They run in the |
|
Thanks for the info. A follow up of the pending reviews:
Solved it by checking the table directly and only one active project is using that configuration. So this shouldn't be a blocker IMO.
AFAICS we're not allowing caching in PostgREST, or more specifically it's blocked for JSON responses. So this won't affect that, but it'll be useful for when caching is finally enabled.
All Supadev Smoke Tests steps are passing correctly except for the Upgrade ones. I get the following error: https://github.com/supabase/supadev/actions/runs/37714933457/job/113465267934#step:24:1546. I asked the team what the issue might be. |
|
Open:
|

What kind of change does this PR introduce?
Updates PostgREST to latest v16.4
What is the current behavior?
We're currently in v14.18, a major and some minor versions behind.