Commit Graph

2120 Commits

Author SHA1 Message Date
Gil Mizrahi
653106087c mssql isolation level option
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9626
GitOrigin-RevId: 43861a982afadd9fdefb7d8996999e051e751222
2023-06-23 15:21:03 +00:00
Puru Gupta
f2fe9cfe3b server: add support for header resolution from env vars
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9509
GitOrigin-RevId: 818f747422c5444fcb55419729ad58d74b890d52
2023-06-23 08:39:28 +00:00
David Overton
5b2970b44f Specify table schema via logical model in track_table API
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9408
GitOrigin-RevId: 9ba20cd91e4d0066e0f14ce52cba0f55a7c5af31
2023-06-22 07:06:40 +00:00
David Overton
3e83370c96 Fix parsing of scalar types in the DataConnector backend
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9596
GitOrigin-RevId: 0161814a6678b67187147fcfa18d20523e480a9d
2023-06-21 06:50:51 +00:00
Gil Mizrahi
f5f3367f31 include int in the like of pg types mapping and massage input
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9588
GitOrigin-RevId: 79881c0c75423de44a0bde7fba7f1379fbfa9016
2023-06-20 08:40:59 +00:00
pranshi06
3124c93673 server: configurable header length limit for warp
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9363
GitOrigin-RevId: 8dd1e6a5f51d86ed20123c7ed7d42906fe5251bb
2023-06-19 12:34:35 +00:00
Daniel Harvey
51aca1639a chore(server): stop duplicate relationships in native queries
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9577
GitOrigin-RevId: e3698f419bc3c5e801863e66c5d2f66bd3d0f7e9
2023-06-19 09:58:02 +00:00
Daniel Chambers
27b13fb679 Add initial basic group_by IR and GraphQL parser support
[GDC-1254]: https://hasurahq.atlassian.net/browse/GDC-1254?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9571
GitOrigin-RevId: daa68115fe577a56842a08c13728c821425a0aef
2023-06-19 05:06:21 +00:00
Daniel Harvey
98fdeda54e fix(server): skip insert when no values provided for SQLServer
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9564
GitOrigin-RevId: 7d95ee428b8da7e246d9f1040f04d8abe359b667
2023-06-16 08:48:48 +00:00
Philip Lykke Carlsen
9c2c5f6d91 refac: Handle feature flags per product
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9527
GitOrigin-RevId: 8babe4f4f28f76278d6242148b3c657112ca7745
2023-06-15 11:50:33 +00:00
Daniel Harvey
59a967cb8e chore(server): support all BigQuery types in docs page
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9557
GitOrigin-RevId: b567fa72180df5f5e46037d362d5ba3806aa5f72
2023-06-15 10:21:13 +00:00
David Overton
dd34fb85ab Be more lenient about missing values in data connector response
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9532
GitOrigin-RevId: f237a237fe5453338b71ead98fca38bb037676b0
2023-06-15 01:33:26 +00:00
Gil Mizrahi
d7ae3911c4 validate a few properties when adding a new native query or logical model
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9543
GitOrigin-RevId: a6d962c70266799b8da4ef5ce5423f0f17316fed
2023-06-14 20:45:27 +00:00
Philip Lykke Carlsen
5d76f9cabf Feat: No feature flags for Native Queries and Stored Procedures
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9541
GitOrigin-RevId: 81a33de3a35405c6e45cb5bad160ad00871745eb
2023-06-14 13:21:37 +00:00
Daniel Chambers
331e4e3d5d Stop swallowing data connector connection errors during schema cache building
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9533
GitOrigin-RevId: ce81cd4b7449db4f9f62caa98c888641aa27b3c7
2023-06-14 09:45:29 +00:00
Gil Mizrahi
e6ee9db169 trim a nq end to remove spaces and then semicolons
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9515
GitOrigin-RevId: 95e93d017ac9757a8088aea3015836b5d8236d66
2023-06-13 17:23:07 +00:00
pranshi06
45f2d8f52d server: forward null value to the remote schema when field type is nullable
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9460
Co-authored-by: Auke Booij <164426+abooij@users.noreply.github.com>
GitOrigin-RevId: 9449a679d66817d7bf9f401009a638b57cb58695
2023-06-13 15:04:40 +00:00
hasura-bot
0a418040c3 feat(server): optional args GQL argument
GITHUB_PR_NUMBER: 9497
GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/9497

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8340
Co-authored-by: Wsevolod <31807671+kraftwerk28@users.noreply.github.com>
Co-authored-by: Daniel Harvey <4729125+danieljharvey@users.noreply.github.com>
GitOrigin-RevId: e436b171d88991b814cc6c7b3ed47df75795ac64
2023-06-13 14:16:40 +00:00
Tom Harding
d48493ff24 Move stored procedure validation into the schema cache builder
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9521
GitOrigin-RevId: a7fdfa67271df7477950ed0f2b3a68cdb38cc106
2023-06-13 13:31:06 +00:00
Tom Harding
1ffdf73583 Roll back broken schema caches when using atomic_bulk
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9486
Co-authored-by: Daniel Harvey <4729125+danieljharvey@users.noreply.github.com>
Co-authored-by: Rob Dominguez <24390149+robertjdominguez@users.noreply.github.com>
Co-authored-by: Julian <118911427+julian-mayorga@users.noreply.github.com>
Co-authored-by: Rikin Kachhia <54616969+rikinsk@users.noreply.github.com>
Co-authored-by: Philip Lykke Carlsen <358550+plcplc@users.noreply.github.com>
Co-authored-by: Samir Talwar <47582+SamirTalwar@users.noreply.github.com>
Co-authored-by: Anon Ray <616387+ecthiender@users.noreply.github.com>
Co-authored-by: Rishichandra Wawhal <27274869+wawhal@users.noreply.github.com>
Co-authored-by: Rakesh Emmadi <12475069+rakeshkky@users.noreply.github.com>
Co-authored-by: Vishnu Bharathi <4211715+scriptnull@users.noreply.github.com>
Co-authored-by: Vijay Prasanna <11921040+vijayprasanna13@users.noreply.github.com>
Co-authored-by: ananya-2410 <107847554+ananya-2410@users.noreply.github.com>
Co-authored-by: Gil Mizrahi <8547573+soupi@users.noreply.github.com>
GitOrigin-RevId: fa5a292a9a9e2e7d8477f72979ad172244f1ef23
2023-06-13 10:01:39 +00:00
paritosh-08
14b4de37f7 server: close subscriptions (with 1012) on metadata change
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9159
GitOrigin-RevId: 5ab25ef57782c126de8852f3546809feb66a9d44
2023-06-13 09:24:19 +00:00
Daniel Harvey
aeb8bc4c7a chore(server): fix types of BigQuery parameters
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9511
GitOrigin-RevId: f291814fab80060d83fabc34af918682c8108b7c
2023-06-12 17:13:12 +00:00
Tom Harding
be658e532c Fail to track logical models with invalid child logical models
[NDAT-719]: https://hasurahq.atlassian.net/browse/NDAT-719?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9474
Co-authored-by: Daniel Harvey <4729125+danieljharvey@users.noreply.github.com>
GitOrigin-RevId: 0234548c5fc56e3e9e2d5d291735d132c5963a14
2023-06-12 16:27:56 +00:00
Tom Harding
d864fff13f Move query validation into the schema cache building code
[NDAT-707]: https://hasurahq.atlassian.net/browse/NDAT-707?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9510
Co-authored-by: Gil Mizrahi <8547573+soupi@users.noreply.github.com>
GitOrigin-RevId: 11474498c75bfe1eb1173fed1073cc0206d290a1
2023-06-12 14:57:41 +00:00
Auke Booij
a53ab33330 server: hotfix for wrong PG conn pool, broken metrics, etc
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9481
GitOrigin-RevId: 58aa470b94cc578ae86fff0ef49ceb9e479199d1
2023-06-12 12:14:57 +00:00
Anon Ray
c23320054d server: emit logs when stored introspection is used
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9472
GitOrigin-RevId: 9be2eaa9ebc5f39a7bb44a1fc2340acbd4074bcd
2023-06-12 08:53:05 +00:00
Daniel Harvey
d5467d8d3a chore(server): add track_logical_model and untrack_logical_model to bulk_atomic command
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9484
Co-authored-by: Gil Mizrahi <8547573+soupi@users.noreply.github.com>
GitOrigin-RevId: d10490be355e859396e20e2a4a66361ed9d01893
2023-06-12 06:52:39 +00:00
Rakesh Emmadi
89ca064db5 server: update the logic of fetching stored introspection and fix evaluating partial stored introspection
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9489
GitOrigin-RevId: e18a6d32c7dcf4d4af077c72cffb6e4498ef838f
2023-06-08 20:33:16 +00:00
pranshi06
1372a649df server: add support for ES-* ( ES256, ES384 and ES512) algorithms for signing the JWT
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9273
GitOrigin-RevId: e891a14e992e4345f5470e1e99dbfc21d9105c31
2023-06-08 09:27:42 +00:00
Toan Nguyen
4e990f5e58 server: fix the invalid CU memory limit allocation
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9398
GitOrigin-RevId: 105162ca352f600ff52f21cdff4dd8f515dd36b9
2023-06-07 09:22:51 +00:00
Tom Harding
2c5e89e5d8 Fix array relationship aliasing (good news)
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9438
Co-authored-by: Daniel Harvey <4729125+danieljharvey@users.noreply.github.com>
GitOrigin-RevId: 14b225ad8c834f2aa9863cee951d39f203046282
2023-06-06 17:21:05 +00:00
Brandon Simmons
440a8664de server: Upgrade the HGE server to GHC 9.4.5
Upgrade to GHC 9.4.5, and update any tests.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8954
Co-authored-by: Mohd Bilal <24944223+m-Bilal@users.noreply.github.com>
Co-authored-by: Samir Talwar <47582+SamirTalwar@users.noreply.github.com>
Co-authored-by: Philip Lykke Carlsen <358550+plcplc@users.noreply.github.com>
GitOrigin-RevId: 5261126777cb478567ea471c4bf5441bc345ea0d
2023-06-06 13:29:30 +00:00
Karthikeyan Chinnakonda
a0b2f29b93 server: generate streaming subscription field only when there is at least one cursor column accessible
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9399
Co-authored-by: Auke Booij <164426+abooij@users.noreply.github.com>
GitOrigin-RevId: bd7f3fe3e95609c1634d531b95981c8ba15fba4e
2023-06-06 12:04:47 +00:00
Anon Ray
05862a4327 server: store collected source introspection to DB
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9237
Co-authored-by: Puru Gupta <32328846+purugupta99@users.noreply.github.com>
GitOrigin-RevId: 77327742db2f8440fdf770db5ae1c034cbb06e3b
2023-06-06 08:51:51 +00:00
Gil Mizrahi
15ce5196d0 throw an error on non-existing source in get_logical_model / get_native_query
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9421
GitOrigin-RevId: 2839e587c2966aa4580a631c3eff389c98b275df
2023-06-05 15:17:24 +00:00
Daniel Harvey
776a893eaa chore(server): non-nullable native query object relationships for SQLServer
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9405
GitOrigin-RevId: eda4fb38c9abc4a5d631964b8f80928d545a3694
2023-06-05 09:26:47 +00:00
Lyndon Maydwell
6487a44546 Adding function permissions to UDFs for Dataconnectors
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9349
GitOrigin-RevId: 0b71d06a13ad78a55a205a5755260b060525d340
2023-06-05 05:29:53 +00:00
Daniel Harvey
22ff735370 chore(server): non-nullable native query object relationships for BigQuery
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9361
GitOrigin-RevId: e2af5f1a9761da7346d5913fcb25305dce378a7b
2023-06-02 15:20:10 +00:00
Sameer Kolhar
f04d2950f2 server: remove "__" prefixed types for schema-registry in the GQL Introspection
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9339
GitOrigin-RevId: d6d098ab8e126d0d64a83e3ddb0d22eb512b2d60
2023-06-02 12:46:59 +00:00
Tom Harding
b124c943a9 chore(server): allow recursive native queries
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9373
Co-authored-by: Gil Mizrahi <8547573+soupi@users.noreply.github.com>
Co-authored-by: Daniel Harvey <4729125+danieljharvey@users.noreply.github.com>
GitOrigin-RevId: b998da0e2725f687a00c2c6c993435e44df4f70f
2023-06-02 10:37:55 +00:00
Samir Talwar
dd46aa6715 server: Preserve ordering when possible, and sort when it's not.
When upgrading to GHC v9.4, we noticed a number of failures because the sort order of HashMaps has changed. With this changeset, I am endeavoring to mitigate this now and in the future.

This makes one of two changes in a few areas where we depend on the sort order of elements in a `HashMap`:

  1. the ordering of the request is preserved with `InsOrdHashMap`, or
  2. we sort the data after retrieving it.

Fortunately, we do not do this anywhere where we _must_ preserve order; it's "just" descriptions, error messages, and OpenAPI metadata. The main problem is that tests are likely to fail each time we upgrade GHC (or whatever is providing the hash seed).

[NDAT-705]: https://hasurahq.atlassian.net/browse/NDAT-705?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9390
GitOrigin-RevId: 84503e029b44094edbbc298651744bc2843c15f3
2023-06-02 09:31:26 +00:00
Daniel Chambers
d421cdb726 Put the message property first when encoding error JSON
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9379
GitOrigin-RevId: 385035810190786f54a1db86e3a2e4a2c3bd5dee
2023-06-02 05:29:50 +00:00
Rakesh Emmadi
427ca18e85 server: collect remote schema and database introspections while building schema cache
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9297
GitOrigin-RevId: 143f50be2eba382d129669e26ef3a7eb24c921ca
2023-06-01 16:34:31 +00:00
Gil Mizrahi
3ce1b414b4 NativeQueries: validate that there are no unused or undeclare arguments
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9357
GitOrigin-RevId: 9d0ac74c8a2780c6d1b3e7769c3d4775bacb2d8d
2023-06-01 09:15:48 +00:00
Philip Lykke Carlsen
df10ccf310 fix(pg): Support aliased fields for Native Query object relations
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9374
GitOrigin-RevId: 073e51480e2be97e32938fa61a3547374e04ead8
2023-05-31 15:42:50 +00:00
Philip Lykke Carlsen
363e158bc4 refactor: Rename 'Provenance(Unknown)' to 'Provenance(FreshVar)'
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9376
GitOrigin-RevId: 3ef6572208ebc7770549d2b1cee16eb5086b56cf
2023-05-31 13:45:48 +00:00
Daniel Harvey
7d011644ac chore(server): allow non-nullable NQ -> NQ object relationships
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9353
GitOrigin-RevId: 9da95675d224f3045509592c2515b7afa2500d00
2023-05-31 10:34:28 +00:00
Daniel Chambers
bfd046b224 Add additional tracing spans to HGE GraphQL queries and the Super Connector
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9332
GitOrigin-RevId: ecde2383a42acf93fa8c6abb8bbd4c3b074b77fb
2023-05-31 05:49:12 +00:00
Daniel Harvey
9de3db4729 chore(server): respect logical model array nullability
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9303
GitOrigin-RevId: 4d38a125a6889e2b0be34905e21a78036a77881e
2023-05-31 00:15:47 +00:00
David Overton
26dfa3e718 Replace TableObjectType, etc. with the corresponding Logical Model types
## Description

This is the first step in making use of Logical Models with document databases such as MongoDB. As part of schema introspection, a data connector agent can supply a set of custom types that can be used to describe the schema for columns within the tables of the database (or _fields_ within a _document collection_ in MongoDB terminology).

Previously, we were storing these custom types as `TableObjectType`s within the `TableCoreInfo` for each table.

In this PR we
- replace the `TableObjectTypes` with `LogicalModel` types
- store these directly within the `DBObjectsIntrospection` instead of within the `TableCoreInfo` for each table. (The custom types are shared at the source level so there was no reason to have a separate set of types for each table.)
- When building the `SourceInfo`, we combine the `LogicalModel`s from `DBObjectsIntrospection` with `LogicalModel`s from the user's metadata to create the set of `LogicalModels` in the `SourceInfo` within the `SchemaCache`. I.e. we combine the set of types obtained by database introspection with the set of types specified by the user in the metadata. If two types have the same name, we use the type defined in the metadata.

## Limitations and future work

- Provide a way for the user to associate a meta-data defined `LogicalModel` with a table instead of requiring one to be provided by DB introspection
- Provide a way for the user to edit the  `LogicalModel` types provided by introspection and add them to the metadata.
- Allow a `LogicalModel` object type to describe and entire table rather than just individual columns.
- Better handling for "unknown" types, e.g. if the type of a collection (or part of a collection) is unknown we should treat it as a JSON scalar value. This may also involve adding an `_everything` field which returns the full document as a JSON scalar.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9345
GitOrigin-RevId: 5cec72fc1be1380d8600f7be547bbf71aad770bd
2023-05-30 14:05:46 +00:00