Commit Graph

2290 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
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
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
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
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
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
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
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
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
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
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
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
hasura-bot
98938047b7 Alter log level of garbage collector message (fix #10172)
GITHUB_PR_NUMBER: 10173
GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/10173

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10738
Co-authored-by: Adam Malone <3642111+typhonius@users.noreply.github.com>
GitOrigin-RevId: 3926af6bbac0081f9510e1bdcc9a5d2c5fa2c515
2024-03-19 16:29:26 +00:00
Samir Talwar
4d1254bdce server: Log the query execution time on errors.
The server now logs timing information on error when possible, e.g. when an SQL query fails.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10730
GitOrigin-RevId: e63a773d6c58df27d23b01f53b9b895dcf290e55
2024-03-18 15:51:22 +00:00
paritosh-08
b0a3ff1d0f add operation_name and parameterized_query_hash to hasura_graphql_requests_total metric
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10725
GitOrigin-RevId: b19df2a17e94e72dde790a54e01e290b581aa560
2024-03-18 14:45:09 +00:00
Rakesh Emmadi
083f321feb server: improve recreateTriggerIfNeeded arrow function
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10724
GitOrigin-RevId: dc8e42da21801cc9a2f49e1c126d26b6d5f2e766
2024-03-14 08:19:52 +00:00
pranshi06
d4740a08a1 server: fix behaviour of error field for query and subscription in asynchronous actions
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10685
GitOrigin-RevId: a0deb276814b63c784a820964d3dbb320ffedae9
2024-02-22 14:21:18 +00:00
Brandon Simmons
7b3ce7d927 server: don't use 'auto-update' for log timestamp cache/refresh
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10662
GitOrigin-RevId: abefec7649098cfb6e4cc906210bc709c25301b0
2024-02-06 22:07:58 +00:00
kodiakhq[bot]
dd3bbef2fe Jberryman/ghc 9.6.4
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10615
GitOrigin-RevId: 8a45c92bec8444d5ec0aed125f4aa96d9c684728
2024-01-23 19:47:53 +00:00
Tom Harding
cc588a1ed3 Add support for ilike and nilike operators in BigQurey
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10638
GitOrigin-RevId: 6e97d480282b19ef0c87e08719e6421c09665d15
2024-01-23 15:28:21 +00:00
Rakesh Emmadi
f8b71fa94e server/pro/cloud: consider session variables and http headers from connection templates for query caching
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10625
Co-authored-by: paritosh-08 <85472423+paritosh-08@users.noreply.github.com>
GitOrigin-RevId: 3bf7896437cb5bc40c491e6feac7c43e7d2c7e6e
2024-01-17 06:48:31 +00:00
Krushan Bauva
8b34100606 server: add a flag to specify header precedence when calling webhook in actions and input validations
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10594
GitOrigin-RevId: 84f58b7b957630e2fc527ece09c026bf07f3027a
2024-01-11 13:26:36 +00:00
hasura-bot
63d90dcf69 Allow reading data connector agent URLs from environment variables
GITHUB_PR_NUMBER: 10077
GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/10077

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10585
Co-authored-by: Nick DeGroot <1966472+nickthegroot@users.noreply.github.com>
Co-authored-by: Daniel Chambers <1214352+daniel-chambers@users.noreply.github.com>
Co-authored-by: Vijay Prasanna <11921040+vijayprasanna13@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
GitOrigin-RevId: 9169e9250cbbee0fc9d47b503ead5e2219c98bc6
2024-01-04 23:23:32 +00:00
paritosh-08
7f1f0606ed add config to prioritize data/error for remote schema fields
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10528
Co-authored-by: Rob Dominguez <24390149+robertjdominguez@users.noreply.github.com>
GitOrigin-RevId: 49d0d7cbcc73fb0876d7ac3f5a1a8ff61ff800e8
2023-12-19 13:30:30 +00:00
pranshi06
004602c37f server: fix HTTP request structure leak in Async Actions
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10549
GitOrigin-RevId: e628fc161546c4899dc39a571290ddf0af2e2d83
2023-12-18 10:31:58 +00:00
Rakesh Emmadi
e6ca36dcb1 server: insert updated metadata and schema sync notifications in a transaction
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10558
GitOrigin-RevId: e3bb0ef2378162a5fdccc7131a584f4200404afd
2023-12-18 08:59:44 +00:00
Rakesh Emmadi
7fd9f0fd7c server: insert schema sync notifactions as soon as metadata is updated in the storage (hot fix)
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10552
GitOrigin-RevId: 33886b5a1b648373053e1aa2920bdabeb5df69a7
2023-12-13 16:18:55 +00:00
Daniel Harvey
72e50c1556 chore: check we have fields in our Logical Model before outputting a parser
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10550
GitOrigin-RevId: 85f83274f696e381da68547bf7af098ea8f5ac11
2023-12-13 12:32:00 +00:00
Samir Talwar
ae5279ccda Apply HLint's new proposed fixes.
Upgrading HLint brought in a bunch of new suggestions for improvements to the code.

I thought I'd go through them quickly and get them in.

This is not all of them, just the ones I thought were reasonable.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10505
GitOrigin-RevId: cefd661e9dcb973843b421fd0e31a5c5ffe4720f
2023-12-07 09:16:33 +00:00
pranshi06
94f01cfbb0 server: fix condition to classify requests to Apollo persisted queries
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10514
GitOrigin-RevId: c7ada21af3984761e8521f0fc8092e27367cdc02
2023-12-06 10:56:44 +00:00
Samir Talwar
d39f30c38c Allow for columns without known types in MS SQL Server.
Sometimes, the `sys.types` table will not contain a type for a given column.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10506
GitOrigin-RevId: 7407e715a75d196f1bc0408d05f00804f85cbc55
2023-11-23 10:32:56 +00:00
Samir Talwar
0373beaed0 Upgrade nixpkgs, bump Haskell tool versions, and fix the new HLint errors.
Maintenance work to keep our server tools up to date.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10503
GitOrigin-RevId: 4402e39a5600d14c1e7d5eb4c91b152c2111f315
2023-11-22 09:02:34 +00:00
pranshi06
e80bf147f8 server: fix hide_aggregation_predicates and hide_stream_fields experimental features
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10485
GitOrigin-RevId: b7791c0244fb868d4a857a2e245ec25d05345a17
2023-11-15 16:03:58 +00:00
Rakesh Emmadi
970024569c server: reject null values for non-null variables
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10333
GitOrigin-RevId: b778c225400cfb698570f58044b38396a685a6b6
2023-11-13 22:47:57 +00:00
Karthikeyan Chinnakonda
44584c021d Revert "Skip more unnecessary ET recreation"
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10470
GitOrigin-RevId: 7990b0b6c554e1c128996769e914abb89938ffbe
2023-11-08 16:06:36 +00:00
hasura-bot
77a23320b6 Omit Server Header from Server Responses by Default
GITHUB_PR_NUMBER: 9769
GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/9769

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10427
Co-authored-by: Andrew Louis <996681+andrewlouisx@users.noreply.github.com>
GitOrigin-RevId: 5cf62d10965d408954b996788f87a3c0d43a5126
2023-10-30 11:16:20 +00:00