steve-chavez
357400b2b8
feat: schema cache metrics
2024-04-23 19:08:37 -05:00
steve-chavez
653c7955b2
feat: connection pool metrics in admin server
2024-04-23 19:08:37 -05:00
steve-chavez
3e615bd0d9
feat: add log-level=debug
2024-04-22 21:36:29 -05:00
steve-chavez
1bf0c54dd6
feat: log connection pool events on log-level=info
2024-04-15 18:31:51 -05:00
Steve Chavez and GitHub
9d1dc783bf
test: use postgrest.read_stdout in io tests ( #3412 )
...
It's easier to maintain this way in case there are new log lines.
2024-04-15 13:51:23 -05:00
steve-chavez
941ea0f929
test: notify do nothing
2024-03-19 13:22:51 +03:30
steve-chavez
ee8b3ef8fe
fix: log on LISTEN notification
2024-03-19 13:22:51 +03:30
steve-chavez
4b289b1c97
test: requests wait for schema cache load
...
* nix: add postgrest-test-big-schema command
2024-03-15 06:18:26 -05:00
steve-chavez
92ac7e574e
chore: clarify concurrent notifications test
2024-03-14 23:17:05 -05:00
Taimoor Zaeem and GitHub
32e1900370
feat: dump schema cache through admin API ( #3233 )
2024-02-19 21:20:29 -05:00
Andrei Dziahel and GitHub
3432f75ed4
fix: fixes server timings' precision ( #3227 )
...
* test: fix test_io accordingly
2024-02-14 12:26:34 -05:00
Taimoor Zaeem and Steve Chavez
f9ee1f7e73
feat: apply all function settings as transaction-scoped settings
2024-02-09 11:37:01 -05:00
Ivan Kasatenko and GitHub
71887e4b78
feat: dump config through Admin API
2024-02-05 19:16:05 -05:00
Laurence Isla and Steve Chavez
dfa875c8c7
fix: do not log internal db errors like 'acquisition timeout' when log-level=crit
2023-11-27 23:06:40 -05:00
Laurence Isla and Steve Chavez
33891e3a73
feat: log all internal database errors to stderr
2023-11-27 23:06:40 -05:00
Andrei Dziahel and GitHub
df97a5071f
Display an actual TCP port app is bound to ( #3034 )
2023-11-23 18:17:16 -05:00
Andrei Dziahel and GitHub
c3301a1653
feat: implement server-timing-enabled config parameter ( #3064 )
2023-11-22 17:57:50 -05:00
steve-chavez
f7bf2157f3
feat: apply super settings on impersonated roles
...
If they have GRANT SET ON PARAMETER <setting> TO authenticator
2023-11-21 10:54:56 -05:00
Taimoor Zaeem and GitHub
125f10a60f
feat: add statement_timeout set on functions ( #3056 )
2023-11-17 12:36:51 -05:00
Laurence Isla and GitHub
b235227119
allow all origins when server-cors-allowed-origins is an empty string
2023-10-27 21:30:56 -05:00
Taimoor Zaeem and GitHub
d94286c185
feat: add config to specify CORS origins ( #2986 )
2023-10-24 09:38:25 -05:00
steve-chavez
eb238ad678
test: DRY scache/config sleep in io tests
...
Also increase schema cache sleep to 0.2 as 0.1 tends to fail in CI.
2023-10-20 17:53:54 -05:00
Andrei Dziahel and GitHub
dc01c748ae
feat: add more perf counters to Server-Timing ( #2983 )
2023-10-12 09:55:30 -03:00
Taimoor Zaeem and Steve Chavez
3c1cdd434a
feat: add handling=strict/lenient for Prefer header
2023-09-27 15:00:52 -03:00
Taimoor Zaeem and GitHub
a6e3eda5b2
feat: implement JWT caching ( #2928 )
2023-09-25 14:46:55 -03:00
Taimoor Zaeem and GitHub
57fa2719dd
feat: add db-pool-automatic-recovery configuration to disable connection retrying
2023-08-23 21:08:04 -05:00
steve-chavez
5ce020d5bc
fix: impersonated role applying superuser settings
2023-08-09 20:05:22 -05:00
Laurence Isla and GitHub
e752224f14
feat: show PostgREST version in the logs
2023-07-07 10:28:27 -05:00
Laurence Isla and GitHub
7508230760
feat: allow to verify the PostgREST version through SQL
2023-07-03 18:31:32 -05:00
steve-chavez
9a3d453bf4
test: remove big_schema.sql from io tests
...
It was unused(test skipped) and made the scache reload slower, causing
test failure on CI.
2023-06-02 17:45:25 -05:00
Steve Chavez and GitHub
a852b766eb
Fix dropping schema cache reload notifications
...
* test: bad schema reload
* refactor: DRY using the "extra" lib
* refactor: move worker funtions inside AppState
* Also rename Workers.hs to Admin.hs
2023-06-02 12:22:17 -05:00
steve-chavez
aaf77902f6
feat: isolation level for roles/functions
2023-04-15 18:05:04 -05:00
steve-chavez
e572d1d1a2
feat: configurable role settings
2023-04-10 14:27:08 -05:00
Robert Vollmert
963416ae29
test: stabilize log probe in test_pool_acquisition_timeout
...
There's two lines of log output, and their order is not deterministic.
2023-04-06 22:40:22 +02:00
Wolfgang Walther and Wolfgang Walther
68d2d834ba
nix: Update nixpkgs to 2023-03-25
2023-04-04 18:51:34 +02:00
Steve Chavez and GitHub
6a79de67ce
fix: log to stderr on AcquisitionTimeoutUsageError ( #2667 )
...
* refactor: remove uneeded type on checkIsFatal
* dry with a logPgrstError function
2023-02-17 17:38:31 -05:00
steve-chavez
7874bee879
fix: NOTIFY pgrst not reoading the catalog cache
2023-01-28 10:30:29 -05:00
Tuan Le and Steve Chavez
8aa79086d2
fix: consider authentication failure as a fatal error
2023-01-20 13:51:28 -05:00
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
Robert Vollmert
ba1fcfd1e3
feat: introduce pool acquisition timeout ( fixes #2348 )
...
The configuration option db-pool-acquisition-timeout
specifies the time in seconds to wait for the pool to
free up a connection slot. Otherwise, a 504 error is
returned. By default, there is no timeout.
2022-08-31 19:54:34 +02:00
Robert Vollmert
ebc34561fa
tests: show that 'no_pool_connections_available' is broken
2022-08-31 19:13:53 +02:00
Robert Vollmert
5ae9a2b1cf
tests: split test_io.py
2022-08-31 19:13:53 +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
Robert Vollmert
0595e564da
tests: update app settings test
...
The original test no longer makes sense once we drop pool timeouts
with the hasql-pool upgrade.
To somehow test that new connections have the settings, convert it
to flush the pool instead.
2022-08-29 14:55:09 +02:00
Robert Vollmert
9bb0bc1750
tests: validate that requests survive SIGUSR1
2022-08-29 14:55:09 +02:00
Robert Vollmert
35a114a81b
tests: add failing test showing reconfiguration doesn't take effect ( #2401 )
2022-08-02 19:03:45 +02:00
Robert Vollmert
ed988100c6
tests: add a test to verify pool size, and parallel request handling
...
The main point for this test is to verify the test setup for follow-up
tests of pool behaviour.
2022-08-02 19:03:45 +02:00
Robert Vollmert
b6a93aae1f
tests: add a Thread class that catches exceptions
2022-08-02 19:03:45 +02:00
Robert Vollmert
70cae5beed
tests: move pool settings to defaultenv from run
...
This allows overriding them if necessary.
2022-08-02 19:03:45 +02:00
Robert Vollmert
0a24a83fa9
tests: decouple config tests from test-specific postgrest settings
2022-08-02 19:03:45 +02:00