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
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 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
4819520e3a
refactor: decouple module SchemaCache and ApiRequest
2025-03-10 05:21:51 +01: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
steve-chavez
b88191299f
docs: remove schema cache dep from Query
2024-04-10 19:35:23 -05:00
steve-chavez
5ab317caa0
refactor: one entrypoint for Plan/Response/Query
...
- deduplicates timing calculation for the different steps
- enabling query logging later on will be simpler
2024-04-04 08:58:55 -05:00
steve-chavez
c33ca4e60c
refactor: dry timings calculation for openapi
2024-03-28 18:31:42 -05:00
steve-chavez
b75cc853b4
chore: fix compilation
...
The App.hs module was missing NamedFieldPuns.
2024-03-27 19:18:17 -05:00
steve-chavez
745e7868b0
refactor: dry some timings calculation
2024-03-27 18:22:34 -05:00
steve-chavez
a5bb20bbf8
refactor: remove unreacheable 404
2024-03-25 18:17:01 +01:00
Andrei Dziahel and GitHub
cbfff2804d
fix: replace json parser error with generic msg ( #3090 )
2023-12-07 18:04:51 -05:00
Taimoor Zaeem and GitHub
3c1a7f2641
feat: add timezone in Prefer header ( #3024 )
...
* increase reloading timeout in io-tests
* increase memory test by 1M
2023-11-13 14:16:27 -05:00
steve-chavez
4a90e9fbd9
break: db-root-spec default app/openapi+json media
...
BREAKING CHANGE
Can be done later with custom media types
2023-10-26 09:04:02 -05:00
steve-chavez
8d3c9f8435
refactor: move media type logic to Plan module
2023-09-12 19:24:26 -03:00
steve-chavez
d8a91453d1
fix: inconsistent Preference-Applied
...
* Don't apply `tx=commit` if the transaction doesn't commit
* Apply `count=exact`
* Also simplifies the Preference-Applied logic, removing the need for
some functions.
2023-09-12 13:52:49 -03:00
Taimoor Zaeem and GitHub
fbf9bf21c2
feat: add optional nulls=stripped parameter for mediatypes applicatio… ( #2894 )
2023-08-09 18:49:22 -05:00
steve-chavez
856d450775
refactor: stricter plan media type
2023-06-20 19:12:17 -05:00
steve-chavez
aa15f4782e
refactor: remove MTPlanAttrs to doctest
2023-06-18 15:27:25 -05:00
steve-chavez
77cd9387d4
Revert "refactor: plan media type"
...
This reverts commit 3cd3a3f8c6 .
2023-06-18 15:27:25 -05:00
steve-chavez
3cd3a3f8c6
refactor: plan media type
2023-06-17 23:00:32 -05:00
steve-chavez
78821a8fe7
refactor: clarify content negotiation
2023-06-16 17:36:44 -05:00
steve-chavez
fad47324c3
fix: OPTIONS not accepting all available media
2023-06-13 22:00:21 -05:00
Laurence Isla and GitHub
1aed55be68
Ignore the Range header when the method is different than GET
...
fix: bug when using Range header on PATCH/DELETE
- Fix the "message": "syntax error at or near \"RETURNING\"" error
- Fix doing a limited update/delete when an order query parameter was present
breaking: The Range header is now only considered on GET requests and is ignored for any other method
- Other methods should use the `limit/offset` query parameters for sub-ranges
- PUT requests no longer return an error when this header is present
2023-04-03 10:40:25 -05:00
steve-chavez
cae1c67b00
refactor: add iPreferences to ApiRequest
...
It avoids adding a new iPrefer.. to the ApiRequest every time a
preference is added.
2023-03-09 14:40:32 -05:00
Steve Chavez and GitHub
666114f81d
refactor: remove SchemaCache from ApiRequest ( #2695 )
2023-03-06 13:22:35 -05:00
steve-chavez
d7868235d8
refactor: add getRanges func to ApiRequest
2023-02-09 16:46:27 -05:00
steve-chavez
be6c30a0fb
refactor: dry RPC param parsing
2023-01-18 12:26:13 -05:00
Laurence Isla and GitHub
9e567216e9
feat: hint function names/parameters on error
2022-12-01 17:17:45 -05:00
Laurence Isla and GitHub
b8c5d212ea
fix: Fatal error when requesting limit=0 and db-max-rows is set ( #2560 )
2022-11-04 18:14:16 -05:00
Wolfgang Walther and Wolfgang Walther
2289defe4b
refactor: Use stronger typing for SelectItem parser
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-27 21:54:44 +02:00
Steve Chavez and GitHub
0fbb116dd2
add basic ARCHITECTURE.md ( #2503 )
...
* refactor: move ApiRequest a top-level module
* refactor: rename DbStructure to SchemaCache
* refactor: GucHeader inside Response
* refactor: admin app to Workers
2022-10-10 11:24:45 -05:00
Remo Rechkemmer and GitHub
f99fd6cbad
refactor: Split up Types.hs and logically organize modules ( #1793 )
2021-04-11 18:28:01 +02:00
Wolfgang Walther and Wolfgang Walther
ba86b479f8
cov: refactor ApiRequest profile header detection
2021-01-14 16:40:29 +01:00
Wolfgang Walther and Wolfgang Walther
6dd126461e
cov: Remove unused code
2021-01-14 16:40:29 +01:00
Wolfgang Walther and Steve Chavez
dbf99c6ac1
Add support for Prefer tx=rollback
2020-11-22 18:21:06 -05:00
Wolfgang Walther and Steve Chavez
4b4a622a17
fix non-variadic repeated param in variadic function
2020-10-30 10:06:53 -05:00
steve-chavez
8618ffa5fc
perf: shortcut for proc with no variadic arg
...
Also refactor how rpc params are converted to json
2020-10-29 18:53:24 -05:00
steve-chavez
2798ced9b9
Fix charset=utf-8 appending to binary output
2020-10-29 18:53:24 -05:00
Wolfgang Walther and Steve Chavez
302d4e15ad
Allow calling variadic functions with repeated query params or JSON array in body
2020-10-26 17:49:51 -05:00
Wolfgang Walther and Steve Chavez
18cc214c04
refactor moving findProc into ApiRequest to allow parsing parameters differently by proc
2020-10-26 17:49:51 -05:00
Wolfgang Walther and GitHub
6b2767d35c
Additionally allow "bearer" instead of only "Bearer" in Authorization… ( #1558 )
2020-07-16 12:09:40 -05:00
steve-chavez
10c363b588
Remove PUT restriction for all columns/single row
...
Fixes https://github.com/PostgREST/postgrest/issues/1452 .
The single row restriction can be lifted because the
PUT will consider only the first object of the array.
2020-05-02 11:51:32 -05:00
steve-chavez
9a52632024
Fix Content-Profile not working for POST RPC
...
Accept-Profile was applied instead.
Fixes https://github.com/PostgREST/postgrest/issues/1508 .
2020-05-02 11:51:32 -05:00
Robert Vollmert and Steve Chavez
3da5a2875e
Update to protolude 0.3.0
...
The good part is that protolude 0.3.0 builds with GHC 8.10.
The bad part is that this change is a bit painful:
- the default `toS` has changed to no longer convert to and from ByteString
- similarly, `show` no longer outputs ByteString
The changes here are pretty much minimal to keep things compiling; I didn't
see a nice way to work with the new ConvertText class, even though `toUtf8`
seems like it might help if used besides `toS` at just the right spots.
2020-04-23 14:14:21 -05:00
Robert Vollmert and Steve Chavez
79399686db
Remove unused imports (with newer protolude)
...
The changes here are from fixing stack build with LTS 15.8 (GHC 8.8.3)
to be warning-free. Most if not all come from the newer protolude
version, which adds some things like `unwords`.
So to make sure that we don't get unused import warnings with newer
stackage, this both raises the protolude lower bound and removes
these imports.
2020-04-16 11:10:24 -05:00
691bb5640d
Allow multiple schemas to be exposed in one instance ( #1450 )
...
The schema to use can be selected through the headers `Accept-Profile` for GET/HEAD and `Content-Profile` for POST/PATCH/PUT/DELETE.
This is based on the https://www.w3.org/TR/dx-prof-conneg/ttps://www.w3.org/TR/dx-prof-conneg/ spec.
Also increase all memory tests by 1M(otherwise CI fails).
Co-authored-by: Mahmoud Kassem <MKassem@gk-software.com >
Co-authored-by: Mahmoud Kassem <mahmoud_k@mail.com >
2020-03-30 14:04:20 -05:00
steve-chavez
7dade7f466
Add request method and path GUCs
2020-01-21 12:28:05 -05:00
steve-chavez
b20e1150a5
Add GUC for accessing the Authorization header
2020-01-21 12:28:05 -05:00