Taimoor Zaeem and Wolfgang Walther
c5af0cc3f9
fix: loading utf-8 config files with ascii locale set
...
Updates configurator-pg to version 0.2.11. This resolves #4386 .
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-10-24 17:58:09 +00:00
Taimoor Zaeem and Steve Chavez
a8f40c4908
feat: improve error details of PGRST301 error
2025-09-14 13:37:17 -05:00
Laurence Isla and Steve Chavez
4ba6b1b30c
feat: improve error response when the requested schema is invalid
...
- It now shows the invalid schema in the "message"
- The exposed schemas are now listed in the "hint" instead of the "message"
2025-09-14 13:37:17 -05:00
Laurence Isla and Wolfgang Walther
ea153523d1
fix: empty enum in 'preferParams' openAPI parameter
2025-08-30 08:31:21 +02:00
Taimoor Zaeem and Wolfgang Walther
bf0a1173b5
fix: format of IPv6 address logged at PostgREST startup
...
The IPv6 address logged at the startup like `::1:80` was
wrong because the port isn't clearly separated. This commit
corrects it, now logging as `[::1]:80`.
This is done in accordance to RFC 3986. In short, we did this
have a clear separation between the port and host because
the components of an IPv6 are separated with the ':' character.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-08-29 22:31:01 +02:00
Laurence Isla and Wolfgang Walther
86aac1ead5
fix: logging the Haskell type instead of the listener error message directly
...
Previously: Just "connection error..."
Now: connection error...
2025-08-25 10:25:48 +00:00
Taimoor Zaeem and Wolfgang Walther
86b0f82b6c
fix(admin): metrics endpoint not responding with Content-Type header
...
The prometheus metrics text format requires `Content-Type` header
for correct scraping which fails otherwise. Closes #4271 .
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-08-21 13:47:19 +00:00
Taimoor Zaeem and Wolfgang Walther
d863065a51
fix: empty spread embeddings return unexpected SQL error
...
Fixes the SQL error from postgres when an empty spread embeddings
like `...table()` is requested.
2025-08-21 13:47:19 +00:00
Taimoor Zaeem and Wolfgang Walther
16d59e825c
test: adjust jwt claims error test to avoid failure
...
The JWT claims IO test fails too often. This breaks our
workflows. This commit adjusts the edge cases in test to
prevent flakiness.
2025-07-19 14:22:51 +02:00
Joel Jakobsson and Wolfgang Walther
73d335e976
fix(openapi): respect function volatility for GET methods
...
The OpenAPI specification was incorrectly exposing GET methods for
VOLATILE functions, even though such functions properly reject GET
requests at runtime with "405 Method Not Allowed". This created
a mismatch between the advertised API specification and the actual
runtime behavior.
VOLATILE functions should only be callable via POST since they may
have side effects, while STABLE and IMMUTABLE functions can safely
be called via GET since they don't modify database state.
Fix by checking the pdVolatility field in makeProcPathItem() and
only including GET methods in the OpenAPI PathItem for non-volatile
functions.
The runtime behavior was already correct; this fixes only the
OpenAPI documentation generation.
2025-07-07 17:28:07 +02:00
Taimoor Zaeem and Laurence Isla
5b45113565
fix: jwt-aud config not failing when set to invalid URI ( #4140 )
...
The `jwt-aud` config was not validated when containing ':'
character according to RFC 3986. This fix validates it and
fails at startup if it is invalid.
2025-06-18 00:11:30 +00:00
Laurence Isla
733a896113
fix: regression that makes fts not work on domain types based on tsvector
2025-06-18 00:11:30 +00:00
Taimoor Zaeem and Laurence Isla
f54aef4795
fix: max-affected preference not failing for rpc with strict handling
2025-06-16 16:11:13 -05:00
Taimoor Zaeem and Laurence Isla
ea2d3aeb72
test: add missing tests for max-affected preference with rpc
2025-06-16 16:11:03 -05:00
Laurence Isla
c413833ec8
fix: regression that makes order by with nulls order not work alongside limits
2025-06-02 14:17:35 -05:00
Taimoor Zaeem and Wolfgang Walther
ba42e4610a
fix: log db-schemas and db-extra-search-path in schema cache load error ( #4108 )
2025-05-30 20:56:04 +02:00
Taimoor Zaeem and Wolfgang Walther
0ba47180ae
fix: allow db-extra-search-path to accept empty value
2025-05-30 14:35:57 +02:00
Taimoor Zaeem and Wolfgang Walther
0230a844b2
test: add test for duplicate entries in pg_description with same OID
2025-05-14 21:44:23 +02:00
Taimoor Zaeem and Wolfgang Walther
e0e60fa433
fix: jwt error return status 400 for invalid role ( #4081 )
2025-05-14 21:44:22 +02:00
Taimoor Zaeem and Wolfgang Walther
7269630538
test: add test when using .aud in jwt-role-claim-key
2025-05-14 21:44:20 +02:00
Laurence Isla
e0c5b3a314
correct: handle array values in JWT aud claim correctly
2025-05-07 21:54:32 +00:00
Laurence Isla
b3bff90d68
correct: fail on invalid types of registered JWT claims (exp, nbf, iat, aud)
2025-05-07 21:54:32 +00:00
steve-chavez
98ca7c15d5
drop: Admin server config endpoint
...
BREAKING CHANGE
The endpoint was at risk of being left unprotected when exposing it.
The accompanying `admin-server-config-enabled` config was also dropped.
2025-05-04 13:53:50 -05:00
Taimoor Zaeem and Steve Chavez
f53147674e
fix: filter on unselected columns in a table-valued function
2025-04-27 14:20:13 -05:00
Laurence Isla and Steve Chavez
57ef9988a5
feat: add Content-Length response header
2025-04-24 12:49:18 -05:00
Taimoor Zaeem and Steve Chavez
fdf902319d
fix: regression with parameter charset=utf-8 in mediatype
2025-04-20 16:10:33 -05:00
steve-chavez
58237be608
test: add loadtest for async purge of JWT cache
2025-04-20 15:11:41 -05:00
steve-chavez
58b5dff188
Revert "nix: add loadtest with unique JWTs"
2025-04-18 17:43:10 -05:00
steve-chavez
9c3816218a
ci: adjust upper bound of PATCH memory test
2025-04-17 23:11:33 -05:00
steve-chavez
608f7ca45a
nix: add loadtest with unique JWTs
...
This loadtests the jwt decoding logic. For this it adds an optional
`-k`(kind) parameter to `postgrest-loadtest` and
`postgrest-loadtest-against`.
Old kind (default):
```
postgrest-loadtest -k mixed
postgrest-loadtest-against -k mixed
```
New kind:
```
postgrest-loadtest -k jwt
postgrest-loadtest-against -k jwt
```
Internally it uses a dynamically generated targets file using python
which looks like:
```
GET http://postgrest/authors_only
Authorization: Bearer <jwt>
GET http://postgrest/authors_only
Authorization: Bearer <another-jwt>
...
```
Then this is used to run vegeta with the `-lazy` option.
2025-04-17 23:11:33 -05:00
Taimoor Zaeem and GitHub
bc5ec43300
fix: invalid JWTs after jwt-secret is changed in a config reload ( #4015 )
2025-04-16 09:40:36 -05:00
Taimoor Zaeem and GitHub
feb5b7d494
fix: regression that replaces an unknown media type with */* ( #4013 )
2025-04-14 09:57:54 -05:00
Taimoor Zaeem and GitHub
f7f87b42ca
feat: add Proxy-Status header for better error response
2025-04-05 13:43:39 -05:00
Wolfgang Walther
95e36fdad9
nix: avoid rebuilding memory tests when entering nix-shell
...
The memory tests are now run in the same way as the regular tests.
2025-03-30 18:57:39 +00:00
Laurence Isla and GitHub
0b618d0bef
feat: allow spreading one-to-many and many-to-many embedded resources
...
* Note: Aggregates are not implemented
2025-03-24 14:45:56 +00:00
Taimoor Zaeem and GitHub
fdc26d52fc
fix: empty error messages for disabled openapi and /invalid/nested/paths
2025-03-21 11:51:40 -05:00
Taimoor Zaeem and Steve Chavez
fc35d6d0f8
fix: Fix ordering with mutation queries
2025-03-17 14:13:34 +01:00
Taimoor Zaeem and Steve Chavez
dd29e74150
test: fix config value in io test
2025-03-13 10:19:29 +01:00
Taimoor Zaeem and Steve Chavez
e3041fc4a0
test: correct jwt parse time test
2025-03-13 10:19:29 +01:00
Taimoor Zaeem and Steve Chavez
36b6a2c86b
fix: improve jwt errors
2025-03-13 00:20:54 +01:00
Taimoor Zaeem and Steve Chavez
53ca035e9b
test: rename module NoJwtSpec.hs -> NoJwtSecretSpec.hs
2025-03-06 10:30:02 -05:00
Taimoor Zaeem and GitHub
c9a625ced6
feat: Log PoolRequest and PoolRequestFullfilled observations ( #3925 )
2025-02-28 12:01:10 -05:00
Taimoor Zaeem and GitHub
390ba19932
fix: handle queries on non-existing table gracefully
2025-02-21 13:49:54 -05:00
Laurence Isla and GitHub
9c880c082a
feat: allow logging the SQL query to stderr
...
- Logs the main SQL query when `log-query=main-query`.
- Only logs at the current `log-level`.
2025-02-18 19:17:26 -05:00
Taimoor Zaeem and Steve Chavez
66e966d864
refactor: move jwt caching logic to Auth/JwtCache.hs
2025-02-17 14:19:40 -05:00
Steve Chavez and GitHub
307692c325
break: remove limited updated/delete feature ( #3907 )
...
BREAKING CHANGE
As agreed on https://github.com/PostgREST/postgrest/issues/3013#issuecomment-1770186262 ,
this removes the limited update/delete feature.
The feature was complicated, largely unused and caused other bugs in
mutations.
It was added in #2195 and #2211 .
2025-02-12 14:48:08 -05:00
M. Taimoor Zaeem and Steve Chavez
c96dc3ee90
fix: log 503 client error to stderr
2025-02-08 21:08:29 -05:00
Taimoor Zaeem and GitHub
71a147392a
fix: jwt cache is not purged ( #3801 )
2025-01-29 14:53:10 -05:00
Laurence Isla
b7d0a1f68c
feat: apply to_tsvector() explicitly to the full-text search filtered column, only if it's not of tsvector type
2025-01-28 19:14:54 -05:00
M. Taimoor Zaeem and Steve Chavez
56c14474da
fix: insert with missing=default uses column default before using domain default
2024-12-23 15:27:40 -05:00