Taimoor Zaeem and Steve Chavez
58efc2680e
fix: server-host !6 incorrectly binds to IPv4 address
...
Updates streaming-commons to version 0.2.3.1. This resolves #3202 .
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-11-02 12:24:14 -05:00
Taimoor Zaeem and Wolfgang Walther
8180905890
chore(changelog): fix typo in changelog entry
...
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-11-01 09:00:31 +00:00
Taimoor Zaeem and Steve Chavez
db2be093b5
refactor: move dumpQi to Config.hs and clarify quoteQi
...
The `dumpQi` function is only used in the `Config.hs` module, so
it is moved there. This also adds a doctest for `quoteQi` and
clarifies its usage.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-10-30 12:26:29 -05:00
Taimoor Zaeem and Steve Chavez
a688878236
fix: db-pre-config function failing with pg reserved words
...
When db-pre-config is accidentally set to a pg reserved word
like "true", it fails with a confusing error. The function
names should be properly quoted to avoid such errors. This commit
resolves this by quoting the pre-config function name.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-10-29 16:54:24 -05:00
Taimoor Zaeem and Steve Chavez
66f84c5903
refactor: move escapeIdent function to Identifiers.hs
...
Moves the functions `escapeIdent` and `trimNullChars` to
SchemaCache/Identifiers.hs module.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-10-28 09:47:37 -05:00
Taimoor Zaeem and Steve Chavez
5d9b169380
refactor: sort exports of Identifiers.hs and SqlFragments.hs
...
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-10-28 09:47:37 -05:00
Taimoor Zaeem and Steve Chavez
eb908c696f
chore(changelog): update versioning scheme description
...
The changelog description mentioned that we follow semantic
versioning but from now on we don't. Hence updated the description
to reflect new versioning policy.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-10-27 10:00:40 -05:00
Taimoor Zaeem and Wolfgang Walther
6aa5a09c18
ci: automate backports using backport action
...
Creates a workflow using https://github.com/korthout/backport-action .
This allows creating a backport PR by labeling the merged PR with a
`backport <version>` label.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-10-23 10:54:03 +00:00
Taimoor Zaeem and Steve Chavez
07681d1b5b
fix: loading utf-8 config files with ascii locale set
...
Updates configurator-pg to version 0.2.11. This resolves #4386 .
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-10-14 09:05:34 -05:00
Taimoor Zaeem and Wolfgang Walther
7ba5e32bcc
chore: update pull request template according to commitlint
...
Updates pull request template to avoid inconsistencies.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-10-14 09:28:53 +00:00
Taimoor Zaeem and Steve Chavez
66a8d04610
nix: setup linter to lint python files
...
This sets up the `ruff` linter for python code linting.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-10-11 23:38:00 -05:00
Taimoor Zaeem and Steve Chavez
7b85333b88
chore: correct value of log-query in example config file
...
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-10-09 12:17:07 -05:00
Taimoor Zaeem and Steve Chavez
af6edc575d
refactor: move example config file to Config.hs
...
We usually miss adding or changing the example config
file when we do changes to our configurations. Moving
the example config file from CLI module to Config module
would make it less easy to miss doing the associated
changes to the example config file.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-10-09 12:17:07 -05:00
c1d9728dc8
test(pytest): move pytest fixtures to conftest.py
...
There are a few benefits for this:
- All fixtures in one module, so single source of truth.
- The fixtures are automatically imported and injected by pytest
so no explicit imports needed for these.
- Linters won't complain about redefinition of outer scope objects.
Co-authored-by: Jens Troeger <jens.troeger@light-speed.de >
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-10-08 13:54:32 -05:00
Taimoor Zaeem and Steve Chavez
a9a1763328
add: --ready flag for postgrest healthcheck
...
The `--ready` flag is a wrapper around the admin server
`/ready` request. This is done through using an http client
library in postgrest.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-09-28 18:01:10 -05:00
Taimoor Zaeem and Steve Chavez
ab2cd766c2
docs: document config file parameter on CLI page
...
The CLI page had the config file parameter missing. This commit
adds that. Also adds the CLI usage output which shows all
available options. Closes #4300 .
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-09-26 19:26:47 -05:00
Taimoor Zaeem and Steve Chavez
d064faebb9
test(io): remove unused module imports
...
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-09-22 12:38:47 -05:00
Taimoor Zaeem and Wolfgang Walther
98de226dfd
test(io): move reusable functions to postgrest.py
...
Moves the `set_statement_timeout` and `reset_statement_timeout`
function to postgrest.py. This cleans up test_io.py so it only
contains tests. Also makes these functions reusable in other
other tests like test_cli.py.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-09-18 16:51:00 +00:00
Taimoor Zaeem and Wolfgang Walther
ef3a25a626
test(io): remove unused duplicate freeport() function
...
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-09-17 14:41:03 +00:00
Taimoor Zaeem and Wolfgang Walther
089ffae94c
chore: add changelog for v13.0.7
...
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-09-16 09:02:13 +00:00
Taimoor Zaeem and Wolfgang Walther
2d3d6256ab
test(coverage): set hpctixfile to a unique name
...
Sets hpctixfile to be unique for every postgrest process that
is run.
Previously, this was based on the test name, but issues arise
when two postgrest processes are run under the same test, which
generates two files where one gets overwritten by the other.
Consequently, coverage data used to get lost, which is now fixed
with this commit.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-09-15 10:39:13 +00:00
Taimoor Zaeem and Steve Chavez
59ca9e7f0d
test(io): move jwt secret length test to test_cli.py
...
Closes #4316 .
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-09-11 12:01:21 -05:00
Taimoor Zaeem and Wolfgang Walther
19ac284f25
test(io): correct config error tests in test_cli.py
...
Towards fixing #4316 . The config error tests were not
correctly tested. This commit allows capturing stderr
output and then checks the error messages properly.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-09-10 10:05:10 +00:00
Taimoor Zaeem and Steve Chavez
d512d5c105
refactor: move escapeHostName to Network.hs
...
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-09-05 08:51:33 -05:00
Taimoor Zaeem and Wolfgang Walther
0d7986bd71
chore: add changelog for v13.0.6
...
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-09-02 08:16:28 +00:00
Taimoor Zaeem and Steve Chavez
41b6ebea58
refactor: deduplicate host resolution logic and observations
...
Replaces the "API server listening on unix socket" with simpler
"API server listening on " observation. This allows refactoring
redundant code.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-09-01 15:00:20 -05:00
Taimoor Zaeem and Steve Chavez
ef9ac61d9e
test(log): postgrest listening on unix socket observation
...
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-08-30 13:43:18 -05:00
Taimoor Zaeem and Steve Chavez
7a2840fba6
fix: format of IPv6 address logged at PostgREST startup
...
The IPv6 address logged at the startup like `::1:80` was
wrong because the port isn't clearly separated. This commit
corrects it, now logging as `[::1]:80`.
This is done in accordance to RFC 3986. In short, we did this
have a clear separation between the port and host because
the components of an IPv6 are separated with the ':' character.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-08-29 13:02:20 -05:00
Taimoor Zaeem and Wolfgang Walther
09c1e2b24c
chore: add changelog for v13.0.5
...
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-08-25 06:51:51 +00:00
Taimoor Zaeem and Steve Chavez
dfe5ba3863
fix(admin): metrics endpoint not responding with Content-Type header
...
The prometheus metrics text format requires `Content-Type` header
for correct scraping which fails otherwise. Closes #4271 .
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-08-20 16:13:55 -05:00
Taimoor Zaeem and Steve Chavez
0ae1cdfc66
refactor(query): make fromJsonBodyF function more readable
...
The `fromJsonBodyF` function was very unreadable and making
changes were difficult. This commit improves the readability
for easier future changes and improvements.
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-08-19 11:58:19 -05:00
Taimoor Zaeem and Steve Chavez
6a37e1c37b
chore: correct recent change log entry
...
Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com >
2025-07-30 02:46:01 -05:00
Taimoor Zaeem and Steve Chavez
96571aa0f4
refactor: move request body to a Payload.hs module
2025-07-26 08:50:56 +02:00
Taimoor Zaeem and GitHub
5e0da40ac4
chore: update README.md and CONTRIBUTING.md ( #4218 )
...
- Moved the CONTRIBUTING.md file to project root.
- Fixed broken nightly release link.
- Update README.md
2025-07-22 13:50:00 +00:00
Taimoor Zaeem and Wolfgang Walther
96bbbe35e1
test: adjust jwt claims error test to avoid failure
...
The JWT claims IO test fails too often. This breaks our
workflows. This commit adjusts the edge cases in test to
prevent flakiness.
2025-07-19 12:16:29 +00:00
Taimoor Zaeem and Steve Chavez
d4caa0f5f5
fix: empty spread embeddings return unexpected SQL error
...
Fixes the SQL error from postgres when an empty spread embeddings
like `...table()` is requested.
2025-07-13 14:16:27 -05:00
Taimoor Zaeem and Steve Chavez
4daa4533d3
docs: horizontal filtering on table-valued functions
2025-07-02 14:28:49 -05:00
Taimoor Zaeem and Steve Chavez
e37385c893
nix: run hlint on multiple threads
2025-06-30 12:14:06 -05:00
Taimoor Zaeem and GitHub
4a0eb7febe
fix: OpenAPI broken docs link ( #4169 )
2025-06-27 15:14:34 -05:00
Taimoor Zaeem and Steve Chavez
f295130544
chore: update postgrest scripts in nix README.md
...
Adds `postgrest-commitlint` and removes `postgrest-nixpkgs-upgrade`.
2025-06-26 12:16:49 -05:00
Taimoor Zaeem and Steve Chavez
c7e5db34e4
chore: add changelog for v13.0.3 and v13.0.4
2025-06-20 09:45:04 -05:00
Taimoor Zaeem and Wolfgang Walther
330df05891
ci: only run commitlint on github PRs
...
The `commitlint` script disrupts our release workflow if failed
on push event. We also don't need it on push because once pushed,
git commit history can't be amended.
2025-06-18 17:03:04 +00:00
Taimoor Zaeem and Steve Chavez
63a492291a
nix: allow mixed casing in commitlint subject message
2025-06-17 18:10:37 -05:00
Taimoor Zaeem and Steve Chavez
0b69ad0e65
ci: fix commitlint CI failure
2025-06-17 18:10:37 -05:00
Taimoor Zaeem and GitHub
38332d9462
nix: add commitlint to lint commit messages ( #4128 )
...
Adds a new script `postgrest-commitlint` to lint commit messages.
2025-06-17 16:15:14 -05:00
Taimoor Zaeem and GitHub
c318d46469
fix: jwt-aud config not failing when set to invalid URI ( #4140 )
...
The `jwt-aud` config was not validated when containing ':'
character according to RFC 3986. This fix validates it and
fails at startup if it is invalid.
2025-06-16 15:40:47 -05:00
Taimoor Zaeem and GitHub
2eb9e4a8a4
test: upserts with case sensitive table and sequence name ( #4131 )
...
Closes #3712 .
2025-06-07 12:39:50 -05:00
Taimoor Zaeem and Steve Chavez
dc46aea15e
fix: max-affected preference not failing for rpc with strict handling
2025-06-03 14:31:17 -05:00
Taimoor Zaeem and Wolfgang Walther
4ae5db57dc
chore: add changelog entry for v13.0.1
2025-06-02 06:14:50 +00:00
Taimoor Zaeem and Steve Chavez
c5ccf742d6
feat: improve error details of PGRST301 error
2025-05-31 13:30:32 -05:00
Taimoor Zaeem and Steve Chavez
aebdc716c7
refactor: move jwt error messages to Error.hs module
2025-05-31 06:41:22 -05:00
Taimoor Zaeem and GitHub
ea9d4f49b2
fix: log db-schemas and db-extra-search-path in schema cache load error ( #4108 )
2025-05-30 10:13:19 -05:00
Taimoor Zaeem and Steve Chavez
000cb87ec1
fix: allow db-extra-search-path to accept empty value
2025-05-29 14:25:28 -05:00
Taimoor Zaeem and Steve Chavez
94d6ac2f2e
docs: explain use of max-affected preference with rpc
2025-05-22 12:23:52 -05:00
Taimoor Zaeem and Steve Chavez
5f9e0a2739
test: add missing tests for max-affected preference with rpc
2025-05-22 12:23:52 -05:00
Taimoor Zaeem and Steve Chavez
1258ea663c
docs: add note in JWT Role Extraction section
...
Add a note describing that the used JSPath DSL does not
strictly follow the JSONPath as described in RFC 9535
2025-05-18 13:36:43 -05:00
Taimoor Zaeem and Wolfgang Walther
07f51f323e
refactor: remove unused optValue function from Config.hs module
2025-05-14 17:41:57 +00:00
Taimoor Zaeem and Steve Chavez
8b63ea82ec
test: add test for duplicate entries in pg_description with same OID
2025-05-14 09:31:48 -05:00
Taimoor Zaeem and GitHub
8390df0fa5
fix: jwt error return status 400 for invalid role ( #4081 )
2025-05-13 15:09:25 -05:00
Taimoor Zaeem and Laurence Isla
1609e32c3a
test: add test when using .aud in jwt-role-claim-key
2025-05-10 16:19:22 +00: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
Taimoor Zaeem and Steve Chavez
bf79766a9b
docs: add example to generate JWTs using openssl
2025-05-02 16:59:15 -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
Taimoor Zaeem and Wolfgang Walther
98fcbedca5
chore: add changelog for v12.2.11
2025-04-23 07:34:19 +00:00
Taimoor Zaeem and Steve Chavez
fdf902319d
fix: regression with parameter charset=utf-8 in mediatype
2025-04-20 16:10:33 -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
61a3c7b9e8
docs: add note that ordering of columns is not enforced ( #3999 )
2025-04-09 16:40:52 -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
c7da7fab3a
docs: mention that updates also supports specifying columns and missing pref
2025-04-02 12:59:18 -05:00
Taimoor Zaeem and Steve Chavez
ddd7d98652
docs: explain missing preference header
2025-04-02 12:59:18 -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
Taimoor Zaeem and Steve Chavez
f91f47ff57
docs: mention log-level setting in the logs section
2025-03-26 11:25:57 -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
a1c0a8ce6d
docs: add missing max-affected violation error
2025-03-21 08:40:52 -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
dd29e74150
test: fix config value in io test
2025-03-13 10:19:29 +01:00
Taimoor Zaeem and Steve Chavez
e3041fc4a0
test: correct jwt parse time test
2025-03-13 10:19:29 +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
53ca035e9b
test: rename module NoJwtSpec.hs -> NoJwtSecretSpec.hs
2025-03-06 10:30:02 -05: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
Taimoor Zaeem and Steve Chavez
66e966d864
refactor: move jwt caching logic to Auth/JwtCache.hs
2025-02-17 14:19:40 -05:00
Taimoor Zaeem and Steve Chavez
e04cd70d83
refactor: move ApiRequestError to Error module
2025-02-13 09:38:18 -05:00
Taimoor Zaeem and GitHub
560c511f81
docs: add missing jwt claims and clock skew ( #3908 )
2025-02-12 15:38:20 -05:00
M. Taimoor Zaeem and Wolfgang Walther
e4f3c2cf3b
changelog: Add v12.2.8
2025-02-11 21:27:53 +01: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
M. Taimoor Zaeem and Wolfgang Walther
f4889160a0
changelog: Add v12.2.4, v12.2.5 and v12.2.6
2025-01-31 20:33:44 +01:00
Taimoor Zaeem and GitHub
71a147392a
fix: jwt cache is not purged ( #3801 )
2025-01-29 14:53:10 -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
Taimoor Zaeem and Steve Chavez
8cbcf9867b
feat: add config db-hoisted-tx-settings to allow only hoisted function settings
2024-05-21 19:50:03 -05:00