Commit Graph

5126 Commits

Author SHA1 Message Date
Stefano Magni
0f665279bd console: improve is_generated types
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5834
GitOrigin-RevId: 64ad30b0e4af08dc71e98baecae3fe1fb08989c0
2022-09-14 08:52:49 +00:00
Solomon
4a0446852c Adds configSchema to get_source_kind_capabilities
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5860
GitOrigin-RevId: 9bc13af5104251c509194d28ece81066643ab2a2
2022-09-14 07:07:04 +00:00
Lyndon Maydwell
2ef11a4766 Add --dry-run switch to graphql-engine:test:tests-dc-api [GDW-338]
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5847
GitOrigin-RevId: 97011a617f0a305109f6f8d29293a4898e0bac10
2022-09-14 06:27:29 +00:00
Samir Talwar
ee995aacc1 Extract out functions from columnParser in Backend.
The intent is to generalize `columnParser` to the point where it is the same across all backends, and then remove the interface in favor of a single implementation.

This extracts out `enumParser` and `possiblyNullable` as the two main areas that differ across backends. We may split `possiblyNullable` further so that we can extract some of that logic out into a common function too.

With these changes, the various `columnParser` implementations become semantically equivalent. They still do different things, and so reconciling them will require further changes.

Co-Authored-By: Antoine Leblanc <antoine@hasura.io>

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5841
GitOrigin-RevId: eec1770931eed5d72da70c97d7d0f00e33fa15d2
2022-09-13 21:22:25 +00:00
Sean Park-Ross
8e91478d94 Docs: New What's New Section
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5455
GitOrigin-RevId: d3782b934989e6893416cf3044e48146461edf1d
2022-09-13 20:23:43 +00:00
Samir Talwar
e12923a1b3 Demand Python 3.9 to run the server's Python integration tests.
CI has already been upgraded.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5857
GitOrigin-RevId: 28a56c5fd61f425b76df478fd230e6944ce8122f
2022-09-13 20:20:19 +00:00
Brandon Simmons
82f129ff7c PLAT-75: Log uncompressed_response_size
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5827
GitOrigin-RevId: c98e5075f38737d9eb9cf467a62032ca5984304e
2022-09-13 15:37:14 +00:00
Matt Hardman
3fd5ea3965 feature (console): enable table tracking for GDC sources
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5772
Co-authored-by: Vijay Prasanna <11921040+vijayprasanna13@users.noreply.github.com>
GitOrigin-RevId: d04d2a1f1dccc383c9a17b9fb63ea2b435adb7e9
2022-09-13 09:06:59 +00:00
paritosh-08
db710d38b7 server, pro: event trigger auto cleanup (increment 2)
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5746
Co-authored-by: pranshi06 <85474619+pranshi06@users.noreply.github.com>
Co-authored-by: Puru Gupta <32328846+purugupta99@users.noreply.github.com>
Co-authored-by: Karthikeyan Chinnakonda <15602904+codingkarthik@users.noreply.github.com>
GitOrigin-RevId: f4e5e06389ca57bdb5f7771f459c07418787111d
2022-09-13 08:34:52 +00:00
Sooraj
f728f55565 console: add data-trackid to actions, events and remote schema create journeys
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5785
GitOrigin-RevId: 887f7f53adc097b99648228010d5ea9f84e1adcb
2022-09-13 05:56:52 +00:00
Naveen Naidu
005dbf43cb server: event triggers should be dropped when a previously present source is dropped in replace_metadata
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5739
Co-authored-by: paritosh-08 <85472423+paritosh-08@users.noreply.github.com>
GitOrigin-RevId: 772de8bb6a55a0002885e08a778c16f22ea0b113
2022-09-13 04:18:21 +00:00
Solomon
fb3ba23a44 get_source_tables API call, don't fold table names.
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5837
GitOrigin-RevId: 9f785793a279c4016d8ed88374d2442019489252
2022-09-13 02:06:24 +00:00
Jesse Hallett
8729301ad6 server: codecs for postgres connection configuration types
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5722
GitOrigin-RevId: 85de9a550229d3ac3304ec46fed81e97f2a150f6
2022-09-12 21:46:33 +00:00
Jesse Hallett
b094947239 server: codecs for TableMetadata, FunctionMetadata, and permissions
This PR expands the set of codecs for source metadata to include `TableMetadata`, `FunctionMetadata`, and various permission types. This fills out more detail in the generated OpenAPI document.

See the [generated OpenAPI spec](https://gist.github.com/hallettj/783d06a926cbc854eececa4964e8aa5b) based on this PR.

See also the
[generated TypeScript types](https://github.com/hasura/graphql-engine-mono/files/9448102/client-typescript.tar.gz) based on that spec.

Ticket: https://hasurahq.atlassian.net/browse/MM-66

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5664
GitOrigin-RevId: b6e1f32c669368cd6150e6f69fc36b78b748d9bb
2022-09-12 20:31:07 +00:00
Tanmai Gopal
7ec5ea86b1 Streaming sub architecture post updates
Minor formatting and typo updates to current streaming subscriptions architecture post.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5786
Co-authored-by: Praveen Durairaju <14110316+praveenweb@users.noreply.github.com>
GitOrigin-RevId: c8d023c62b59750e8a5bfb55e37da29591c8995c
2022-09-12 19:33:42 +00:00
Rob Dominguez
18f437d265 Docs: update contributing guide
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5778
GitOrigin-RevId: 6af33faa0792065f410cb76285f55f6318ff80a6
2022-09-12 16:26:03 +00:00
Antoine Leblanc
40db3d7eab Resolve source customization at schema cache building time.
### Description

This PR attempts to fix several issues with source customization as it relates to remote relationships. There were several issues regarding casing: at the relationship border, we didn't properly set the target source's case, we didn't have access to the list of supported features to decide whether the feature was allowed or not, and we didn't have access to the global default.

However, all of that information is available when we build the schema cache, as we do resolve the case of some elements such as function names: we can therefore resolve source information at the same time, and simplify both the root of the schema and the remote relationship border.

To do this, this PR introduces a new type, `ResolvedSourceCustomization`, to be used in the Schema Cache, as opposed to the metadata's `SourceCustomization`, following a pattern established by a lot of other types.

### Remaining work and open questions

One major point of confusion: it seems to me that we didn't set the case at all across remote relationships, which would suggest we would use the case of the LHS source across the subset of the RHS one that is accessible through the remote relationship, which would in turn "corrupt" the parser cache and might result in the wrong case being used for that source later on. Is that assesment correct, and was I right to fix it?

Another one is that we seem not to be using the local case of the RHS to name the field in an object relationship; unless I'm mistaken we only use it for array relationships? Is that intentional?

This PR is also missing tests that would show-case the difference, and a changelog entry. To my knowledge, all the tests of this feature are in the python test suite; this could be the opportunity to move them to the hspec suite, but this might be a considerable amount of work?

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5619
GitOrigin-RevId: 51a81b713a74575e82d9f96b51633f158ce3a47b
2022-09-12 16:07:26 +00:00
nevermore
cc6c026ca9 console: add Hasura familiarity survey component
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5829
Co-authored-by: Abhijeet Khangarot <26903230+abhi40308@users.noreply.github.com>
GitOrigin-RevId: ca2ebd3c3ab15f9b3e75497517f6c0d11c8440b1
2022-09-12 15:31:48 +00:00
Daniel Harvey
00b1acaf38 tests: JSON and JSONB hspec tests
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5721
GitOrigin-RevId: dde515a364566aa8d517923281ea670a8decbdd9
2022-09-12 14:17:19 +00:00
ananya-2410
a5c6a5b64a ci: tag release v2.11.2 and v2.12.0
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5831
GitOrigin-RevId: 8aedf377bf6f80bd7df14b7da9dc52c845a3a844
2022-09-12 07:19:23 +00:00
Vijay Prasanna
465e669b30 fix (console): list gdc sources under the "Data Manager" table
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5784
GitOrigin-RevId: 6630515755d8fdcada39594c8063988873e23950
2022-09-12 06:17:12 +00:00
Tom Harding
70515d94c7 Extract Hasura.Prelude from src-lib
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5776
GitOrigin-RevId: 0df263a4d800e694e68e31c189c360c88cf48abc
2022-09-09 13:58:48 +00:00
Jesse Hallett
977c624c9e server: prune health check from codecs for backends that don't support it
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5822
GitOrigin-RevId: 637a8c668299409385f340d62fc6a84df5c4aa0f
2022-09-09 13:07:33 +00:00
paritosh-08
d6970173c1 server, pro: event trigger auto cleanup (increment 1)
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5612
Co-authored-by: pranshi06 <85474619+pranshi06@users.noreply.github.com>
Co-authored-by: Puru Gupta <32328846+purugupta99@users.noreply.github.com>
Co-authored-by: Karthikeyan Chinnakonda <15602904+codingkarthik@users.noreply.github.com>
GitOrigin-RevId: 6ce69ebb555e49439ae2b01fe42e39415ac53966
2022-09-09 08:28:31 +00:00
Rob Dominguez
2654a1b4f4 Docs: remove experimental-feature note for streaming subs
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5779
GitOrigin-RevId: 56892828b29addfe1c26583c2b811b0becbfd922
2022-09-09 07:17:44 +00:00
Samir Talwar
3e6013ddd2 server/tests-py: Run tests locally in the same way as CI.
This allows a developer, through Docker, to run the Python integration tests in pretty much exactly the same way as CI does.

Allowing us to more readily diagnose issues locally.

I'm hoping this is temporary and we won't need it for too long, but I have found it invaluable over the last few days so I would like to share it.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5818
GitOrigin-RevId: 18876fbbcbe7c5492afdf54d96af45ab2c519b77
2022-09-09 05:03:23 +00:00
Samir Talwar
f48c882521 server: Share tests between CircularT and MemoizeT.
This abstracts `CircularT`'s test cases to work against "any" memoizer, and then runs them against `MemoizeT` as well.

Surprisingly (or not), this works without issue; `MemoizeT` passes all tests with a couple of extra instances.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5780
GitOrigin-RevId: 461880caf9220dc3f52d622a22e8b8bcd594e404
2022-09-08 19:38:49 +00:00
Auke Booij
c5d2b9bb18 Move parallelization from buildSchemaCacheRule to buildGQLContext
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5819
GitOrigin-RevId: bed79c598e5576f900e64419054b9b0882c605dd
2022-09-08 18:04:49 +00:00
Philip Lykke Carlsen
e59adf86ff refactor(tests): Expose more Parser types in Hasura.GraphQL.Schema.Parser
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5684
GitOrigin-RevId: b23f26b19e25c88e6f0baab081d0674565789797
2022-09-08 13:57:18 +00:00
Erik Magnusson
ff65de1df4 console: fixed checkbox logic for other types than select on permissions pages
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5794
GitOrigin-RevId: 4b214df3856e0320d0c2b0eda0a44a78ff9bbab5
2022-09-08 11:35:06 +00:00
Erik Magnusson
0af8514198 console: fixed missaligned tooltips on permissions page
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5793
GitOrigin-RevId: 4d3ca362adff41a96c0c2596972e3d6a9c012703
2022-09-08 10:36:25 +00:00
Varun Choudhary
e4f8c3215b console: develop operation modal window using hooks to create add/edit operation
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5748
Co-authored-by: Daniele Cammareri <5709409+dancamma@users.noreply.github.com>
GitOrigin-RevId: ad2ce5954ec71f336615046e86b1b157b165c587
2022-09-08 10:07:49 +00:00
Luca Restagno
9d61224d44 console: fix is_generated column handling
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5774
Co-authored-by: Erik Magnusson <32518962+ejkkan@users.noreply.github.com>
GitOrigin-RevId: 50d0550599f79237316777481ce9768a52ea6b4d
2022-09-08 09:21:50 +00:00
Rob Dominguez
0d2a09d841 Docs: update wget and curl for ee from beta to stable
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5801
GitOrigin-RevId: f234289c12e284e8b7bb39301850eb2bc577df12
2022-09-08 08:52:01 +00:00
Luca Restagno
527fc826e6 console: remove the interaction tests for FiltersSection
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5811
GitOrigin-RevId: 59e2e483cee5eb1273d4251c01f76552d289de4f
2022-09-08 08:41:50 +00:00
Sheila Babadi
e1b1bd0fd4 docs: add description of environment name project setting
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5807
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
GitOrigin-RevId: fb52354fa37e1d1ac77dbbcc30e0947e7cb2752e
2022-09-08 07:53:00 +00:00
Samir Talwar
880f165b81 Correct the names and references of various DC SQLite make targets.
`spawn-dc-sqlite-agent` was incorrectly named, and the `start-dc-sqlite-agent` target was missing. In addition, we usually only make the `start-xyz` target public in `make help`, and so only that needs a comment.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5804
GitOrigin-RevId: 8064ce148d004ef73dbd8570ef30435423ede0a1
2022-09-08 07:48:42 +00:00
Samir Talwar
8d7c089273 server/tests-py: Start some node.js test services on random ports.
Where possible, we start the services on random ports, to avoid
port conflicts when parallelizing tests in the future.

When this isn't possible, we explicitly state the port, and wait for the
service to start. This is typically because the GraphQL Engine has already
started with knowledge of the relevant service passed in through an
environment variable.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5542
GitOrigin-RevId: b51a095b8710e3ff20d1edb13aa576c5272a5565
2022-09-07 16:26:10 +00:00
Daniel Harvey
50750e0aa9 tests: log in a better place so we don't miss things
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5763
GitOrigin-RevId: 5e3c0be1555596b90c88bbe4c29f88d14552efea
2022-09-07 15:41:28 +00:00
Daniel Harvey
8c8dc7a52f tests: add CockroachDB hspec tests
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5789
Co-authored-by: Tom Harding <6302310+i-am-tom@users.noreply.github.com>
GitOrigin-RevId: 870005475c289634cc2740bc375794267b45da1f
2022-09-07 15:12:03 +00:00
Samir Talwar
1b20bb55b5 Create a Docker image specifically for running the Python tests.
This separates out the dependencies from the server builder.

I am using Python 3.9 as it has improved support for type annotations, which I would like to use.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5761
GitOrigin-RevId: d57b4a5ace050861e516dd79a4a38ff4844d4093
2022-09-07 14:29:42 +00:00
Philip Lykke Carlsen
d43a30e8fc feat(tests): Introduce AggregationPredicatesSpec
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5686
GitOrigin-RevId: 85b39ad569180929e5620c45bf9a98ef6ee99d42
2022-09-07 12:10:52 +00:00
Philip Lykke Carlsen
8bc34e12e3 refactor(tests): Remove use of unsafeCoerce
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5682
GitOrigin-RevId: 78ac1482977f427148e7675e45ff9c515db02b68
2022-09-07 11:22:14 +00:00
Daniel Harvey
bf91655c30 tests: allow skipping test suites using a Fixture option
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5773
GitOrigin-RevId: 4ff0f18e96313ce5c0ceb5a284e382a70ed0b9b4
2022-09-07 09:17:22 +00:00
Daniel Harvey
7d86a5d231 tests: use newest CockroachDB image in docker-compose.yml
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5764
GitOrigin-RevId: 36e3043c80bbda09c69e9b34ef14c64993d89662
2022-09-07 06:17:03 +00:00
Lyndon Maydwell
cd6fe41b99 SQLite Data Connectors HSpec Tests - GDW-183
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5731
GitOrigin-RevId: 0af22a85bd6b1cb8888562e05cde640047e56b41
2022-09-07 03:43:32 +00:00
kodiakhq[bot]
36860c8fb2 ci/benchmarks: fix division-by-zero in report generation, after e09406170e1
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5775
GitOrigin-RevId: 5cd641f23ffe1929c47568a04746ef507c8c5874
2022-09-06 20:29:22 +00:00
Antoine Leblanc
512a4dbb92 Use a different reader context for sources and remote schemas with new SchemaT monad.
### Description

This PR changes all the schema code to operate in a specific `SchemaT` monad, rather than in an arbitrary `m` monad. `SchemaT` is intended to be used opaquely with `runSourceSchema` and `runRemoteSchema`. The main goal of this is to allow a different reader context per part of the schema: this PR also minimizes the contexts. This means that we no longer require `SchemaOptions` when building remote schemas' schema, and this PR therefore removes a lot of dummy / placeholder values accordingly.

### Performance and stacking

This PR has been through several iterations. #5339 was the original version, that accomplished the same thing by stacking readers on top of the stack at every remote relationship boundary. This raised performance concerns, and @0x777 confirmed with an ad-hoc test that in some extreme cases we could see up to a 10% performance impact. This version, while more verbose, allows us to unstack / re-stack the readers, and avoid that problem. #5517 adds a new benchmark set to be able to automatically measure this on every PR.

### Remaining work

- [x] a comment (or perhaps even a Note?) should be added to `SchemaT`
- [x] we probably want for #5517 to be merged first so that we can confirm the lack of performance penalty

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5458
GitOrigin-RevId: e06b83d90da475f745b838f1fd8f8b4d9d3f4b10
2022-09-06 16:49:23 +00:00
Lyndon Maydwell
77789e303f Kriti Documentation
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5230
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Sean Park-Ross <94021366+seanparkross@users.noreply.github.com>
GitOrigin-RevId: dea3876b74f822ffe080933c6b9814f544fc968d
2022-09-06 15:47:18 +00:00
Daniele Cammareri
af08d80b49 console: add allow list management hooks
## Description 🔖

This PR add 2 hooks required for the new allow list manager

- useAddCollectionToAllowList
- useRemoveCollectionFromAllowList

and integrate them into the QueryCollectionHeader component.

I also moved QueryCollectionHeader component under QueryCollections folder

## Review Setup 💻

- [ ] Run Storybook

## Review checklist. 📋

- [ ] Check useAddToAllowList hook story
- [ ] Check useRemoveFromAllowList hook story
- [ ] Check QueryCollectionHeader story

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5771
GitOrigin-RevId: aaee4a44602a54e374522924d8e3afe7e837d2c7
2022-09-06 15:03:38 +00:00