Wolfgang Walther
55eafdf352
chore(deps): update nixpkgs to 25.05
2025-07-11 15:53:06 +00:00
Wolfgang Walther
6bf2cb09a6
remove: drop support for PostgreSQL 12
...
This has been EOL since November and has been dropped from nixpkgs.
2025-07-11 15:53:06 +00:00
Joel Jakobsson and GitHub
01c23a8124
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 15:26:51 +00:00
Taimoor Zaeem and GitHub
c318d46469
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-16 15:40:47 -05:00
Laurence Isla
a2892ab1dd
fix: regression that makes fts not work on domain types based on tsvector
2025-06-16 16:53:29 +00:00
Taimoor Zaeem and GitHub
2eb9e4a8a4
test: upserts with case sensitive table and sequence name ( #4131 )
...
Closes #3712 .
2025-06-07 12:39:50 -05:00
steve-chavez
b2f8786821
nix: detect unused python code
...
Now `postgrest-lint` shows:
```
Linting workflows...
Scanning nix files for unused code...
Scanning python files for unused code...
nix/tools/generate_targets.py:13: unused variable 'JWT_DURATION' (60% confidence)
test/io/test_cli.py:6: unused import 'repeat' (90% confidence)
```
Also corrected the above detected files
2025-06-03 20:47:39 -05:00
Taimoor Zaeem and Steve Chavez
dc46aea15e
fix: max-affected preference not failing for rpc with strict handling
2025-06-03 14:31:17 -05:00
Laurence Isla
f7fa717411
fix: regression that makes order by with nulls order not work alongside limits
2025-06-02 17:44:57 +00:00
Taimoor Zaeem and Steve Chavez
c5ccf742d6
feat: improve error details of PGRST301 error
2025-05-31 13:30:32 -05:00
Taimoor Zaeem and GitHub
ea9d4f49b2
fix: log db-schemas and db-extra-search-path in schema cache load error ( #4108 )
2025-05-30 10:13:19 -05:00
Taimoor Zaeem and Steve Chavez
000cb87ec1
fix: allow db-extra-search-path to accept empty value
2025-05-29 14:25:28 -05:00
Taimoor Zaeem and Steve Chavez
5f9e0a2739
test: add missing tests for max-affected preference with rpc
2025-05-22 12:23:52 -05:00
Laurence Isla
0b3c8c98d8
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-05-15 02:21:00 +00:00
Taimoor Zaeem and Steve Chavez
8b63ea82ec
test: add test for duplicate entries in pg_description with same OID
2025-05-14 09:31:48 -05:00
Taimoor Zaeem and GitHub
8390df0fa5
fix: jwt error return status 400 for invalid role ( #4081 )
2025-05-13 15:09:25 -05:00
Taimoor Zaeem and Laurence Isla
1609e32c3a
test: add test when using .aud in jwt-role-claim-key
2025-05-10 16:19:22 +00: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
Wolfgang Walther
07d6d75abe
chore: remove deprecation warning in IO tests
2024-12-22 18:49:20 +01:00
M. Taimoor Zaeem and Steve Chavez
a9d74eba2a
feat: allow not_null value for the is operator
2024-12-19 10:19:41 -05:00
M. Taimoor Zaeem and Steve Chavez
af6b79d4d7
feat: support string comparison for jwt-role-claim-key
2024-12-12 08:47:06 -05:00