Auke Booij
a6eaeceabe
server: support caching when forwarding client headers
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9021
Co-authored-by: Anon Ray <616387+ecthiender@users.noreply.github.com>
GitOrigin-RevId: d82eaee50d6bb5bbb2c01f2900875ba8ab73a1b0
2023-05-17 09:22:52 +00:00
Daniel Harvey
8f4692d871
chore(server): move table related things to Hasura.Table.*
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9174
GitOrigin-RevId: d440647ac04b9c1717ecf22a2dbfb8c5f22b7c7a
2023-05-17 08:55:32 +00:00
Daniel Harvey
db8f3b4a28
chore(server): Native Query array -> array relationships
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9152
GitOrigin-RevId: f6aceb4a86a782d72d836afd65fb6ad73d19e7d7
2023-05-16 08:37:05 +00:00
pranshi06
0e6811d9df
server: add HTTP response status in the Kriti context for Actions
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9125
GitOrigin-RevId: d0d35d1f9fa5ec04b42132007e2905087349fbd6
2023-05-15 16:35:22 +00:00
Daniel Harvey
308948d6b4
chore(server): ensure correct introspection types for NQ relationships
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9133
GitOrigin-RevId: 7d352aa5495098ff91d1bbc1a06c6b1e71ce660e
2023-05-15 08:12:45 +00:00
Daniel Harvey
2aca76f0cc
chore(server): native query postgres array relationships
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9037
GitOrigin-RevId: c47ed4bd2fb7102ceed0159c4717d1555080cfd5
2023-05-10 15:20:23 +00:00
Daniel Harvey
0da011f272
chore(server): move Lenses into RQL.IR.Select.Lenses
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9096
GitOrigin-RevId: 09d69af150f66309b523133c70364f96de40d9cb
2023-05-09 16:22:53 +00:00
Daniel Harvey
a51856c159
chore(server): resolve Native Query object relationships in schema cache
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9092
GitOrigin-RevId: 9c46188f0bc613e553c9e9c267a189efb1de8464
2023-05-09 15:50:13 +00:00
Anon Ray
c8df4ec8fb
server/caching: collect all remote joins for caching check
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9064
GitOrigin-RevId: 6ad2bfacd2c02e496c7348ec90d281ab8eb84b01
2023-05-05 13:52:07 +00:00
Daniel Harvey
285a200a87
chore(server): delete MySQL native backend
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9050
GitOrigin-RevId: 1515fb0efdb1baa05ffe3ff7cf6f230acd0cde29
2023-05-05 10:32:56 +00:00
Philip Lykke Carlsen
c7d4117964
fix: Properly scope root-table references in relations
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8976
GitOrigin-RevId: bbb54468f04e1df1d595691ccb21a9d28a4eb010
2023-05-03 10:30:23 +00:00
pranshi06
1de2bf7d70
server: improve logging around HTTP Exception errors for Actions and Remote Schemas
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8937
GitOrigin-RevId: fb6b3a4786cf5ffd42bf608c7743d5b8852cbf47
2023-05-03 07:56:37 +00:00
Gil Mizrahi
990fd54e8c
Stored Procedures schema parsers and codegen
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9000
GitOrigin-RevId: 951a8b949359db11df183964b4ce217ae02a301c
2023-04-29 08:05:37 +00:00
Daniel Harvey
cb00535693
chore(server): add link-type to Logical Model references
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9004
GitOrigin-RevId: f361ca5f3b82995096f9289f8e90c7c20920a744
2023-04-28 16:48:19 +00:00
Tom Harding
b6799f0882
Import InsOrdHashMap, not OMap, OM, Map, HM, ...
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8946
GitOrigin-RevId: 434e7c335bc69119020dd35761c7d4539bc51ff8
2023-04-27 07:43:22 +00:00
Tom Harding
4885a3fd9a
Import J, not Aeson, A, JSON, Yaml...
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8948
GitOrigin-RevId: d70c4a50b94ffe7d42a1fb1017051d351f236acc
2023-04-26 17:30:24 +00:00
kodiakhq[bot]
bb8f6a76cc
PLAT-438: improve traces from OpenTelemetry
...
[PLAT-438](https://hasurahq.atlassian.net/browse/PLAT-438 )
After this change the top level trace is is annotated with `request_id` and `parameterized_query_hash`. It looks like this, in jeager:
![image](https://user-images.githubusercontent.com/210815/233206107-73682a85-3306-4d1d-8a6c-148890dc1a38.png )
bulk queries should output a separate `parameterized_query_hash` for each query span
...after the last two commits, things look like this (remove pointless spans, more attributes):
![image](https://user-images.githubusercontent.com/210815/233476532-47521f35-2cdf-4f7d-af13-39c7ce15c9ec.png )
[PLAT-438]: https://hasurahq.atlassian.net/browse/PLAT-438?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8824
GitOrigin-RevId: 0fd105c879161587d41b729b9bac968e92efae95
2023-04-26 16:21:29 +00:00
Tom Harding
7e334e08a4
Import HashMap, not HM, Map, M...
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8947
GitOrigin-RevId: 18e52c928e1df535579e2077b4af6c2ce92bdcef
2023-04-26 15:43:44 +00:00
Karthikeyan Chinnakonda
c19bc58f1e
Server: Websocket queue time and pre subscriptions start errors metrics [Subscription metrics - 3]
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8870
GitOrigin-RevId: 35cb1f1c7ffe7c8dcdd65fa14c423fcd1c2de234
2023-04-25 20:29:30 +00:00
Daniel Harvey
ea5c92acae
chore(server): move Hasura.SQL.Backend to Hasura.RQL.Types.BackendType
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8876
GitOrigin-RevId: abfc18eeef96a1f3593bfe823adab4d161161333
2023-04-24 18:37:33 +00:00
Daniel Harvey
8cf134dad1
Split Hasura.RQL.DDL.Headers to put types in Hasura.RQL.Types.Headers
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8873
GitOrigin-RevId: 566cb4271f0eb27e6688c2e0fbc26711bdf8baa9
2023-04-24 16:45:55 +00:00
Tom Harding
f8ae944dbc
Move Hasura.GraphQL.Schema.Options
to Hasura.RQL.Types.Options
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8877
GitOrigin-RevId: 8be82f60a57cd9582d6980a6dea2f34c7b0c13c1
2023-04-24 15:18:56 +00:00
Tom Harding
f80369573c
Move Hasura.SQL.Tag
into RQL.Types
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8871
Co-authored-by: Daniel Harvey <4729125+danieljharvey@users.noreply.github.com>
GitOrigin-RevId: f69ff31018d6a68a3221d75cc1e2ef467bc46e12
2023-04-24 12:27:27 +00:00
Tom Harding
1698f9dd91
Extract RoleName
from Hasura.Session
, move it into Hasura.RQL.Types.Roles
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8856
Co-authored-by: Daniel Harvey <4729125+danieljharvey@users.noreply.github.com>
GitOrigin-RevId: 38ad67de9b3d765c4eb50943dd52b8fc32317540
2023-04-24 08:51:58 +00:00
Karthikeyan Chinnakonda
9869e3fcf4
Server: add hasura_active_subscription_pollers_in_error_state
metric [Subscriptions observability - 2]
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8808
GitOrigin-RevId: 9686125e87bdf06cdb4b133d236bfa64c61bb6f3
2023-04-24 07:44:04 +00:00
Daniel Harvey
59244eac85
feature(server): basic array relationships on Native Queries
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8752
GitOrigin-RevId: adea2941e01c4037b74f6e8c9150ff0819729fae
2023-04-21 11:57:42 +00:00
Anon Ray
055cf11134
server/pro: remote schema queries should not be cached when forward client headers are set
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8806
GitOrigin-RevId: e2b5aa012146cf3cf1bc361d986c0619e9f78d26
2023-04-19 11:13:35 +00:00
Philip Lykke Carlsen
983fc2ad47
Rename "Custom Return Types" → "Logical Models"
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8800
GitOrigin-RevId: e5e10f31c6cc8953a8ee947441a7f80b0e9b5e5e
2023-04-19 09:05:25 +00:00
Karthikeyan Chinnakonda
41ed0d369b
server: add active multiplexed subscriptions metrics
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8644
Co-authored-by: Rob Dominguez <24390149+robertjdominguez@users.noreply.github.com>
GitOrigin-RevId: ff1f646cd6a4b8dd5106db4693b2c6ad465ae052
2023-04-18 15:33:01 +00:00
Daniel Chambers
4ccfc3490b
Satisfy get_table_info
from cached DBObjectsIntrospection for Data Connectors
...
[GDC-643]: https://hasurahq.atlassian.net/browse/GDC-643?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8761
GitOrigin-RevId: 6b8e15fc35f7f463d86c865c880779794f0f28b8
2023-04-18 05:37:34 +00:00
Daniel Harvey
2fd3f91398
chore(server): metadata changes for array relationships for Native Queries
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8670
GitOrigin-RevId: c23e23e3cf48013ab76fc2fa98c8b8b800c6cee6
2023-04-17 11:31:59 +00:00
Puru Gupta
d9b77d9dae
server: remove cache specific headers when response is not cached
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8637
Co-authored-by: Daniele Cammareri <5709409+dancamma@users.noreply.github.com>
GitOrigin-RevId: 0af8adbb638394fb65926165b09ff237d060ce85
2023-04-16 19:33:26 +00:00
Philip Lykke Carlsen
0346224444
Rename "Logical Models" → "Native Queries"
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8769
GitOrigin-RevId: 66f2cbfb620d641e672a4074554d9d324a18c591
2023-04-13 16:12:20 +00:00
Daniel Chambers
56db8ec358
Data Connectors: Fix track_table not working if the table was created after schema cache was built
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8732
GitOrigin-RevId: e11a0ef6979d1d58a0b39dcd8fff48d446d3420f
2023-04-13 01:30:50 +00:00
Daniel Harvey
cd024dcaa4
chore(server): logical models, remove unused arg
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8751
GitOrigin-RevId: fcef0a4b3974206bd0920bd8e4b46af9407b90c0
2023-04-12 17:00:44 +00:00
Naveen Naidu
a8b94120d1
server: close all websocket connection when sqlGenCtx and experimental features changes
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8736
GitOrigin-RevId: 20f3d6386c961020b5b93c857dfa0cd99a9838b5
2023-04-12 10:27:42 +00:00
Tom Harding
af0b56332d
De-duplicate prepared logical model arguments
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8723
GitOrigin-RevId: 5df1a05c47852d7371ef323bb0df2ac9d1749243
2023-04-12 09:05:48 +00:00
David Overton
346804fc67
Support nested object fields in DC API and use this to implement nest…
...
## Description
This change adds support for nested object fields in HGE IR and Schema Cache, the Data Connectors backend and API, and the MongoDB agent.
### Data Connector API changes
- The `/schema` endpoint response now includes an optional set of GraphQL type definitions. Table column types can refer to these definitions by name.
- Queries can now include a new field type `object` which contains a column name and a nested query. This allows querying into a nested object within a field.
### MongoDB agent changes
- Add support for querying into nested documents using the new `object` field type.
### HGE changes
- The `Backend` type class has a new type family `XNestedObjects b` which controls whether or not a backend supports querying into nested objects. This is currently enabled only for the `DataConnector` backend.
- For backends that support nested objects, the `FieldInfo` type gets a new constructor `FINestedObject`, and the `AnnFieldG` type gets a new constructor `AFNestedObject`.
- If the DC `/schema` endpoint returns any custom GraphQL type definitions they are stored in the `TableInfo` for each table in the source.
- During schema cache building, the function `addNonColumnFields` will check whether any column types match custom GraphQL object types stored in the `TableInfo`. If so, they are converted into `FINestedObject` instead of `FIColumn` in the `FieldInfoMap`.
- When building the `FieldParser`s from `FieldInfo` (function `fieldSelection`) any `FINestedObject` fields are converted into nested object parsers returning `AFNestedObject`.
- The `DataConnector` query planner converts `AFNestedObject` fields into `object` field types in the query sent to the agent.
## Limitations
### HGE not yet implemented:
- Support for nested arrays
- Support for nested objects/arrays in mutations
- Support for nested objects/arrays in order-by
- Support for filters (`where`) in nested objects/arrays
- Support for adding custom GraphQL types via track table metadata API
- Support for interface and union types
- Tests for nested objects
### Mongo agent not yet implemented:
- Generate nested object types from validation schema
- Support for aggregates
- Support for order-by
- Configure agent port
- Build agent in CI
- Agent tests for nested objects and MongoDB agent
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7844
GitOrigin-RevId: aec9ec1e4216293286a68f9b1af6f3f5317db423
2023-04-11 01:30:37 +00:00
Puru Gupta
c54697b958
server: enable remote schema to remote schema relationship for unauthenticated context
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8562
GitOrigin-RevId: 2b1e2241fd2dbe379d5f9e40224e1245f1188475
2023-04-10 13:35:38 +00:00
Rishichandra Wawhal
c6d65508b2
[feature branch] EE Lite Trials
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8208
Co-authored-by: awjchen <13142944+awjchen@users.noreply.github.com>
Co-authored-by: Vijay Prasanna <11921040+vijayprasanna13@users.noreply.github.com>
Co-authored-by: Toan Nguyen <1615675+hgiasac@users.noreply.github.com>
Co-authored-by: Abhijeet Khangarot <26903230+abhi40308@users.noreply.github.com>
Co-authored-by: Solomon <24038+solomon-b@users.noreply.github.com>
Co-authored-by: gneeri <10553562+gneeri@users.noreply.github.com>
GitOrigin-RevId: 454ee0dea636da77e43810edb2f427137027956c
2023-04-05 08:59:09 +00:00
Daniel Chambers
fde4c0fae5
Enhance insert table schema with extra info and remove need for cached schema usage in Super Connector mutations
...
[GDC-643]: https://hasurahq.atlassian.net/browse/GDC-643?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8560
GitOrigin-RevId: 0e965da447eb6a5acf5a0f291f9e205882630e6e
2023-04-05 02:23:20 +00:00
Antoine Leblanc
306162f477
Remove ServerConfigCtx
.
...
### Description
This PR removes `ServerConfigCtx` and `HasServerConfigCtx`. Instead, it favours different approaches:
- when the code was only using one field, it passes that field explicitly (usually `SQLGenCtx` or `CheckFeatureFlag`)
- when the code was using several fields, but in only one function, it inlines
- for the cache build, it introduces `CacheStaticConfig` and `CacheDynamicConfig`, which are subsets of `AppEnv` and `AppContext` respectively
The main goal of this is to help with the modularization of the engine: as `ServerConfigCtx` had fields whose types were imported from several unrelated parts of the engine, using it tied together parts of the engine that should not be aware of one another (such as tying together `Hasura.LogicalModel` and `Hasura.GraphQL.Schema`).
The bulk of this PR is a change to the cache build, as a follow up to #8509 : instead of giving the entire `ServerConfigCtx` as a incremental rule argument, we only give the new `CacheDynamicConfig` struct, which has fewer fields. The other required fields, that were coming from the `AppEnv`, are now given via the `HasCacheStaticConfig` constraint, which is a "subset" of `HasAppEnv`.
(Some further work could include moving `StringifyNumbers` out of `GraphQL.Schema.Options`, given how it is used all across the codebase, including in `RQL.DML`.)
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8513
GitOrigin-RevId: 818cbcd71494e3cd946b06adbb02ca328a8a298e
2023-04-04 16:01:42 +00:00
Daniel Harvey
9c99bcb6f8
chore(server): move perms to custom return types
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8604
GitOrigin-RevId: ff024429b3f06e4867334665f35d4bd404a85cba
2023-04-04 12:46:51 +00:00
Daniel Harvey
cb9f822fc0
chore(server): move user-defined-functions into Hasura.Function.*
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8595
GitOrigin-RevId: b3b7dec8504fe4daf324125e4017fa7d1945b3ca
2023-04-03 10:20:20 +00:00
Daniel Harvey
79682e0598
chore(server): move custom types out of logical models
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8565
Co-authored-by: Tom Harding <6302310+i-am-tom@users.noreply.github.com>
GitOrigin-RevId: 38bf56cc420a6c818a9ca7d6f846f5018535c808
2023-03-31 15:35:13 +00:00
Auke Booij
79b8a6a07b
chore(server): move some query tags code to a sensible place
...
Also add a `default` implementation for `MonadQueryTags`.
This avoids a bunch of imports on `Hasura.GraphQL.Execute.Backend` which is a big module with lots of (transitive) dependencies.
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8571
GitOrigin-RevId: 8ecca452721b77953e6d088c79d8d6f003f2996f
2023-03-30 21:19:38 +00:00
Anon Ray
5a81eaa9b6
server: core changes for zero-downtime env vars update on cloud
...
[GS-232]: https://hasurahq.atlassian.net/browse/GS-232?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7207
Co-authored-by: pranshi06 <85474619+pranshi06@users.noreply.github.com>
Co-authored-by: Rakesh Emmadi <12475069+rakeshkky@users.noreply.github.com>
Co-authored-by: Puru Gupta <32328846+purugupta99@users.noreply.github.com>
Co-authored-by: Naveen Naidu <30195193+Naveenaidu@users.noreply.github.com>
GitOrigin-RevId: 90a771036da5275cd277f3daaf410381955c69de
2023-03-30 16:33:39 +00:00
Daniel Harvey
7227e96278
feature(server): custom return types as discreet metadata entity
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8556
Co-authored-by: Tom Harding <6302310+i-am-tom@users.noreply.github.com>
GitOrigin-RevId: b7dcbcf378279c3bf4c8d223174b90c2cb4b9e53
2023-03-30 15:15:11 +00:00
Daniel Harvey
7e437fc32b
feature(server): ordered columns in Logical Model return type
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8434
Co-authored-by: Philip Lykke Carlsen <358550+plcplc@users.noreply.github.com>
GitOrigin-RevId: 4ebd569bef868e01b15583e4af90d583d6713da7
2023-03-22 16:35:56 +00:00
Solomon
cca1a92399
Simplify Transformable Requests Module
...
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8400
GitOrigin-RevId: 10728012c3d74e178c34b926e13d3627d514ce17
2023-03-22 00:01:07 +00:00