Commit Graph

3727 Commits

Author SHA1 Message Date
Chris Parks
038a6113c3 Remove Identifier associated type family from Backend class (close #1758)
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3096
GitOrigin-RevId: 03f218a76c5f333a77646a60c8c69767e2286ea6
2021-12-13 16:49:09 +00:00
jkachmar
44fa624ee9 server: Bumps 'network' to a version that supports M1 ARM
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3111
GitOrigin-RevId: be76385679a49715daf0bbafa7cbf56a0b6b0b70
2021-12-13 08:13:05 +00:00
hasura-bot
b3228150e8 Use proxy if env vars set (close #7781)
GITHUB_PR_NUMBER: 7796
GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/7796

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2814
Co-authored-by: Rob Hayes <3910392+robhayesmba@users.noreply.github.com>
GitOrigin-RevId: b01e8f7e91f36cf1b5bfb9c078a4744f71c34f17
2021-12-13 04:17:08 +00:00
Brandon Simmons
d1efe81ac0 dev: add ci build flags that improved compile times to dev.sh cabal c…
…onfig

After, on my 8-core machine, for a full rebuild of just the 360 oss
modules, I get build times:

    unoptimized: 2:45 (previously:  3:37)
    optimized:   9:30 (previously: 13:35)

## Should this live in the repo?

Arguably this should go in a user's `~/.cabal/config`, but I think if merging this improves things for a decent number of devs it's worth having (rather than another thing to document in onboarding docs)

Downsides:

- this might override someone's settings that work even better for them?
- A few folks might have systems not powerful enough for these to be appropriate?

of course some people use their own cabal.project.local anyway

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3095
GitOrigin-RevId: a767f609b676764312c31b2c7574caf9f7ca7f3a
2021-12-10 16:22:38 +00:00
Solomon
7a7498137b Precedence Semantics for JWT/Admin Secrets
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3103
GitOrigin-RevId: 7a85786280c5792c1439111e9d8b28924ac15adc
2021-12-10 06:34:55 +00:00
Kali Vara Purushotham Santhati
8c41ff539a cli: enhance metadata diff command
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2581
Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: 327c26868102ea1c277b795b9f508847faa2ae8b
2021-12-09 17:26:53 +00:00
Brandon Simmons
c415cd7c0d server benchmarks: add introspection queries
This excercises a different code path from regular queries and is
pretty slow. Motivated by https://github.com/hasura/graphql-engine-mono/pull/2835

We may need to break chinook up into two sets if it keeps growing or
becomes a bottleneck, but do that later.

GitOrigin-RevId: 5832aef520db85f694924e038c0f2c9a7dd17a13
2021-12-09 15:10:42 +00:00
Brandon Simmons
a94be908df benchmarks: add to interpretation guide docs
GitOrigin-RevId: 89ae86f688e0186960ae116ba05357c1eedde817
2021-12-09 15:10:37 +00:00
Evie Ciobanu
392dec868e server/gardening: change BackendInsert's kind to PostgresKind
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3100
GitOrigin-RevId: 9978969bad501d5792e23363b4808b2dbb5826fb
2021-12-09 14:17:47 +00:00
Aravind K P
048471bdc0 cli: stop parsing unnecessary fields from config API
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2899
GitOrigin-RevId: 99dacb9dcbc6f1093b01aefbf7cbdc975d47569e
2021-12-09 12:52:21 +00:00
Vishnu Bharathi
a835d95b17 tag release v2.1.0-beta.3
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3099
GitOrigin-RevId: 7aa2926871bd44d80490768f86fab7bac02a7758
2021-12-09 11:28:19 +00:00
Divi
ef585f70e6 ci: create draft release in oss repo
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3077
Co-authored-by: Vishnu Bharathi <4211715+scriptnull@users.noreply.github.com>
GitOrigin-RevId: 88d67689cbdd120d48504e3c94ba6f7a7ff180e6
2021-12-09 09:46:33 +00:00
Vishnu Bharathi
6cfbde92e4 ci: add support for linux/arm64 docker image
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2933
GitOrigin-RevId: ceeab6164d8437703cd6e37e3dad9d63940ef966
2021-12-09 09:34:22 +00:00
Philip Lykke Carlsen
2fbcd783e7 Refactor XOnConflict and ExtraInsertData
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3055
GitOrigin-RevId: 06f7f92f0e09695f5f7bc02df457d3b96ac9f5f6
2021-12-09 09:06:56 +00:00
Solomon
e4064c9a90 Allows for mock env vars in test-webhook-transform endpoint
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3097
Co-authored-by: Lyndon Maydwell <92299+sordina@users.noreply.github.com>
GitOrigin-RevId: f0cd00b8f972a1b96213bd098ea09d72b3aba723
2021-12-09 07:59:46 +00:00
pranshi06
dee86453ea server: fallback to unauthorised role when JWT is not found in cookie
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2882
GitOrigin-RevId: ad03fbd0572e00ffe7abea106388a4df4d12af2c
2021-12-08 18:29:29 +00:00
Abhijeet Khangarot
d7ac98db44 console: request transform bugfixes
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3089
GitOrigin-RevId: ed251ea81c77f3cb2832c7f6cc6dbf801464afae
2021-12-08 12:00:06 +00:00
Abhijeet Khangarot
16006a1cbc console: fix console crash while selecting columns in event trigger
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3075
GitOrigin-RevId: 82096c9ab3b42d58fd150a8efc4077e18baa9335
2021-12-08 07:14:33 +00:00
Naveen Naidu
3773ba98b0 multitenant: support for starting multitenant in read only mode
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2993
Co-authored-by: Anon Ray <616387+ecthiender@users.noreply.github.com>
GitOrigin-RevId: e598d340d81aa96a85bd1ec043f9b7ed847934ef
2021-12-08 06:27:49 +00:00
hasura-bot
1376293e40 make pg_table_metadata CockroachDB compatible
GITHUB_PR_NUMBER: 7788
GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/7788

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2805
Co-authored-by: Oliver Tan <3646147+otan@users.noreply.github.com>
GitOrigin-RevId: 9de4ddc4b13a9780edee5d1d12579d225ce3bffe
2021-12-07 17:25:33 +00:00
hasura-bot
c5cedbd84b community: update sample realtime-chat dependencies
GITHUB_PR_NUMBER: 7844
GITHUB_PR_URL: https://github.com/hasura/graphql-engine/pull/7844

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2964
Co-authored-by: arjunyel <11153289+arjunyel@users.noreply.github.com>
GitOrigin-RevId: 34c4054e24fc1fa6c44c6c8a84db5b0d887faddb
2021-12-07 13:15:03 +00:00
Vamshi Surabhi
23e1cb218a simplification of generalized joins execution
This PR simplifies the types that represent a remote relationship in IR so that they can be reused in other parts (in remote schema types) which could have remote relationships.

The comments on the PR explain the main changes.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2979
GitOrigin-RevId: 559c51d9d6ae79e2183ce4347018741b9096ac74
2021-12-07 13:12:57 +00:00
Solomon
0faa92337d Use transformed request body in event invocation logs
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3057
GitOrigin-RevId: 7e001830f97c81289553e37c35098ccaeadbdf22
2021-12-06 22:40:31 +00:00
Robert
5473bfa952 tests: simplify command line of Haskell test suite
# Description

The tests were only being run with fully qualified postgresql and
mssql connection env vars anyhow. Makes it a bit simpler to run the
tests.

- the test suite now requires only plain connection strings as
  `HASURA_GRAPHQL_DATABASE_URL` (postgres) or
  `HASURA_MSSQL_CONN_STR` (mssql)
- update `CONTRIBUTING.md` for this change, and make it
  generally a bit less inaccurate

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3065
GitOrigin-RevId: b0b2f01ef867645d55c87a0e5c2bc1c0e94ee41f
2021-12-06 15:47:45 +00:00
Ikechukwu Eze
ac14e9a3f4 console (chore): upgrade typescript to 4.5.2
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3048
GitOrigin-RevId: 3a19ce1a4bb5ec9102e5da18dad84fefc2b5fc3e
2021-12-06 12:40:01 +00:00
Gil Mizrahi
2ac04384a0 Add tip for writing unit tests for SQL generation
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3045
GitOrigin-RevId: a74947471dd2132582ab6be890e80887d272d3ff
2021-12-06 07:59:44 +00:00
Lyndon Maydwell
87426fdef4 Fixing REST Enpoints list variable bug
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3034
GitOrigin-RevId: af1c182879754359b253e630f1393d97d8bcfa2a
2021-12-03 21:57:25 +00:00
Solomon
4a33d6c979 Allows for env var use in test_webhook_transform mock request url
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3009
GitOrigin-RevId: e678cef69d3d4dcb47f80cd584aa0d3c25a091b8
2021-12-03 07:13:35 +00:00
surendran82
46d8ef940d docs: header links updated
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2905
GitOrigin-RevId: 9996fdc7f5135c871e29bc56ff56793bb80114c9
2021-12-02 20:25:49 +00:00
Brandon Simmons
0f21cbd6fa ci: make server upgrade test run in parallel and introduce build pro image job
These changes improve build time by 26%
- old: 75 min
- new: 55 min

For context: https://github.com/hasura/ci-timing

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3007
Co-authored-by: Vishnu Bharathi <4211715+scriptnull@users.noreply.github.com>
GitOrigin-RevId: 6bd4e615303a8749b43258a04d9681476cf6e797
2021-12-02 17:18:06 +00:00
Rakesh Emmadi
7194dc691c server/mssql: fix SQL generation for aggregation queries in sql server (fixes #7773 & #7871)
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3024
GitOrigin-RevId: 30c0e7d713375d0c54ff7145d00985e3ade4f1a9
2021-12-02 14:22:42 +00:00
Kali Vara Purushotham Santhati
4edc723d64 cli: codesign the cli binaries
closes https://github.com/hasura/graphql-engine/issues/7147

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2100
Co-authored-by: Aravind K P <8335904+scriptonist@users.noreply.github.com>
GitOrigin-RevId: 1816493b6cdf1b00b267ee8852c7b8a7c5fc3ee9
2021-12-02 10:21:30 +00:00
Vijay Prasanna
2abd5a464a console: remove raw sql timeout for postgres
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3011
GitOrigin-RevId: 7363b58fdf015dbe653c604eacc328899c90d265
2021-12-02 08:45:26 +00:00
Matt Hardman
58829693e8 Permissions Component Showcase stories (close #2863)
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2985
GitOrigin-RevId: 6d0410fcfb9252e71e6e6cc969284b084eca22a0
2021-12-02 06:23:42 +00:00
Solomon
f243760398 Feature/multiple jwt secrets
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2765
Co-authored-by: Philip Lykke Carlsen <358550+plcplc@users.noreply.github.com>
Co-authored-by: Chris Done <11019+chrisdone@users.noreply.github.com>
Co-authored-by: Aishwarya Rao <59638722+aishwaryarao712@users.noreply.github.com>
Co-authored-by: Tirumarai Selvan <8663570+tirumaraiselvan@users.noreply.github.com>
Co-authored-by: Karthikeyan Chinnakonda <15602904+codingkarthik@users.noreply.github.com>
Co-authored-by: Ikechukwu Eze <22247592+iykekings@users.noreply.github.com>
Co-authored-by: Brandon Simmons <210815+jberryman@users.noreply.github.com>
Co-authored-by: awjchen <13142944+awjchen@users.noreply.github.com>
Co-authored-by: Martin Mark <74692114+martin-hasura@users.noreply.github.com>
Co-authored-by: Abby Sassel <3883855+sassela@users.noreply.github.com>
Co-authored-by: Sooraj <8408875+soorajshankar@users.noreply.github.com>
Co-authored-by: Sameer Kolhar <6604943+kolharsam@users.noreply.github.com>
Co-authored-by: Vijay Prasanna <11921040+vijayprasanna13@users.noreply.github.com>
Co-authored-by: hasura-bot <30118761+hasura-bot@users.noreply.github.com>
Co-authored-by: Rakesh Emmadi <12475069+rakeshkky@users.noreply.github.com>
Co-authored-by: Sibi Prabakaran <737477+psibi@users.noreply.github.com>
Co-authored-by: Robert <132113+robx@users.noreply.github.com>
Co-authored-by: Vishnu Bharathi <4211715+scriptnull@users.noreply.github.com>
Co-authored-by: Praveen Durairaju <14110316+praveenweb@users.noreply.github.com>
Co-authored-by: Abhijeet Khangarot <26903230+abhi40308@users.noreply.github.com>
GitOrigin-RevId: b3b07c3b42da9f3daa450d6d9e5fbf0bf506c651
2021-12-02 05:36:46 +00:00
Auke Booij
caf9957aca Remove Unique from Definition
GraphQL types can refer to each other in a circular way. The PDV framework used to use values of type `Unique` to recognize two fragments of GraphQL schema as being the same instance. Internally, this is based on `Data.Unique` from the `base` package, which simply increases a counter on every creation of a `Unique` object.

**NB**: The `Unique` values are _not_ used for knot tying the schema combinators themselves (i.e. `Parser`s). The knot tying for `Parser`s is purely based on keys provided to `memoizeOn`. The `Unique` values are _only_ used to recognize two pieces of GraphQL _schema_ as being identical. Originally, the idea was that this would help us with a perfectly correct identification of GraphQL types. But this fully correct equality checking of GraphQL types was never implemented, and does not seem to be necessary to prevent bugs.

Specifically, these `Unique` values are stored as part of `data Definition a`, which specifies a part of our internal abstract syntax tree for the GraphQL types that we expose. The `Unique` values get initialized by the `SchemaT` effect.

In #2894 and #2895, we are experimenting with how (parts of) the GraphQL types can be hidden behind certain permission predicates. This would allow a single GraphQL schema in memory to serve all roles, implementing #2711. The permission predicates get evaluated at query parsing time when we know what role is doing a certain request, thus outputting the correct GraphQL types for that role.

If the approach of #2895 is followed, then the `Definition` objects, and thus the `Unique` values, would be hidden behind the permission predicates. Since the permission predicates are evaluated only after the schema is already supposed to be built, this means that the permission predicates would prevent us from initializing the `Unique` values, rendering them useless.

The simplest remedy to this is to remove our usage of `Unique` altogether from the GraphQL schema and schema combinators. It doesn't serve a functional purpose, doesn't prevent bugs, and requires extra bookkeeping.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2980
GitOrigin-RevId: 50d3f9e0b9fbf578ac49c8fc773ba64a94b1f43d
2021-12-01 16:21:35 +00:00
Evie Ciobanu
0a4194a1bc server: throw broken invariant on data loader error
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3010
GitOrigin-RevId: 3b09a7d61343d406d1ecc5d6aaab866564c9dff8
2021-12-01 12:50:38 +00:00
Philip Lykke Carlsen
4c1f3d0140 Adding ColumnMutability to column metadata
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2962
GitOrigin-RevId: ee2687e84842dc5dd647ce9aa017c6051556d0e5
2021-12-01 11:34:16 +00:00
Kali Vara Purushotham Santhati
b21a86937a ci: increase golang linter timeout
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3020
GitOrigin-RevId: 500e6e0c427ce6274ddeb2a9bd89b6ee175f2f9f
2021-12-01 10:01:11 +00:00
Sai Krishna Prasad Kandula
4f1c2ff879 docs: segment track event naming adjustment
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3014
GitOrigin-RevId: 0428f962c038f3d03ef45413dca807041dcef50c
2021-12-01 09:07:53 +00:00
Antoine Leblanc
90d3192df2 Unified remote relationship metadata
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2903
Co-authored-by: Vamshi Surabhi <6562944+0x777@users.noreply.github.com>
GitOrigin-RevId: 11fd6efe8cea246471e525cfb5bad66fa53ccaf9
2021-12-01 04:54:30 +00:00
Antoine Leblanc
f9b64b7d7c Fix some dev.sh issues
### Description

This PR fixes two small issues with the `dev.sh` script:

- when running the script without a specific test flag (`./scripts/dev.sh test`), we would start some of the containers more than once; this PR fixes this by checking whether the container is already running before starting it
- we were still doing some bigquery setup in the main code, despite that setup being already done in `parse-pytest-backend`, which would result in biquery setup errors even when testing non-bigquery backends; this PR just deletes the redundant line.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3017
GitOrigin-RevId: 86a53b1fe974aae733a02bdf045389a0d7436cb7
2021-11-30 16:37:34 +00:00
Antoine Leblanc
f7071b3c93 Changed RemoteSchemaIntrospection's internal representation from a list to a hashmap.
### Description

This PR changes the internal representation of a parsed remote schema. We were still using a list of type definitions, meaning every time we were doing a type lookup we had to iterate through a linked list! 🙀 It was very noticeable on large schemas, that need to do a lot of lookups. This PR consequently changes the internal representation to a HashMap. Building the OneGraph schema on my machine now takes **23 seconds**, compared to **367 seconds** before this patch.

Some important points:
- ~~this PR removes a check for type duplication in remote schemas; it's unclear to me whether that's something we need to add back or not~~ (no longer true)
- this PR makes it obvious that we do not distinguish between "this remote schema is missing type X" and "this remote schema expects type X to be an object, but it's a scalar"; this PR doesn't change anything about it, but adds a comment where we could surface that error (see [2991](https://github.com/hasura/graphql-engine-mono/issues/2991))

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2963
GitOrigin-RevId: f5c96ad40f4e0afcf8cef635b4d64178111f98d3
2021-11-30 14:47:50 +00:00
Naveen Naidu
5cd6c5e43d multitenant: support for event disabling
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2900
GitOrigin-RevId: b2844fa433cfd8f8a29b7e98c6ec44773fd44a57
2021-11-30 12:32:26 +00:00
Rishichandra Wawhal
0c3cd7f092 console: vpc banner improvements
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2838
Co-authored-by: Martin Mark <74692114+martin-hasura@users.noreply.github.com>
GitOrigin-RevId: cce5e465aa2da0e45cdcfc2fd5f8a81298eaa827
2021-11-30 11:14:29 +00:00
Auke Booij
29158900d8 Refactor type name customization
Source typename customization (hasura/graphql-engine@aac64f2c81) introduced a mechanism to change certain names in the GraphQL schema that is exposed. In particular it allows last-minute modification of:
1. the names of some types, and
2. the names of some root fields.

The above two items are assigned distinct customization algorithms, and at times both algorithms are in scope. So a need to distinguish them is needed.

In the original design, this was addressed by introducing a newtype wrapper `Typename` around GraphQL `Name`s, dedicated to the names of types. However, in the majority of the codebase, type names are also represented by `Name`. For this reason, it was unavoidable to allow for easy conversion. This was supported by a `HasName Typename` instance, as well as by publishing the constructors of `Typename`.

This means that the type safety that newtypes can add is lost. In particular, it is now very easy to confuse type name customization with root field name customization.

This refactors the above design by instead introducing newtypes around the customization operations:
```haskell
newtype MkTypename = MkTypename {runMkTypename :: Name -> Name}
  deriving (Semigroup, Monoid) via (Endo Name)

newtype MkRootFieldName = MkRootFieldName {runMkRootFieldName :: Name -> Name}
  deriving (Semigroup, Monoid) via (Endo Name)
```
The `Monoid` instance allows easy composition of customization operations, piggybacking off of the type of `Endo`maps.

This design allows safe co-existence of the two customization algorithms, while avoiding the syntactic overhead of packing and unpacking newtypes.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2989
GitOrigin-RevId: da3a353a9b003ee40c8d0a1e02872e99d2edd3ca
2021-11-30 09:52:53 +00:00
David Overton
5bfce057c6 Refactor remote schema customization
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2771
GitOrigin-RevId: 0c90136f956df3f4552140e6ca3d2f4766f8b3f5
2021-11-30 00:38:27 +00:00
Abby Sassel
1d39c9ca2f server/rfc: memorialise internal discussions in upserts RFC
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3001
GitOrigin-RevId: e58f3ea33b3d3a8ffb8d9ffddbc3c91eda0ed8f7
2021-11-29 15:51:01 +00:00
Varun Choudhary
bc467a283a console: Add select all columns option while selecting the columns in event triggers
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2688
Co-authored-by: Abhijeet Khangarot <26903230+abhi40308@users.noreply.github.com>
GitOrigin-RevId: 0b98d2f388c7f8428f3c282e8c1662f8b046f4dd
2021-11-29 12:29:47 +00:00
Abby Sassel
3fc34aa028 server: deduplicate some pytests
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2988
GitOrigin-RevId: 018903d81c6025da2d9eb78aad4762a78f1f6c69
2021-11-26 19:38:17 +00:00