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
4a0eb7febe
fix: OpenAPI broken docs link ( #4169 )
2025-06-27 15:14:34 -05: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
Laurence Isla
1879c813c8
fix: detect the correct base type of recursive domains in schema cache for tables and views
...
In OpenAPI it shows the correct base type in properties' definitions (including enums).
2025-06-16 16:53:29 +00: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
Michał Kłeczek and Steve Chavez
a409a2cb94
Extracted JWT validation functions to a separate module.
...
This change introduces a PostgREST.Auth.Jwt module containing JWT validation functions.
The reason to extract them from Auth is to enable JwtCache module to reuse them without introducing module dependency cycle.
2025-06-02 12:26:39 -05:00
Michał Kłeczek and Steve Chavez
7e3fb2ba08
Define MetricsState as record and use Applicative to initialize one
2025-06-02 11:49:01 -05: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 Steve Chavez
aebdc716c7
refactor: move jwt error messages to Error.hs module
2025-05-31 06:41:22 -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
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 Wolfgang Walther
07f51f323e
refactor: remove unused optValue function from Config.hs module
2025-05-14 17:41:57 +00: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 Wolfgang Walther
657cabe757
fix: schema cache loads duplicate objects with different object type but same oid
2025-05-08 19:42:26 +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
steve-chavez
b58253833b
refactor: split preference parsing from userApiRequest
...
This allows obtaining the preferences header before doing the full parse
on userApiRequest. Which is needed by #3507 .
2025-05-02 19:04:02 -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
Taimoor Zaeem and Steve Chavez
cd5a611a1a
refactor: change CallPlan returnings to a Set instead of a List
2025-04-26 10:02:30 -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
Michal Kleczek and GitHub
4d8502371d
fix: purge JWT cache asynchronously in a separate thread
...
Otherwise performance was reduced unnecessarily.
2025-04-18 17:50:32 -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
a1009d1bae
refactor: separate SchemaCacheError from ApiRequestError ( #4010 )
2025-04-13 10:34:17 -05:00
Taimoor Zaeem and GitHub
a6e81a5241
fix: parsing of the for parameter of plan media type ( #4005 )
2025-04-12 06:10:25 -05:00
Taimoor Zaeem and GitHub
f7f87b42ca
feat: add Proxy-Status header for better error response
2025-04-05 13:43:39 -05:00
Taimoor Zaeem and Steve Chavez
2e3dc2d41e
refactor: create error body with ErrorBody typeclass
...
The old error design didn't allow us to reuse error `code`,
`message` etc. With this refactor, these parts of the error body
can be reused for other potential features.
This also removes the `ErrorCode` type and replace the types
with Text codes.
2025-04-02 15:29:39 -05:00
Taimoor Zaeem and Steve Chavez
3c0baecec5
refactor: add pg error and custom error to ErrorCode
...
Our current ErrorCode type wasn't giving us a full picture
of how many different types of errors we are handling. This
PR makes this explicit by including the error code type for
all types of errors.
2025-03-28 11:27:59 -05: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
36b6a2c86b
fix: improve jwt errors
2025-03-13 00:20:54 +01:00
Taimoor Zaeem and Steve Chavez
4819520e3a
refactor: decouple module SchemaCache and ApiRequest
2025-03-10 05:21:51 +01:00
Taimoor Zaeem and Steve Chavez
4ddf33df76
refactor: group jwt errors
2025-03-04 16:54:42 -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
Laurence Isla
5619a5279b
refactor: move the logic to check if the response should be logged into a separate function
2025-02-14 19:52:59 -05:00
Laurence Isla
8157e6ee0b
refactor: remove IO from the Query.hs module
...
Will make logging SQL queries to stderr possible
2025-02-14 19:52:59 -05:00
Taimoor Zaeem and Steve Chavez
e04cd70d83
refactor: move ApiRequestError to Error module
2025-02-13 09:38:18 -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
M. Taimoor Zaeem and Steve Chavez
3f78615dff
refactor: move AuthResult to Auth/Types.hs module
...
The `AuthResult` type does not belong to AppState
module. This commit refactor this by moving it to
a new module `Auth/Types.hs`.
2025-02-04 11:56:42 -05:00