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
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
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
Steve Chavez and GitHub
6db245aacd
fix: clarify PGRST116 error message ( #3795 )
...
Currently it's redundant and not easy to read.
```
{"message":"JSON object requested, multiple (or no) rows returned",
"details":"The result contains 2 rows"}
```
Now:
```
{"message":"Cannot coerce the result to a single JSON object",
"details":"The result contains an array of 0 objects"}
``
Also correct docs which had a wrong error code.
2024-11-20 12:15:46 -05:00
steve-chavez
80a4edbd2d
chore: add comments on the Observation module
2024-11-15 16:11:26 -05:00
steve-chavez
2766b844a9
fix: always show schema cache load time
...
It used to be that this was only enabled with log-level=debug.
But the default log-level is misleading, for example:
```
$ PGRST_DB_SCHEMAS="apflora" postgrest-with-postgresql-16 -f test/io/big_schema.sql postgrest-run
...
13/Nov/2024:22:08:20 -0500: Config reloaded
13/Nov/2024:22:08:20 -0500: Schema cache queried in 36.3 milliseconds
13/Nov/2024:22:08:20 -0500: Schema cache loaded 326 Relations, 305 Relationships, 7 Functions, 0 Domain Representations, 4 Media Type Handlers, 1194 Timezones
```
The "Schema cache loaded" can take a while to appear, yet the 22:08:20
time is the same. If we reveal the load time this is clarified:
```
13/Nov/2024:22:08:37 -0500: Schema cache loaded in 16770.1 milliseconds
```
2024-11-15 16:11:26 -05:00
Wolfgang Walther and Wolfgang Walther
48aabeb473
nix: add postgrest-with-postgresql-17
...
PostgreSQL 17 has been released:
https://www.postgresql.org/about/news/postgresql-17-released-2936/
Let's make sure CI runs with it, too.
2024-11-12 21:13:31 +01:00
Joel Jakobsson and GitHub
180a96ce48
remove support for Prefer: params=single-object ( #3757 )
...
BREAKING CHANGE
Using this preference was deprecated in 6c3d7a9 , in favor of Functions with an array of JSON objects.
2024-11-04 20:19:08 -05:00
jinjiadu and Wolfgang Walther
765696dfd0
chore: fix some typos in comments
2024-10-28 11:32:10 +01:00
steve-chavez
7e99babec7
feat: log pool maximum size
...
It's important for observability to have an historic trace of the pool
size. Currently we expose it on the metrics endpoint, but not all
deployments use it.
This logs the pool size after the successful connection log to make it
more visible:
<timestamp>: Connection Pool initialized with a maximum size of 4 connections
2024-10-02 22:47:22 -05:00