Commit Graph

2092 Commits

Author SHA1 Message Date
kodiakhq[bot]
f2931a4d32 server: import pg-client-hs with history
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5735
Co-authored-by: Vamshi Surabhi <6562944+0x777@users.noreply.github.com>
Co-authored-by: Alexis King <759911+lexi-lambda@users.noreply.github.com>
Co-authored-by: Rakesh Emmadi <12475069+rakeshkky@users.noreply.github.com>
Co-authored-by: Auke Booij <164426+abooij@users.noreply.github.com>
Co-authored-by: Brandon Simmons <210815+jberryman@users.noreply.github.com>
Co-authored-by: Lyndon Maydwell <92299+sordina@users.noreply.github.com>
Co-authored-by: Anon Ray <616387+ecthiender@users.noreply.github.com>
Co-authored-by: Evie Ciobanu <1017953+eviefp@users.noreply.github.com>
Co-authored-by: Swann Moreau <62569634+evertedsphere@users.noreply.github.com>
Co-authored-by: jkachmar <8461423+jkachmar@users.noreply.github.com>
Co-authored-by: Robert <132113+robx@users.noreply.github.com>
Co-authored-by: awjchen <13142944+awjchen@users.noreply.github.com>
Co-authored-by: Karthikeyan Chinnakonda <15602904+codingkarthik@users.noreply.github.com>
Co-authored-by: Tom Harding <6302310+i-am-tom@users.noreply.github.com>
GitOrigin-RevId: 6a3940b2596fc178379b85d5fa79bd9ac83457e2
2022-09-14 14:51:34 +00:00
David Overton
cbddcce26b Data connector cache invalidations
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5820
GitOrigin-RevId: ded80e378901cc0c0ca12eb67d9264756a8d6ff4
2022-09-14 13:00:47 +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
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
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
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
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
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
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
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
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
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
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
Auke Booij
6d84d1b78f Improve error reporting by tracking more Metadata origins
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5740
GitOrigin-RevId: 555de02a370b1dfa9cf5e903bb5c3f4b4c3e8465
2022-09-06 14:19:48 +00:00
David Overton
602025cc22 Fix DateTimes in expected test output
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5762
GitOrigin-RevId: 6a912a01b22604f97f966dd8a8777bf864bdc88b
2022-09-06 07:00:33 +00:00
David Overton
f4419236ed Gdc capabilities scalar types - GDW-87
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5597
GitOrigin-RevId: 4f561bf476266955d7b1d3dbca4d406a97bf8b34
2022-09-06 04:26:03 +00:00
Philip Lykke Carlsen
bb2c704c6d refactor(tests): Rename monad types
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5683
GitOrigin-RevId: 3d0a3f327eb069fdeb5339981dd5022d8f48699a
2022-09-05 16:29:20 +00:00
Daniel Harvey
4964ddc6e9 server: skip SOH header in FromCol EncJSON instance
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5710
GitOrigin-RevId: 6065c5b378cd458ad7ea05ce5ca5ff3cee5b13a7
2022-09-05 15:04:32 +00:00
Tom Harding
136349a70a Tidy up simple object query tests, match fixtures to docs
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5752
GitOrigin-RevId: 2e308504a188745ad5714d60d0fe449a65d6f950
2022-09-05 11:09:38 +00:00
Tom Harding
2ac1680817 Update primary key hspec tests to match the docs, add failure cases
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5753
GitOrigin-RevId: ac3070b6a5dbfecdabead209a5f4ee7daa948066
2022-09-05 10:37:09 +00:00
Samir Talwar
6565c1430f Upgrade graphql-parser-hs.
This removes string interpolation from quasiquoted literals. We only use
this in one place and it's totally unnecessary.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5750
GitOrigin-RevId: 3493a11db6347332e7e3721a7dca616947505be6
2022-09-05 09:14:36 +00:00
David Overton
0b7353657c Push capabilities resolution code into BackendMetadata type class
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5738
GitOrigin-RevId: 5c8e8232b8db67584d3f0a03987b97f0cce53a97
2022-09-05 02:44:10 +00:00
Solomon
36ddb267df Data Connectors: List Capabilties Metadata Endpoint
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5723
GitOrigin-RevId: 2dcd3c102fd41073449ae719ab6fa39bfd76bba5
2022-09-02 17:51:19 +00:00
awjchen
78cf1d544e server/pro: enable health check on data sources and report via logging and API
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/4868
Co-authored-by: Rakesh Emmadi <12475069+rakeshkky@users.noreply.github.com>
Co-authored-by: Sean Park-Ross <94021366+seanparkross@users.noreply.github.com>
GitOrigin-RevId: b8d43e3f7d977c4bb37b8506ac87ce7bf289d542
2022-09-02 06:34:29 +00:00
Brandon Simmons
6e578f229a server/ci/benchmarks: incorporate ad-hoc queries into benchmark reports
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5704
GitOrigin-RevId: e09406170e1245ceeb3be51f498159f76af4f4bf
2022-09-01 20:48:13 +00:00
Brandon Simmons
6ab128a7e3 server/benchmarks: report response body size changes in PR regression comment
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5705
GitOrigin-RevId: 76c355f5ce6872a2bfd6c9b17a766a3c974445db
2022-09-01 17:25:10 +00:00
David Overton
00aeb57adf Add data connector agent capabilities schema cache
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5689
GitOrigin-RevId: 86e18e92106e5e5b6543f17fc21e2ab65bdd69ed
2022-09-01 05:29:04 +00:00
Daniel Chambers
9ef243f0b2 Fixed Constraint's foreign table not being typed with TableName in Data Connector API
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5687
GitOrigin-RevId: 5f616e65c493e640770d0b53f265bd2b62ad9369
2022-09-01 00:52:35 +00:00
Vishnu Bharathi
517376f12a ci: tag release v2.11.1
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5697
GitOrigin-RevId: e0150a9326ad87f8981baca2bb45da96b6f30784
2022-08-31 14:17:54 +00:00
Samir Talwar
175a9ee8ba Upgrade unordered-containers to the latest version.
This includes TH.Lift instances.

I am motivated to make this change because `unordered-containers` is set to either v0.2.17.0 or v0.2.19.1 in nixpkgs-unstable.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5620
GitOrigin-RevId: 7fd3024fdbf6a948adbdf5f4187d47d5da9acbda
2022-08-31 09:50:40 +00:00
Philip Lykke Carlsen
b0d2262b20 Let the same SQL function serve as both a computed field and as a root field (fixes hasura/graphql-engine#8643)
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5676
GitOrigin-RevId: f891e4172504897bb125bb1e524dc75b11e319c1
2022-08-30 15:00:45 +00:00
Daniel Harvey
2e2b894ed3 tests: log everything posted to HGE in hspec tests
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5636
GitOrigin-RevId: d6bc47857e3ad3c6a995284ba6756a643cfb9c4c
2022-08-30 08:54:04 +00:00
Solomon
ba86adf224 Adds GetSourceSchema API - GDW-128
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5655
GitOrigin-RevId: 1589930f15450b7b5b4762c17430c6d401f1751c
2022-08-29 23:52:47 +00:00