steve-chavez
e4b98d51be
fix: resource embedding opens empty transaction
...
This required untangling logic from App.hs.
Building/rejecting a plan no longer consumes a pool connection.
* Added io test for failed resource embedding not consuming connection
* optionalrollback to Query.hs and Response.hs
* delete Middleware module
* remove plan logic from App.hs
* remove RequestContext
* remove pkCols logic from App.hs
* remove proc logic from App.hs
* remove config logic from handleRequest
2022-10-07 18:52:57 -05:00
Felix Yan and Steve Chavez
cfaeff8a5a
Allow jose 0.10
...
Builds fine and all tests pass.
2022-10-05 18:22:32 -05:00
steve-chavez
6398dd2b32
refactor: add plan module
...
* rename/add plan dirs
* add read plan func/data
* add call plan func/data
* add mutate plan func/data
2022-10-04 16:13:34 -05:00
steve-chavez
fd67c8480c
refactor: OpenAPI as Response submodule
...
* body after dbstructure
* rename runPgLocals to setPgLocals
2022-10-01 11:05:49 -05:00
steve-chavez
e356783cc9
refactor: add Query.hs module
...
* add readQuery
* add createQuery
* update query
* single upsert query
* delete query
* invoke query
* open api query
2022-09-26 17:28:08 -05:00
steve-chavez
8d369a2195
refactor: add Response.hs module
...
* add response updateResponse
* add singleUpsertResponse
* add delete/invoke response
* add open api response
* add info response
* remove ApiRequest from profileHeader
* contentTypeHeaders only needs ApiRequest
2022-09-25 13:53:11 -05:00
Robert Vollmert
38ecaa44db
encode json body in binary, using modified hasql dep
...
- switch from "unknown" parameter in text format to a "json" parameter in
binary format (no dependency update required)
- use a lazy bytestring "json" encoder (via updated hasql)
2022-09-19 20:49:11 +02:00
Robert Vollmert
e2aa227597
upgrade to hasql-1.6, hasql-pool-0.8.0.2
...
- hasql-pool-0.8
* 'release' now flushes the pool, and no longer destroys it;
'PoolIsReleasedUsageError' is gone compared to our fork
* now supports an acquisition timeout, which we don't use
yet
* lower bound on 0.8.0.2 to fix a Windows build issue
- hasql-1.6
introduces a position parameter to ServerError, which we
ignore
2022-08-30 20:59:26 +02:00
Robert Vollmert
90eaaefe12
upgrade to fork of hasql-pool 0.7.2 ( fixes #2401 )
...
This version of hasql-pool is a simplified rewrite that doesn't use
the resource-pool package. The major API changes are that idle
connections are no longer timed out (and the corresponding setting
is gone), and that `release` makes the pool unusable, where it used
to remain usable and only flushed idle connections.
We depend on a PostgREST fork of 0.7.2 that gives us reliable
flushing, compare https://github.com/PostgREST/hasql-pool/pull/1
- hasql-pool 0.7 removes timing out of idle connections, so
this change removes the db-pool-timeout option.
Given that we were typically running with very high
timeout settings, I don't anticipate the lack of timeout
to introduce new issues, though we might want to consider
introducing some retry-logic down the line when we
encounter connection failures.
- See https://github.com/PostgREST/postgrest/issues/2422 for a
discussion on depending on a forked dependency. Besides adding
the dependency to the nix overlay, we're also adding it to
stack.yaml and a new cabal.project to allow stack/cabal users
to build the project.
2022-08-29 14:55:09 +02:00
steve-chavez
a41380b965
bump version to 10.0.0
2022-08-18 23:35:41 -05:00
steve-chavez
d6ec171bcb
feat: add computed relationships
...
* work for select, mutations, rpc
* overrides detected relationships
2022-08-17 22:50:06 -05:00
Laurence Isla and GitHub
ba3ba9fd5b
refactor: simplify tests where mutations need to be verified in the db
2022-08-15 12:06:54 -05:00
Laurence Isla and GitHub
4ac47df528
tests: Add tests for the pg-safeupdate library
2022-08-10 11:50:57 -05:00
steve-chavez
d24f0c8216
bump version to 9.0.1.20220802
2022-08-02 21:13:35 -05:00
Steve Chavez and GitHub
8911afd079
feat: Allow getting the EXPLAIN plan of a request
2022-07-27 19:33:34 -05:00
steve-chavez
d2df289696
bump version to 9.0.1.20220717
2022-07-17 18:44:13 -05:00
Laurence Isla
5ac4c29a9e
bump version to 9.0.1.20220714
2022-07-14 15:44:31 -05:00
Laurence Isla and GitHub
e0ba6b6d1c
Add security definitions to the OpenAPI output
2022-07-13 22:47:09 -05:00
steve-chavez
8230128ff6
fix: no empty tx on bad HTTP method
2022-07-11 18:21:36 -05:00
steve-chavez
7a7ceaf39a
refactor: rename ContentType to MediaType
...
The core type was wrongly named as the header
2022-07-06 13:47:59 -05:00
steve-chavez
3e83bef9c4
bump version to 9.0.1.20220630
2022-06-30 13:53:33 -05:00
steve-chavez
870f7a39b0
Add PostGIS GeoJSON support
...
Works for GET, POST, PATCH, PUT, DELETE, RPC.
2022-06-22 22:16:44 -05:00
Robert Vollmert
f582798276
ReadQuery: split out to fix record field warning
...
The use of `where_` in DbRequestBuilder issues a warning since
GHC 9.2 as per
https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0366-no-ambiguous-field-access.rst
To disambiguate that, move the type to a separate module and use
the record field names qualified. For symmetry, MutateQuery also
gets its own module.
2022-06-16 10:38:59 +02:00
Robert Vollmert
356bff9cbd
cabal: relax upper bounds to allow GHC 9.2
2022-06-16 10:37:05 +02:00
Robert Vollmert
f5afa419f1
cabal, tests: require wai-logger 2.4.0, adapt tests
...
wai-logger version 2.4.0 fixes log output to not say 'unknownSocket'
for unix sockets.
2022-06-13 13:25:54 +02:00
Robert Vollmert
7531c5490d
cabal: allow hasql-1.5, hasql-dynamic-statements-0.3.*
2022-06-13 13:25:54 +02:00
Robert Vollmert
bb62e559d6
cabal: require jose >= 0.8.5.1 (aeson-2 compat)
...
jose version before 0.8.5.1 lacked an upper bound on
aeson-2, causing build failures with aeson-2 present.
2022-06-13 13:25:54 +02:00
Robert Vollmert
e42bf30aeb
cabal: allow swagger 2.8
2022-06-13 13:25:54 +02:00
Robert Vollmert
48a3d1d516
cabal: update aeson to 2.0.3
2022-06-13 13:16:56 +02:00
Laurence Isla and GitHub
f9688c3553
Upgrade protolude to 0.3.1
2022-06-08 11:41:39 -05:00
steve-chavez
d14f745406
bump version to 9.0.0.20220531
2022-05-31 18:19:02 -05:00
steve-chavez
1cdc9169c7
fix: using CPU while idle
2022-05-31 12:17:36 -05:00
steve-chavez
9aa400c8f3
fix: disable parallel GC for perf on high-core CPU
2022-05-31 12:17:36 -05:00
steve-chavez
1ab11de96c
bump version to 9.0.0.20220516
2022-05-16 14:36:04 -05:00
steve-chavez
980f27a6d1
bump version to 9.0.0.20220502
2022-05-02 16:06:51 -05:00
Laurence Isla
8e86177486
bump version to 9.0.0.20220326
2022-03-26 12:26:47 -05:00
steve-chavez
dcf7ade5bc
bump version to 9.0.0.20220211
2022-02-11 14:47:33 -05:00
Steve Chavez and GitHub
9021c96baa
fix: Keep working when EMFILE is reached ( #2158 )
...
Done by upgrading to warp 3.3.19
2022-02-09 17:27:29 -05:00
Wolfgang Walther
9ca9a54d21
bump version to 9.0.0.20220204
2022-02-04 08:34:51 +01:00
Wolfgang Walther
c894b543b0
bump version to 9.0.0.20220130
2022-01-30 16:15:27 +01:00
Wolfgang Walther and Wolfgang Walther
58f76f3d6d
fix: Return 405 Method Not Allowed for unsupported verbs
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-01-28 19:26:33 +01:00
Wolfgang Walther and Wolfgang Walther
927ff6f1e5
test: Split spec tests into multiple subfolders
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-01-28 19:26:33 +01:00
Wolfgang Walther
c3ade07ad6
feat: Make db-anon-role optional
...
Without db-anon-role, PostgREST will block any anonymous access without hitting the database.
Resolves #1689 , Ref #1823
2022-01-22 15:59:26 +01:00
Wolfgang Walther and Wolfgang Walther
6b5370f145
ci: Add -with-rtsopts=-KxK option to prevent introducing space leaks
...
Resolves #387
2022-01-10 22:09:32 +01:00
Wolfgang Walther and Wolfgang Walther
a25ad42644
Align columns in postgrest.cabal
2022-01-10 22:09:32 +01:00
3c17f97c87
refactor: Make JWT authorization a middleware
...
This follows the style of wai-middleware-auth package and
makes the JWT parsing a middleware.
Co-authored-by: Wolfgang Walther <walther@technowledgy.de >
2022-01-07 20:26:33 +01:00
Wolfgang Walther and Wolfgang Walther
d97bf3b864
refactor: Move each Wai Middleware to a separate file
2022-01-07 20:26:33 +01:00
Steve Chavez and GitHub
65f27653dc
cov: empty coverage overlay ( #2119 )
...
The overlay depended on the version number, which caused errors when upgrading.
Also update cabal description.
2022-01-07 13:06:03 -05:00
steve-chavez
a134d8a493
pre-release: Bump to 9.0.0.20220107
...
Previous pre-release had a wrong date
2022-01-07 11:06:03 -05:00
steve-chavez
3ded567f6d
pre-release: Bump to 9.0.0.20210107
2022-01-07 11:01:59 -05:00