Wolfgang Walther
db16683ba2
ci: Simplify loadtest workflow
...
The two different PR and Merge jobs were introduced to be able to test the main branch
against the latest release. However, this is now included in the PR job, too, so no need
for the two separate jobs anymore.
2024-02-10 20:15:09 +01:00
Wolfgang Walther
8a3b0c60ad
ci: Remove nix actions cache and prepopulate job
...
The nix actions cache currently leads to repeated "no space left on
devices" errors for jobs in CI.
The prepopulate job is useless without the nix actions cache, so it
will go away at the same time.
2024-02-10 12:35:56 +01:00
Wolfgang Walther
066fa8b6aa
ci: Improve cache keys and their restore prefixes
...
The cache key for nix now depends on default.nix and shell.nix in the root folder and all
.patch files in the nix folder. Those may change the output of our nix derivations, so
must be included. At the same time, there is no reason to include the actions/setup-nix
folder. This would only lead to new caches being created every time we update one of the
dependent actions in this file. Finally, we never restore caches with a different id any-
more. There is no point in having the style job fall back to the static cache for example.
The cache keys for cabal can be more explicit: We only have one postgrest.cabal and one
relevant cabal.project file. We were missing the cabal.project.freeze file, though, which
affects the dependencies used, too.
2024-02-09 18:43:53 +01:00
Wolfgang Walther
49584728b6
nix: Remove broken docker-based nix development environment
...
It used to be possible to spin up a nix environment via docker container this way,
but the upstream nixos/nix image has changed and the docker build doesn't succeed
anymore. Since nobody complained about that, we can assume it is not being used
anyway.
2024-02-06 18:27:20 +01:00
Wolfgang Walther
868913d179
ci: Replace seed cachix workflow with new daemon mode
...
cachix-action v14 added a new daemon mode, which pushes new derivations to the store
as soon as they have been built. This replaces the seed cachix workflow nicely by just
pushing from all jobs directly.
2024-02-06 10:20:02 +01:00
Wolfgang Walther
74d8ddec36
nix: Make postgrest-push-cachix more efficient by passing each derivation only once
2024-02-06 10:20:02 +01:00
Wolfgang Walther and Wolfgang Walther
ea02729ebd
nix: Use -split-sections with pkgsStatic to make static executable smaller again
...
This works around https://github.com/NixOS/nixpkgs/issues/286285 to use -split-sections
in a cross-compiling scenario. This will reduce the size of the static executable and also
remove the remaining references to /nix/store/.. reducing closure size dramatically.
This also fixes the docker image blowing up in size since we switched to pkgsStatic.
2024-02-06 10:19:31 +01:00
Wolfgang Walther and Wolfgang Walther
9fe0f50709
ci: Add freebsd executable to releases
...
This was temporarily disabled, because of timeouts in Cirrus. This seems to work well again.
2024-02-06 10:19:31 +01:00
Wolfgang Walther and Wolfgang Walther
1c02e1e3a0
ci: Prevent creating artifact for dynamic ubuntu build
...
This is not used in the release process anyway, because we are using the static build.
2024-02-06 10:19:31 +01:00
Wolfgang Walther and Wolfgang Walther
7d096e5de5
ci: Update stack.yaml.lock
2024-02-06 10:19:31 +01:00
Wolfgang Walther and Wolfgang Walther
0eca2954b3
ci: Reduce file size of cabal and stack based builds
...
By passing -split-sections to all dependencies, GHC will link only the
modules we actually use and not the full package for each dependency.
This does neither work on MacOS nor Windows, thus we don't do it for
stack right now.
Stripping unused symbols in CI will further decrease the size of those files.
2024-02-06 10:19:31 +01:00
Wolfgang Walther and Wolfgang Walther
cc9b725005
nix: Remove libkrb5 references from static executable
2024-02-06 10:19:31 +01:00
Wolfgang Walther and Wolfgang Walther
4a1b9a4609
nix: Remove libpq reference from static executable
2024-02-06 10:19:31 +01:00
Wolfgang Walther and Wolfgang Walther
f51090f3d1
nix: Check static executable for /nix/store references
...
This makes the static build fail in case any references to the nix store
are left over. Those will increase the closure size of the nix derivation
massively and lead to a huge docker image.
At the same time, those references will not be functional on non-nix systems,
to which the static executable is distributed, anyway.
2024-02-06 10:19:31 +01:00
Wolfgang Walther
310d04065e
test: Make failing loadtest fixtures pass again
...
PR #2358 added a bulk insert to the loadtest. However this broke the regular insert test,
which just returned 400 Bad Request because of a missing PK value since. Adding the new
id column in the payload to the ?columns= argument fixes that.
2024-02-05 21:40:21 +01:00
Wolfgang Walther
63ff6d1f15
nix: Fix postgrest-loadtest after vegeta update
...
The recent nixpkgs update gave us a new version of vegeta. This version includes a new
DNS cache features - which unfortunately doesn't play well with unix sockets. Disabling
the DNS cache makes requests succeed again.
2024-02-05 21:38:23 +01:00
Wolfgang Walther and Wolfgang Walther
43f552dbab
ci: Improve caching for static and dynamic postgrest nix packages
2024-01-26 23:24:12 +01:00
Wolfgang Walther and Wolfgang Walther
c43696c9a6
nix: Move postgrest-check-static inside derivation of static package
...
This will make the static build fail if we're not producing a static binary.
2024-01-26 23:24:12 +01:00
Wolfgang Walther
071a3d436f
ci: Fix Seed-Cachix jobs on linux
2024-01-26 18:10:38 +01:00
Wolfgang Walther and Wolfgang Walther
c94aa9ccd9
fix: Build static postgrest with GSSAPI support
...
Resolves #2815
2024-01-26 17:17:05 +01:00
Wolfgang Walther and Wolfgang Walther
dcb6c5bb13
nix: Bump libpq version to link against v16
2024-01-26 17:17:05 +01:00
Wolfgang Walther and Wolfgang Walther
85fbb233a7
nix: Build only libpq instead of full postgresql package
2024-01-26 17:17:05 +01:00
Wolfgang Walther and Wolfgang Walther
259d97acee
nix: Build static postgrest executable via pkgsStatic
...
This replaces the build via static-haskell-nix and will hopefully make
it possible to cross compile in the future.
2024-01-26 17:17:05 +01:00
Wolfgang Walther and Wolfgang Walther
3a639c7172
ci: Fix FreeBSD build on cirrus
2024-01-25 21:27:17 +01:00
Wolfgang Walther and Wolfgang Walther
d75be243ac
ci: Build with GHC 9.8.1 via Cabal
2024-01-25 21:27:17 +01:00
Wolfgang Walther and Wolfgang Walther
2ffb97991d
ci: Build with GHC 9.6.4 via Cabal
...
This confirms that building with GHC 9.6.x works already, even if we can't
switch to it for the nix and stack builds, yet.
2024-01-25 21:27:17 +01:00
Wolfgang Walther and Wolfgang Walther
2e298824d6
deps: Replace postgresql-libpq fork with upstream v0.10
...
Our changes to reduce memory usage have been merged and released
upstream, so no need for the fork anymore.
2024-01-25 21:27:17 +01:00
Wolfgang Walther and Wolfgang Walther
6682baebd2
nix: Update nixpkgs and build with GHC 9.4.8
2024-01-18 18:54:33 +01:00
Wolfgang Walther and Wolfgang Walther
e4c60889ee
nix: Make postgrest-nixpkgs-upgrade take the latest stable version
...
Previously this command upgraded to the latest unstable version of nixpkgs,
but this was often broken. Taking the latest stable branch should give
better results.
2024-01-18 18:54:33 +01:00
Wolfgang Walther
6920a88dc0
nix: Fix postgrest-release on rel-branches pushing to the right branch
2023-10-25 19:09:21 +02:00
Wolfgang Walther
966f8df33f
changelog: update to 11.2.2
2023-10-25 19:08:04 +02:00
Wolfgang Walther
98bd1de1cd
nix: Allow running postgrest-release on rel- branches
2023-10-25 16:29:03 +02:00
Wolfgang Walther
1442e02f5f
chore: Allow seed-cachix job to keep running when part of the matrix fail
2023-04-04 18:52:52 +02:00
Wolfgang Walther and Wolfgang Walther
68d2d834ba
nix: Update nixpkgs to 2023-03-25
2023-04-04 18:51:34 +02:00
Wolfgang Walther and Wolfgang Walther
44dd73adcc
fix: Embedding views with partial FK references broken
...
This is a regression introduced in d2719420f4 .
Fixes #2548
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-31 18:15:06 +01:00
Wolfgang Walther and Wolfgang Walther
2c31c64325
fix: Detect all relationships when multiple view columns reference the same table column
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-28 18:12:58 +02:00
Wolfgang Walther
425ab70ec7
fix: Make UPSERT work with PostgreSQL 15
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-28 16:18:42 +02:00
Wolfgang Walther
2cce82bdd5
chore: Upgrade nixpkgs to 2022-10-28
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-28 14:27:56 +02:00
Wolfgang Walther and Wolfgang Walther
e274706088
fix: Ignore leading and trailing spaces in column names, fts languages and casts
...
Fixes #2285
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-27 21:54:44 +02:00
Wolfgang Walther and Wolfgang Walther
da632ac7d3
refactor: pIdentifierChar -> pIdentifier
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-27 21:54:44 +02:00
Wolfgang Walther and Wolfgang Walther
b78b096ae4
fix: Stricter query string parsing - no empty fts lang
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-27 21:54:44 +02:00
Wolfgang Walther and Wolfgang Walther
bbbc308b6f
fix: Stricter query string parsing - no empty casts
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-27 21:54:44 +02:00
Wolfgang Walther and Wolfgang Walther
ecf54bef43
test: Add basic doctests for pFieldName
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-27 21:54:44 +02:00
Wolfgang Walther and Wolfgang Walther
8c0d187044
fix: Stricter query string parsing - no hints or join types in regular fields
...
Fixes #2362
Reference #2475
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-27 21:54:44 +02:00
Wolfgang Walther and Wolfgang Walther
ae8625a7b6
fix: Stricter query string parsing - no jsonpath in embedding
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-27 21:54:44 +02:00
Wolfgang Walther and Wolfgang Walther
7c7a04a27e
test: Add doctests for pFieldForest
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-27 21:54:44 +02: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
Wolfgang Walther and Wolfgang Walther
772d3c4e01
chore: Update cachix actions
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-27 21:54:30 +02:00
Wolfgang Walther and Wolfgang Walther
f9f572a5d2
fix: Treat non-setof computed relationships as M2O/O2M
...
Fixes #2481
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-27 19:50:38 +02:00
Wolfgang Walther and Wolfgang Walther
88b5966a44
nix: Remove deprecation warning for dockerTools.buildImage { contents }
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-27 19:29:26 +02:00
Wolfgang Walther and Wolfgang Walther
3d2880d40a
fix: Return status code 200 when PATCHing without changing rows
...
This partially reverts #1257 / #1272 / 553531711b where the 404 was introduced.
A 406 error is still returned when requesting a single object via accept header.
Returning an error when no rows are changed can be introduced through a different syntax again, see the discussion in #2164 .
Fixes #2343
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-27 19:28:06 +02:00
Wolfgang Walther and Wolfgang Walther
958e052de5
chore: Clean up CHANGELOG
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-27 17:39:04 +02:00
Wolfgang Walther and Wolfgang Walther
793acd276a
test: Non-existing config options should not break anything
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-27 17:39:04 +02:00
Wolfgang Walther
9be6747b66
fix: Prevent infinite recursion with self-referencing views
...
Fixes #2283
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-26 21:33:30 +02:00
Wolfgang Walther
3bee6b1e27
fix: Fix regression in openapi output with mode follow-privileges
...
This was introduced in d5b92a433a . Before
this change, the OpenApi output would have <pk/> annotations for views,
too. After this change, they got lost for mode follow-privileges, because
the pks are refined in haskell code, but the request only fetches all
the tables again, but not the view dependencies.
This fix changes follow-privileges to only fetch a list of accessible
tables, which is then used to filter the tables in the schema cache.
Fixes #2356
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-26 21:29:58 +02:00
Wolfgang Walther and Wolfgang Walther
6fe1617348
fix: Expose PKs from all tables in a view
...
Fixes a regression in d2719420f4 .
Resolves #2458
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-24 16:49:32 +02:00
Wolfgang Walther and Wolfgang Walther
2158f3d039
fix: Embed views with different column ordering correctly
...
This fixes a regression introduced in d2719420f4 .
The order of relColumns in the schema cache is now consistently matching the order of columns in foreign key definitions.
Resolves #2518
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-24 16:49:32 +02:00
Wolfgang Walther and Wolfgang Walther
ca338ae401
test: Remove unused no_pk_view from fixtures
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-24 16:49:32 +02:00
Wolfgang Walther and Wolfgang Walther
5135fea797
test: grant privileges on all test tables by default
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-10-24 16:49:32 +02:00
Wolfgang Walther and Steve Chavez
9d3bbc736b
nix: Add hint how to derive docker image
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-09-20 16:39:37 -05:00
Wolfgang Walther and Robert Vollmert
ff56c3adf4
nix: port openssl patch to updated nixpkgs
2022-06-13 13:25:54 +02:00
Wolfgang Walther and Wolfgang Walther
41a4396147
fix: Remove uncallable functions from schema cache and OpenAPI output
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-02-08 09:08:27 +01:00
Wolfgang Walther and Wolfgang Walther
d9f7f6f509
refactor: Remove pg_catalog prefix from schema cache queries
...
Since the search path is voided at the beginning, there is no need to qualify those.
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-02-08 09:08:27 +01:00
Wolfgang Walther and Wolfgang Walther
bd62008e1c
fix: Remove aggregates, procedures and window functions from schema cache and OpenAPI output
...
Aggregates and Window functions can't be called as RPCs in a useful way.
Procedures are not supported right now, but might be added later.
Resolves #2101
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-02-05 17:48:22 +01:00
Wolfgang Walther and Wolfgang Walther
ded8981368
fix: Take PG version into account in --dump-schema
...
The PG version is only read by the Connection Worker, which is not used in the case dump-schema. Now, the pg version is read in the schema cache queries directly, avoiding this problem in all cases.
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-02-05 17:48:22 +01:00
Wolfgang Walther and Wolfgang Walther
52d628f1ed
fix: Return 204 No Content without Content-Type for RPCs returning VOID
...
Resolves #2001
BREAKING CHANGE: Previously, those RPCs would return "null" as a body with Content-Type: application/json.
2022-02-05 09:28:28 +01:00
Wolfgang Walther
9ca9a54d21
bump version to 9.0.0.20220204
2022-02-04 08:34:51 +01:00
Wolfgang Walther
bf689565a5
fix broken link in docker hub description, resolves #2148
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-02-04 08:34:35 +01:00
Wolfgang Walther and Wolfgang Walther
9f1b5c0a81
feat: Support accessing array items and fields of composite types through json operators
...
This is supported in select=, in filters and in order=.
Resolves #1543
Resolves #2075
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-02-03 08:13:38 +01:00
Wolfgang Walther and Wolfgang Walther
87bd8e72cf
fix changelog
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-02-03 08:13:38 +01:00
Wolfgang Walther and Wolfgang Walther
8934190d43
nix: Add postgrest-release tool
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-01-30 19:52:35 +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
8980b09419
refactor: Sort error types
...
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 and Wolfgang Walther
8a722e2cfe
refactor: Replace elem with pattern matching to highlight missing code coverage
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-01-28 19:26:33 +01:00
Wolfgang Walther and Wolfgang Walther
271c329677
nix: Fix postgrest-git-hooks causing merge conflicts when staging files partially
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-01-28 19:26:33 +01:00
Wolfgang Walther and Wolfgang Walther
c63420f0e7
nix: Fix postgrest-git-hooks disable not working
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-01-28 19:26:33 +01:00
Wolfgang Walther and Wolfgang Walther
2fe2c9104b
ci: Fix weeder not stopping CI on error
...
Removes dead code that was unnoticed
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-01-28 17:12:32 +01:00
Wolfgang Walther and Wolfgang Walther
0ea36fc039
ci: Fix windows build failing because of outdated keyring
...
Signed-off-by: Wolfgang Walther <walther@technowledgy.de >
2022-01-28 17:12:32 +01:00
Wolfgang Walther and Wolfgang Walther
fc7113e52e
fix: Remove trigger functions from schema cache and OpenAPI output
...
Trigger functions can't be called directly from SQL and can't be called
via the /rpc prefix either - it makes no sense to expose them in the
OpenAPI output. And we don't need to cache them in the schema cache
either.
Best practice would be to keep the trigger functions in a non-exposed
schema anyway.
2022-01-28 16:45:36 +01:00
Wolfgang Walther and Wolfgang Walther
fae1e168a7
Fix memory tests timing out after c3ade07
2022-01-24 14:56:06 +01:00
Wolfgang Walther and Wolfgang Walther
d2791ea0e5
Sort example config alphabetically
2022-01-24 14:56:06 +01:00
Wolfgang Walther and Wolfgang Walther
f4637c64c9
Remove db-root-spec from example config file
...
We are not going to support this officially right now.
2022-01-24 14:56:06 +01:00
Wolfgang Walther and Wolfgang Walther
1b9a30cff4
Make db-uri, db-schemas and db-anon-role optional in example config file
2022-01-24 14:56:06 +01:00
Wolfgang Walther and Wolfgang Walther
5a627e76b2
format comments in example config consistently
2022-01-24 14:56:06 +01:00
Wolfgang Walther
d9e016be8b
feat: Allow running postgrest without configuration
...
Resolves #1823
2022-01-22 15:59:26 +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
05b5ecd23b
Reformatting of some test-cases and removal of superfluous comments.
2022-01-22 15:13:21 +01:00
Wolfgang Walther
dbbde6aae1
feat: Make db-schemas optional
...
Resolves #1769 , Ref #1823
2022-01-22 15:13:21 +01:00
Wolfgang Walther
9ed30c0ba4
feat: Make db-uri optional
...
The default is now "postgresql://" which falls back to LIBPQ environment variables.
Resolves #1991 , Ref #1823
2022-01-22 15:13:19 +01:00
Wolfgang Walther
ec09b87940
test: Make io tests use environment variables instead of config files where possible.
...
Load jwt secret from file instead of stdin in tests, because stdin is not supported when reloading the config. Resolves #2126 .
2022-01-22 15:10:25 +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
Wolfgang Walther and Wolfgang Walther
995215c6a5
fix: Read database configuration properly when = is present in value
...
Resolves #2120
2022-01-10 09:24:49 +01:00
Wolfgang Walther and Wolfgang Walther
4b841dba61
refactor: Reformat db-config query
2022-01-10 09:24:49 +01:00
Wolfgang Walther and Wolfgang Walther
9639cd5751
feat: Add current user to apache-style request logging.
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
Wolfgang Walther and Wolfgang Walther
8b63d928ae
test: Reorganize test/ folder into one subdirectory for each test type
2022-01-07 13:10:36 +01:00
Wolfgang Walther and Wolfgang Walther
8060fe3559
Remove unused dependencies from postgrest.cabal
2022-01-07 12:07:48 +01:00