Commit Graph

3350 Commits

Author SHA1 Message Date
Tom Harding
e08b89df65 Allow a custom list of ignored headers in actions
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10968
GitOrigin-RevId: 308a2c92e2c4b075ff2f55c94c82572f2fe85a7b
2024-07-30 15:32:00 +00:00
Samir Talwar
98ee4e3d27 Enforce the session variable name prefix.
In certain circumstances, all HTTP headers were included in the set of session variables. This has now been reduced to only the session variables. This change affects a number of areas, including the HTTP logs, JWT claims, rate limiting, and accessing session variables in Kriti code.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10964
GitOrigin-RevId: fc573cd89f7c0f1a17b9e8a56396f31e70669650
2024-07-29 15:53:06 +00:00
Samir Talwar
a8d1002175 server: Factor out authentication-related code into a new namespace, Hasura.Authentication.
In preparation for tightening up the various ways in which we construct and work with session variables, I am trying to move the behavior into the same module(s) as the data types, so that we can avoid exposing the internals of data structures in favor of smart constructors and conversions.

The session variable code was split between `Hasura.RQL.Types.Roles`, `Hasura.RQL.Types.Session`, and `Hasura.Session`, with the first two containing most of the data structures (and some logic) and the latter containing the rest of the logic. These files do not interact with the rest of `Hasura.RQL`, though they are depended upon by that namespace.

I have refactored these files into a new namespace, `Hasura.Authentication`. It now looks like this:

1. Role types are now in `Hasura.Authentication.Role`.
2. Header constants were moved from `Hasura.Server.Utils` to `Hasura.Authentication.Headers` (plural) to avoid cycles.
3. Header logic was moved from various places into `Hasura.Authentication.Header` (singular) for the same reason.
4. Session variable types and logic live together in `Hasura.Authentication.Session`.
5. User info types and logic live together in `Hasura.Authentication.User`.

This new structure is cycle-free and generally avoids importing the rest of the code, which means we should be able to start pruning the list of exports and locking down session variable construction.

No behavior was changed in this changeset.

The majority of changes are to the imports in a number of files; everything depends on these things. By splitting into multiple files, we also reduce the surface area of an individual import, which was a pleasant side-effect of this work.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10960
GitOrigin-RevId: 7cb962c06483cd9b92b80432aed5cabecb465cda
2024-07-29 06:02:56 +00:00
Tom Harding
4e6394355d Return correct type when an update_many has no arguments
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10954
GitOrigin-RevId: 214163f4f4764ea66194bf26bfe202a807771e90
2024-07-26 16:19:18 +00:00
ashwiniag
e34620a5f3 ci: tag release v2.40.3
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10956
GitOrigin-RevId: caf79b11499d6575cd2971ece2f0ef9e4103b511
2024-07-26 14:41:08 +00:00
Tom Harding
0080e32e3c Remove empty subscription results
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10952
GitOrigin-RevId: 5581a416323877a92aa25a96398a62a88581c165
2024-07-26 09:08:48 +00:00
Tom Harding
4320eb0b71 Add some more Show instances
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10950
GitOrigin-RevId: 20fee6351ee4a8bceabddf12bee50c3101ad78fa
2024-07-25 10:24:39 +00:00
Samir Talwar
934cb3e25e server: Remove headers from error details.
In rare cases, sensitive headers were written to the GraphQL Engine logs. These cases are now handled correctly to avoid logging sensitive information.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10946
GitOrigin-RevId: a9d66532245789a16cf91936d53bbfce19d272a4
2024-07-24 09:32:01 +00:00
Tom Harding
3f15dfd1f5 Don't set columns to NULL when nullable variables are omitted
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10921
GitOrigin-RevId: 01779e0d02d4de1ca56d84f3d11f5e7513b87676
2024-07-19 11:59:52 +00:00
Samir Talwar
b8d7c6039b Use a test PostgreSQL image based on Debian, not Alpine.
Alpine is often slower than Debian (because musl is sometimes slower than glibc) and not how anyone actually deploys PostgreSQL in production.

Most notably, some floating-point computations result in slightly different values, and Debian ships with better support for different locales so sorting text (e.g. with `ORDER BY`) behaves differently.

Let's test against an environment that people are likely to actually use.

As a result, there are slight changes to the results of PostGIS computations in a couple of test cases.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10942
GitOrigin-RevId: 4caed19def23a372fc3930c409514b1c9b385026
2024-07-19 08:18:01 +00:00
Samir Talwar
9cad4dea99 server/tests-py: More useful messages when logging tests fail.
It's useful to know what caused the failure when parsing logs.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10938
GitOrigin-RevId: 53f3036625644a04bc5fd3afb150262515cfec29
2024-07-17 14:47:08 +00:00
Samir Talwar
b2ac4d82bc Remove the version from Docker Compose files.
Recent versions of Docker Compose no longer support this, instead just printing a warning.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10937
GitOrigin-RevId: 97a82968c48f5c09d6cbe74d8ea7386979e46e7a
2024-07-17 13:49:05 +00:00
ashwiniag
43028b6c66 ci: catalog update v2.41.0
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10930
GitOrigin-RevId: 3570f0999d0bafa9b22f89baf38f7494e7bd8de4
2024-07-10 10:48:55 +00:00
Philip Lykke Carlsen
69219958d6 Postgres: Quote custom scalar types in SQL
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10914
GitOrigin-RevId: 1ea4690b801913b4fc3fa8631090e3caa76b1cdc
2024-07-05 12:22:49 +00:00
Samir Talwar
e15cd1ce39 pro: Run Redis' UNLINK command on one key at a time.
Fixes to Pro cache clearing.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10906
GitOrigin-RevId: ea1482e670a6f2431f8e2ca445263aaa0a0b4876
2024-06-25 14:55:43 +00:00
ashwiniag
9d43502e18 ci: tag v2.40.2 release
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10900
GitOrigin-RevId: 51225fa935c270d096cdb717ffdf2ef2d459f5af
2024-06-24 11:26:24 +00:00
Toan Nguyen
a8d60c3f82 server: add session_variables attribute to GraphQL spans
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10896
GitOrigin-RevId: 18faecd1f0107e502ffbc1d3fb39419d2ff1fff0
2024-06-24 10:07:21 +00:00
Toan Nguyen
7aef8f7102 server: add auth hook span and correct server SpanKind for OpenTelemetry spans
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10887
GitOrigin-RevId: b6b947c00a24a30c480427b533ab617f217c6884
2024-06-21 16:59:09 +00:00
Gil Mizrahi
4b884d3d47 add a flag to disable native query validation
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10889
GitOrigin-RevId: 43f2b83fe99b1e0fd514ccaed4888694351fadfc
2024-06-21 11:49:40 +00:00
ashwiniag
cf84e328d6 ci: tag release v2.41.0-beta.1
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10885
GitOrigin-RevId: bd77c5f97e421513f7a30218d6325541ad31fc4c
2024-06-20 11:54:17 +00:00
ashwiniag
af3f34a4b1 ci: tag release v2.40.1
GitOrigin-RevId: 4e8c1a36f863e4959c2f11ed086b2363a42b8c36
2024-06-20 11:13:01 +00:00
Philip Lykke Carlsen
ed97e858f7 Actually thread through where those 60 seconds come from
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10864
GitOrigin-RevId: be54d96199eb34d27dbd60b814b297f658c8be8a
2024-06-17 13:56:12 +00:00
hasura-bot
c2ebffe5f3 Fix typo in error message
GITHUB_PR_NUMBER: 10294
GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/10294

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10872
Co-authored-by: Ross Fenning <1759611+avengerpenguin@users.noreply.github.com>
GitOrigin-RevId: 84a542c5069ee726683d11facfad9c932de6b857
2024-06-17 09:08:11 +00:00
Vishnu Bharathi
5f1784a6f7 ci: tag release v2.36.6
https://hasurahq.slack.com/archives/CKATHV1J7/p1718304995919369

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10871
GitOrigin-RevId: b5bf086fdf03d0e704a13b9767e4e8eed1633e9f
2024-06-14 07:27:14 +00:00
paritosh-08
2eb4a26268 add graphql query to traces
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10868
GitOrigin-RevId: 0d59478586183d98e38d45d3c928f75a3f25e970
2024-06-13 18:32:56 +00:00
Philip Lykke Carlsen
b4737fdd77 Revise JWK refresh documentation
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10863
GitOrigin-RevId: 3de651232cd5d3b5a5e4c78e90afc2cad063fcbf
2024-06-12 12:19:16 +00:00
Rakesh Emmadi
8e664002c5 server: include action type in action-handler-log
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10861
GitOrigin-RevId: 874cff7dcd287aed61e6d4806fb4733c2ba14982
2024-06-11 06:47:24 +00:00
Rakesh Emmadi
7e0d0d2c35 server: Handle and log spock internal errors
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10860
GitOrigin-RevId: 213e48563d91599429ecb91da521dd71f1f9b1c4
2024-06-10 16:06:41 +00:00
Vishnu Bharathi
540ff2289e ci: tag release v2.36.5 and update ubuntu base image
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10859
GitOrigin-RevId: 0431a98d0649e9358d5c9aba48635b5a30e1c47d
2024-06-10 09:56:02 +00:00
paritosh-08
cf41d2abd9 add postgres query to traces
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10853
GitOrigin-RevId: b47c7077fc8fc7115ab05dffe93195abfeb4131d
2024-06-06 18:26:03 +00:00
Brandon Simmons
9b7a2c0b88 server/pro/opentelemetry: Fix missing overflow bucket in OTLP histogr…
…am export

This was a violation of the spec on our part, reported by a New Relic user where this results in an error. For other users the data was correct except that they were not receiving data for the overflow bucket (with upper bounds of infinity)

I don't see other reports in tracker.

See: https://github.com/open-telemetry/opentelemetry-proto/blob/v0.9.0/opentelemetry/proto/metrics/v1/metrics.proto#L550-L551

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10848
GitOrigin-RevId: cbc82e10c76e727881df4f9fbd4cbe4d6bd88969
2024-06-05 10:49:18 +00:00
ashwiniag
0afa2edd40 ci: tag release for v2.40.0-beta.1 and v2.40.0
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10847
GitOrigin-RevId: 018d5187ba3341f384a741098c0367f1d46b2b7c
2024-06-04 15:08:40 +00:00
Samir Talwar
22fcc5f86d Upgrade GHC to v9.6.5.
This contains a few bug fixes and bumps the base libraries.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10835
GitOrigin-RevId: bf96ab647ed95f30f473ca9a2b918a936cd35e32
2024-05-30 09:38:45 +00:00
Samir Talwar
d7f1753c65 CI: Pass --pro-tests to pytests when testing HGE Pro.
This runs additional tests which only pass against HGE Pro.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10841
GitOrigin-RevId: c79681d31514ce83d73210777d8fd1c99f61291d
2024-05-30 06:38:02 +00:00
Samir Talwar
85a2eb7a51 Fix key lookup bugs in the Redis admin APIs.
Redis-based caching: the endpoints related to clearing the cache and gathering cache metrics would sometimes miss keys. This has been remedied.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10843
GitOrigin-RevId: 4fafb17fc570b3dc2e265493f967f8b30eace46a
2024-05-30 05:39:24 +00:00
Samir Talwar
44ad07eeab server/tests-py: Fix up the Redis tests so they run.
This fixes the existing tests around query caching and other Redis-related behaviors so they actually run.

Some of the tests still fail because of a couple of bugs, but the error messages are now meaningful.

They do not yet run in CI. We will enable them once they are fixed.

I added a bit of extra logging; we now log the Redis server host and port. I also left in the `Show` instance derivations I used for debugging, as I don't think they'll harm anything and might be useful in the future.

The changes are as follows:

1. I added a `redis` server to the tests and configured both HGE and the test runner to talk to it.
2. I fixed up the action tests so they set up and tear down correctly, including a fix to the output type of the action.
3. Caching has been implemented for actions with client header forwarding, so I have changed the test accordingly.
4. Tests now fail correctly if the response headers are wrong but the body is correct.
5. I have updated the keys in the response headers as the algorithm for generating them seems to have changed.
6. A few improvements have been made to the Python tests to handle lint warnings and improve logging.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10839
GitOrigin-RevId: 5d31a376346190b5c7b398b4dee84b88a9d1b18b
2024-05-28 15:12:10 +00:00
ashwiniag
152f6017b3 ci: release v2.36.4
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10837
GitOrigin-RevId: cb8ae91a1709022904bf66346e903654eb10ef20
2024-05-27 14:43:06 +00:00
Gil Mizrahi
813d4cee5e Explicitly close the connection after a native query validation step finishes
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10830
GitOrigin-RevId: 30eed2140da4cbc694ec5ef399d6dbbc78ee9007
2024-05-23 11:53:30 +00:00
Daniel Harvey
61f2b6d462 Somewhat improve a bunch of log messages
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10826
GitOrigin-RevId: 5eacf178f27e7fda9bf3014f158e4325d17b1acd
2024-05-22 09:44:19 +00:00
prashy123
227fbc25a1 Adds catalog tag release v2.39.2
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10827
GitOrigin-RevId: 34cfe084cb5219af0fdf1106a05d433012169a9a
2024-05-21 08:47:46 +00:00
Daniel Harvey
9054800f3a Setup scheduled events off the main thread
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10823
GitOrigin-RevId: 379d010c768c7e94198682565852d214fb257291
2024-05-17 16:07:51 +00:00
Tom Harding
cfb7b58c90 Ensure closed streaming subscription handlers are cleared up correctly
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10814
GitOrigin-RevId: dee142742ea1803753cc858df60f6a5ccad8c43f
2024-05-17 13:50:57 +00:00
Daniel Harvey
0201cf5f29 Change 'preparing data' to 'unlocking all locked scheduled events'
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10816
GitOrigin-RevId: cd2d96df900359b52d30458a5bc2ddfb136a78b6
2024-05-14 11:18:54 +00:00
ashwiniag
a710454f9b ci: tag release v2.39.1
GitOrigin-RevId: 4bb72aee05ab6b7bd3af062e6f9eeab70f6b7f8d
2024-05-13 11:46:33 +00:00
ashwiniag
d29be5ad19 catalog version v2.39.0 stable release
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10803
GitOrigin-RevId: 3e796592b4005aae444dc1e93aabb39d77ff5cd8
2024-05-13 11:46:00 +00:00
Anon Ray
aa109ba331 fix: deregister relevant connection pool metrics when part of the source config is modified
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10786
GitOrigin-RevId: 6ba7a1db1df19453c59de3f41d0e0d9de93d3a8e
2024-05-13 11:45:38 +00:00
paritosh-08
25f92f379e add timeout for redis queries
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10788
GitOrigin-RevId: 7a18b077e106812703c73d57b70d9a7f10a7e8ac
2024-05-13 11:45:17 +00:00
ashwiniag
8d596f639e ci: tag release v2.39.0-beta.1 and updates base image
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10779
GitOrigin-RevId: 97e0de3147e9b79c1048c0449181d697c6ea3f5a
2024-04-25 15:14:48 +00:00
Philip Lykke Carlsen
f54b5cd3ef A collection of scripts to setup read replicas wtih ssl
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10777
GitOrigin-RevId: 0243fa6f2b20c2482be904702055d0470e855284
2024-04-24 15:48:14 +00:00
Toan Nguyen
ce5ff4c367 server: support env template for otel status
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10764
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
GitOrigin-RevId: 3dfb3478cefc8ffa9067295293203e06b3eac90c
2024-04-17 07:25:44 +00:00