Commit Graph

4582 Commits

Author SHA1 Message Date
Samir Talwar
3d5f39702b Inline scalar type names in RQL.Common.
So that we don't need to import `RQL` from `GraphQL.Parser`.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5057
GitOrigin-RevId: 17b35871b853c52a6b03afe5bff9553f56f8e3b4
2022-07-15 10:11:13 +00:00
Solomon
044cd25df6 OSS Init Modules Restructure
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4938
GitOrigin-RevId: 578a9176f5f28303b74607e008712f75c37355d8
2022-07-15 08:55:25 +00:00
Solomon
59cf4d428e Adds unit tests to OSS Arg/Env parsing
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5056
GitOrigin-RevId: d5de7da9bc795813a3d0f2073919b935fb609d14
2022-07-15 05:04:02 +00:00
David Overton
b2b195c0a3 Add support for custom comparison operators
Add support for custom comparison operators in the DC agent API and IR.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4974
GitOrigin-RevId: 9580160e6171df77fe4979b7c2e87c473aaccbfc
2022-07-15 03:29:06 +00:00
David Overton
5a70d24079 Some small fixes to the dc-agents readme
Fix a couple more outdated bits of the readme

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5001
GitOrigin-RevId: 5dadee7a969d75972b1156e8a796a87aba78ea4d
2022-07-15 02:04:45 +00:00
Tom Harding
2e7e6fd98a Move SchemaOptions to its own module, remove magic bools
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5048
GitOrigin-RevId: f666a10c6af5feda9d761d3ffee5c77695361fdf
2022-07-14 17:59:01 +00:00
Tom Harding
9b22eed82a Remove scalarTypeGraphQLName
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5051
GitOrigin-RevId: 7312156b29ceac50787e43f06bc01f2ba48de28f
2022-07-14 14:04:56 +00:00
Varun Choudhary
c34885c8dc console: fix remote schemas UI bugs
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5002
GitOrigin-RevId: 5a80418aa7e7cec8d426007953bddeef014ffe49
2022-07-14 09:20:38 +00:00
Tom Harding
2e940f88c4 Add fallback for unrecognised types in BigQuery RestArgument decoder
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5042
GitOrigin-RevId: 45efb6dff9fbe8e2ec10356921e5c61b2af1bcda
2022-07-14 08:27:54 +00:00
Daniel Harvey
6b03f8b0af server: remove systemDefined field from CoreFieldInfo
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5028
GitOrigin-RevId: 168dc2aeae12258231ddb8300a0aa2fe5817927c
2022-07-13 15:21:01 +00:00
Vishnu Bharathi
f6ea3168b6 ci: tag release v2.9.0-beta.2
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5038
Co-authored-by: Naveen Naidu <30195193+Naveenaidu@users.noreply.github.com>
GitOrigin-RevId: 4f99534b8e726cc18aabc0265dbd83497ca2380b
2022-07-13 13:03:03 +00:00
paritosh-08
25a027ba79 server/console: use root_field_namespace as prefix for remote schema
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5000
GitOrigin-RevId: 6427691e1609e939b4245d90cff20de72b18e99a
2022-07-13 05:30:04 +00:00
Benoit Ranque
6532a658eb console: fix analyze button staying in analyzing state after analyze failed (close #4440)
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4441
Co-authored-by: Sooraj <8408875+soorajshankar@users.noreply.github.com>
Co-authored-by: Varun Choudhary <68095256+Varun-Choudhary@users.noreply.github.com>
GitOrigin-RevId: 80f01ccb82a4899ed2f7f601cf122c57fdd558eb
2022-07-12 14:40:49 +00:00
Samir Talwar
c980af1b8f Move MkTypename and NamingCase into their own modules.
This moves `MkTypename` and `NamingCase` into their own modules, with the intent of reducing the scope of the schema parsers code, and trying to reduce imports of large modules when small ones will do.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4978
GitOrigin-RevId: 19541257fe010035390f6183a4eaa37bae0d3ca1
2022-07-12 14:01:28 +00:00
Varun Choudhary
6d2c8f1ec3 console: fix UI bugs on edits row
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5009
GitOrigin-RevId: 9cac0fa9fbe527b34e97a1b8091d498c132b896f
2022-07-12 10:21:23 +00:00
paritosh-08
4f5cb43954 RFC: apollo federation support
RFC for apollo federation support in HGE.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4607
GitOrigin-RevId: c154c58532394ef25166d39ff2e100a00448c111
2022-07-12 09:30:38 +00:00
Gil Mizrahi
555e0d0afe server: adding a few code comments
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5014
GitOrigin-RevId: 7f0cb241d3eb2d91bd6feb2b2eb6bf830f1757f9
2022-07-12 09:26:32 +00:00
paritosh-08
84366c9281 server: apply naming convention to prefixing/suffixing for graphql-default
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5020
GitOrigin-RevId: 145ed4d5dcc352308486fefe9bb7f75f8ed1a84a
2022-07-12 08:34:38 +00:00
Lyndon Maydwell
107180db54 Feature Spec: OpenAPI support for REST endpoints
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2293
Co-authored-by: paritosh-08 <85472423+paritosh-08@users.noreply.github.com>
GitOrigin-RevId: 2a74a2f60946a472106c0cf6d7eb63f0494fe5b5
2022-07-12 05:45:45 +00:00
Daniel Chambers
728fcd011e Add Data Connector agent request logging, improve error messages, and add tracing support [GDW-83]
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4987
GitOrigin-RevId: 71570d1656e0cd5be49c179740be81804a3ad05a
2022-07-11 08:05:40 +00:00
David Overton
cfb7824977 Fix relationship capabilities example in readme
Fix the readme

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4999
GitOrigin-RevId: 5cd216501f0b30a860bda29160be2a08126544b5
2022-07-11 00:45:30 +00:00
Abby Sassel
3318963d99 server/tests: sunset (FKA) TestGraphQLQueryBasicCommon pytests
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4990
GitOrigin-RevId: 85c0ac27a7437c6ff96ce282b2fcf6950d5f4d07
2022-07-08 04:19:38 +00:00
Brandon Simmons
4c0d9e4dbb server: apply text no-implicit-fusion patches to text 1.2.5.0 (former…
old: https://github.com/hasura/text/tree/v1.2.3.2-no-implicit-fusion
new: https://github.com/hasura/text/tree/release-1.2.5.0-no-implicit-fusion

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4993
GitOrigin-RevId: 8ff237b52a86ebdb2c1b729ec344c18792778912
2022-07-07 18:52:13 +00:00
kodiakhq[bot]
d8b595575d server: more GHC 9.2 changes compatible with 8.10 (#3550)
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4968
GitOrigin-RevId: 1175b2fcc90e0436c99da7fa58d317a49c7704d4
2022-07-07 16:51:18 +00:00
Jesse Hallett
80d19a80c4 server: update docs for updating cabal.project.freeze
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4980
GitOrigin-RevId: 7015295b037869f21a1c30895c9ffb846da62ff2
2022-07-07 15:59:26 +00:00
Jesse Hallett
f4328c3076 server: move ordered Aeson into its own package
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4939
GitOrigin-RevId: 62e83ae7c69f4e0a5334cf1e0c85c22a5d378f59
2022-07-07 15:55:52 +00:00
Vishnu Bharathi
967f4047ac ci: tag release v2.8.4
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4988
GitOrigin-RevId: 9cf042bbbcb36eaefdc0bae862f9529a973443fd
2022-07-07 07:39:23 +00:00
Erik Magnusson
387285b8f1 refactor (console): migrate api section to tailwind
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4820
GitOrigin-RevId: 541b15e64cc15f5db444304cbc02f75ff93577a4
2022-07-06 14:48:03 +00:00
Karthikeyan Chinnakonda
584aa666bd server: add support to customize streaming subscriptions root field
Earlier, if the `select` root field had a custom root field set, the same custom root field was then used for the streaming subscription root field as well. This leads to duplicate root fields being generated in the `subscription_root`.

This PR fixes that. It provides a way to customize the streaming subscription root field and not use the `select` root field's custom root field name for the streaming subscription root field.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4967
Co-authored-by: Anon Ray <616387+ecthiender@users.noreply.github.com>
GitOrigin-RevId: 54e74ce97561b0e5cfdfc60d1ca340aaebecf7d4
2022-07-06 12:14:25 +00:00
Samir Talwar
975b022b29 server/parsers: Reduce usages of "utils"-like functions.
This reduces the usage of "utils" modules in the parsers code, especially those that are simply re-exported from elsewhere, to facilitate extracting the parsers code into its own library.

It mostly inlines the imports that are re-exported from `Hasura.Prelude` and `Data.Parser.JSONPath`. It also removes references to `Data.*.Extended` modules. When necessary, it re-implements the functionality (which is typically trivial).

It does not tackle all external dependencies. I observed the following that will take more work:

- `Data.GADT.Compare.Extended`
- `Data.Text.Extended`
- `Hasura.Base.Error`
- `Hasura.RQL.Types.Common`
- `Hasura.Server.Utils`

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4964
GitOrigin-RevId: 54ad3c1b7a31f13e34340ebe9fcc36d0ad57b8bd
2022-07-06 07:56:35 +00:00
paritosh-08
2498176052 server: fix namespace visibility during introspection
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4971
GitOrigin-RevId: 0ed090b61da65849466607c29480f031f241e929
2022-07-06 05:41:15 +00:00
Abby Sassel
4b4a11dd07 server/tests: sunset TestGraphQLQueryBasicMySQL pytests
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4961
GitOrigin-RevId: 8745c075701378ebfad8cc66bb714b8a79666199
2022-07-05 18:35:00 +00:00
Samir Talwar
987b55f981 server/tests-py: Reduce the number of locations we check the status code.
We have a lot of `assert st_code == 200` scattered about. This is a
problem because (a) it makes the code harder to parse and (b) the error
message is lacking; I have seen a few flaky tests which were impossible
to diagnose because I didn't know what the response _should_ be.

This reduces the number of places in which we perform this assertion
(moving most of them to `HGECtx.execute_query`), so that we can have a
better chance of seeing a useful error message on test failure.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4957
GitOrigin-RevId: 3ff388bccf49f96569aa6b7db85266a0c5ee27ea
2022-07-05 18:01:07 +00:00
Samir Talwar
b21d058bec server/tests-py: Load the Python environment in a .envrc file.
This makes it easier to run the tests when `cd`-ing into the directory,
and also takes care of cleaning up the environment when you exit the
directory.

It also helps editors with direnv support find the relevant libraries
so that they can perform more helpful analysis.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4963
GitOrigin-RevId: d253c054c09c1bf7017ade9f7af414b56ee26fe0
2022-07-05 16:52:27 +00:00
Samir Talwar
3fc25a39d3 server: Handle special characters in parseJSONPath and encodeJSONPath.
This improves `parseJSONPath` and `encodeJSONPath` to encode special characters appropriately by delegating to Aeson.

This also makes a couple of improvements to `encodeJSONPath`.

1. The function is moved from `Hasura.Base.Error` to `Data.Parser.JSONPath`. This still doesn't seem too appropriate but it is somewhat better. I am basing this on the fact that its test cases already lived in `Data.Parser.JSONPathSpec`.
2. It now returns `Text`, not `String`.
4. It quotes strings with double quotes (`"`) rather than single quotes (`'`), just like JSON.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4935
GitOrigin-RevId: bf44353cd740500245f2e38907a7d6263ae0291c
2022-07-05 15:53:45 +00:00
Samir Talwar
f566f55d02 server/pytest: Attempting to improve TestNamingConventions.
I found a couple of flaws in `TestNamingConventions` and friends:

1. We had two test cases with the same name, which means one of them
   would be overwritten. Renamed to avoid conflict.
2. The `skipif` check for
   `TestNamingConventionWithoutExperimentalFeature` seemed broken. I
   have fixed it by making it line up with its `reason`, and extracted
   some logic out into a function to avoid duplication.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4958
GitOrigin-RevId: f572d86c893135839dbaba70bf89984bc9d79331
2022-07-05 12:37:30 +00:00
Stefano Magni
fc753ffb42 console: Update Cypress to v10 and run the migration guide
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4849
GitOrigin-RevId: 10e0fd62344a0c5c7028ad480b747b7f64c9c773
2022-07-05 08:51:35 +00:00
Auke Booij
34d016a7fc Restore comment mangled up by graphql-engine-mono/pull#4770
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4950
GitOrigin-RevId: c13d59e841e32e94e0c1c4767f7706f03ec8c84f
2022-07-04 16:59:59 +00:00
Antoine Leblanc
b73b9c1658 Make test path relative to project folder.
### Description

The path to the metadata file in this test was given in a relative fashion, which therefore assumes that the tests are run from a specific folder. This PR relaxes this requirement by making use of `makeRelativeToProject`.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4934
GitOrigin-RevId: a3c4736bb126d719881beb922c3b4b461d9dda11
2022-07-04 15:45:02 +00:00
Daniel Harvey
37fb40ddec tooling: Add make build... commands
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4824
GitOrigin-RevId: eeee7c47fb8b8160d85aee2d9d07fdf9ed14a703
2022-07-04 11:45:21 +00:00
Karthikeyan Chinnakonda
edef724879 server: Create SQL trigger if not found while reloading metadata
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4716
GitOrigin-RevId: 5303477aa19257535e682e6cbd3e79d49aba1fa2
2022-07-04 10:10:54 +00:00
Samir Talwar
2be2200b1a server: Split CatalogVersion into Source… and Metadata…
This reflects the two different usages, which should not be conflated.

We also propagate the type a little more, to avoid `Text`.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4931
GitOrigin-RevId: 16278f14aa4c2cb5667ea54bbb6b25e6d362835c
2022-07-04 09:32:12 +00:00
Vishnu Bharathi
82831a8611 ci: avoid building centos flavour for oss images
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4818
GitOrigin-RevId: c27fe81386cc8bb6767b5319d3b135d3a2efbc2c
2022-07-04 06:24:34 +00:00
paritosh-08
680cf5b3c0 server: fix missing/wrong graphql-default field name transformations
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4927
GitOrigin-RevId: 02dc61f05e06f46c193be3685abbef9c8535edef
2022-07-04 05:41:26 +00:00
Lyndon Maydwell
edcbe129a7 Bump version of Kriti to support optional variable lookup in string interpolation - TODO: Remove Cache Workaround
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4908
GitOrigin-RevId: bf6b01a8fa07e42efe9ab9ebdae0a90757a4c34b
2022-07-02 10:06:31 +00:00
Varun Choudhary
4a129042fa console: implement new design for naming convention and edit functionality for Graphql Field Customization
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4859
Co-authored-by: Rikin Kachhia <54616969+rikinsk@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Hardman <28978422+mattshardman@users.noreply.github.com>
GitOrigin-RevId: ebe25491b90caf9d1de091072727503d666469fe
2022-07-01 13:00:06 +00:00
Daniel Chambers
b9fb7d8720 Support composite primary keys for Data Connector [GDW-127]
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4926
GitOrigin-RevId: 2b6e5052f56a765e0b9a19345fcc4688d7e4700f
2022-07-01 12:21:17 +00:00
Samir Talwar
40617719ef server: Remove the Show instance from QErr and anything that touches it.
We only use these `Show` instances in error messages (where we call
`show` explicitly anyway) and test cases (in which Hspec requires `Show
a` for any `a` in an assertion).

This removes the instance in favor of a custom `showQErr` function
(which serializes the error to JSON). It is then used in certain error
message production which previously called `show` on a `QErr`.

There are two places where we serialize a QErr and then construct a new
QErr from the resulting string. Instead, we modify the existing QErr to
add extra information.

An orphan `Show QErr` instance is retained for tests so that we can have
nice test failure messages.

This is preparation for future changes in which the error message within
`QErr` will not be exposed directly, and therefore will not have a
`Show` instance. That said, it feels like a sensible kind of cleanup
anyway.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4897
GitOrigin-RevId: 8f79f7a356f0aea571156f39aefac242bf751f3a
2022-07-01 11:48:26 +00:00
Tom Harding
99f6172d0d Implement HLint suggestions and turn warnings into errors
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4903
GitOrigin-RevId: acab9bbd8373bdf427a80ab1dd73d49ab61996a2
2022-07-01 10:50:33 +00:00
Auke Booij
0df0ba6a82 Thinner monad stack for Parse
The definition of the Parse monad (which implements MonadParse) can be simplified from using two monad transformers to a single monad. We can simplify from:
```haskell
newtype Parse a = Parse
  { unParse :: ReaderT JSONPath (Except ParseError) a }
```
to
```haskell
newtype Parse a = Parse
  { unParse :: Except ParseError a }
```
In other words, we don't actually need a Reader monad at all.

The technique is that rather than _always_ keeping track of the `JSONPath` while traversing the query, instead simply wait until an error occurs, and if it does, we adjust its `JSONPath` while we're unrolling the stack, using `withExceptT`.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4807
Co-authored-by: Daniel Harvey <4729125+danieljharvey@users.noreply.github.com>
GitOrigin-RevId: 94de2c97dc65cb0bd918050cf5e99ac62168b331
2022-07-01 09:16:01 +00:00