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
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 Wolfgang Walther
8f4a200f33
fix: OpenAPI broken docs link
2025-06-28 07:58:14 +00: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
Laurence Isla
6dcb0e0b02
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 18:23:00 -05: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
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
b77605e0d3
refactor: remove unused optValue function from Config.hs module
2025-05-30 14:35:54 +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
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
Taimoor Zaeem and GitHub
71a147392a
fix: jwt cache is not purged ( #3801 )
2025-01-29 14:53:10 -05:00