Commit Graph

8198 Commits

Author SHA1 Message Date
paritosh-08
640457b09a allow null for nullable field (#490)
<!-- Thank you for submitting this PR! :) -->

## Description

This PR fixes the bug where passing a null value to a nullable input
field resulted in an error. It also uncomments the test for that.

JIRA: https://hasurahq.atlassian.net/browse/V3ENGINE-97

According to [the graphql
spec](https://spec.graphql.org/October2021/#sec-Null-Value):

>
>
> ```graphql
> {
>   field(arg: null)
>   field
> }
> ```
> The first has explicitly provided null to the argument “arg”, while
the second has implicitly not provided a value to the argument “arg”.
These two forms may be interpreted differently.

We are also considering the two cases separately, i.e., if something is
absent and nullable vs if something is set to null and is nullable. We
are not manually adding the nullable fields and setting them to null if
not specified explicitly.

## Changelog

- Add a changelog entry (in the "Changelog entry" section below) if the
changes in this PR have any user-facing impact. See [changelog
guide](https://github.com/hasura/graphql-engine-mono/wiki/Changelog-Guide).
- If no changelog is required ignore/remove this section and add a
`no-changelog-required` label to the PR.

### Product
_(Select all products this will be available in)_
- [x] community-edition
- [x] cloud
<!-- product : end : DO NOT REMOVE -->

### Type
<!-- See changelog structure:
https://github.com/hasura/graphql-engine-mono/wiki/Changelog-Guide#structure-of-our-changelog
-->
_(Select only one. In case of multiple, choose the most appropriate)_
- [ ] highlight
- [ ] enhancement
- [x] bugfix
- [ ] behaviour-change
- [ ] performance-enhancement
- [ ] security-fix
<!-- type : end : DO NOT REMOVE -->

### Changelog entry
<!--
  - Add a user understandable changelog entry
- Include all details needed to understand the change. Try including
links to docs or issues if relevant
  - For Highlights start with a H4 heading (#### <entry title>)
  - Get the changelog entry reviewed by your team
-->

allow null for nullable field

<!-- changelog-entry : end : DO NOT REMOVE -->

<!-- changelog : end : DO NOT REMOVE -->

---------

Co-authored-by: Anon Ray <ecthiender@users.noreply.github.com>
V3_GIT_ORIGIN_REV_ID: 4aa181899379905aaca1a71f498b85515180ae1d
2024-04-23 08:07:28 +00:00
Tom Harding
6b09fcdc06 Require that subgraph names be valid identifiers (#492)
As per
[V3ENGINE-112](https://hasurahq.atlassian.net/browse/V3ENGINE-112), we
now require that subgraph names be valid graphql identifiers. This PR
updates the type of an `OpenDdSubgraph` to reflect this.

<!-- Thank you for submitting this PR! :) -->

## Description

<!--
  Questions to consider answering:
  1. What user-facing changes are being made?
2. What are issues related to this PR? (Consider adding `(close
#<issue-no>)` to the PR title)
  3. What is the conceptual design behind this PR?
  4. How can this PR be tested/verified?
  5. Does the PR have limitations?
  6. Does the PR introduce breaking changes?
-->

## Changelog

- Add a changelog entry (in the "Changelog entry" section below) if the
changes in this PR have any user-facing impact. See [changelog
guide](https://github.com/hasura/graphql-engine-mono/wiki/Changelog-Guide).
- If no changelog is required ignore/remove this section and add a
`no-changelog-required` label to the PR.

### Product
_(Select all products this will be available in)_
- [ ] community-edition
- [ ] cloud
<!-- product : end : DO NOT REMOVE -->

### Type
<!-- See changelog structure:
https://github.com/hasura/graphql-engine-mono/wiki/Changelog-Guide#structure-of-our-changelog
-->
_(Select only one. In case of multiple, choose the most appropriate)_
- [ ] highlight
- [ ] enhancement
- [ ] bugfix
- [x] behaviour-change
- [ ] performance-enhancement
- [ ] security-fix
<!-- type : end : DO NOT REMOVE -->

### Changelog entry
<!--
  - Add a user understandable changelog entry
- Include all details needed to understand the change. Try including
links to docs or issues if relevant
  - For Highlights start with a H4 heading (#### <entry title>)
  - Get the changelog entry reviewed by your team
-->

Subgraph names are now required to be valid GraphQL identifiers (that
is, to match `"^[_a-zA-Z][_a-zA-Z0-9]*$"`).

<!-- changelog-entry : end : DO NOT REMOVE -->

<!-- changelog : end : DO NOT REMOVE -->

[V3ENGINE-112]:
https://hasurahq.atlassian.net/browse/V3ENGINE-112?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

Co-authored-by: Tom Harding <tom.harding@hasura.io>
V3_GIT_ORIGIN_REV_ID: 616c77a41490e079f6fb03a919f83d3e61270cc5
2024-04-22 15:52:02 +00:00
Samir Talwar
572fc54a54 Speed up debug builds in Docker. (#484)
This splits out a `debug.Dockerfile` which makes use of out-of-band
caching to speed up builds drastically, at the expense of
reproducibility.

It is used to run tests and auxiliary test services (i.e. the custom
connector).

The new `debug.Dockerfile` marks the Cargo dependency and build caches
as Docker caches, which means they are shared between builds. This is
probably fine for local work and testing. The `Dockerfile` continues to
not use a cache like this, to guarantee that it is not polluted by extra
information, at the expense of build speed.

In addition, we build a `nextest` archive ahead of time to avoid
building tests when attempting to run them.

On my machine, a re-run of `just test` now takes seconds.

I have also sped up the `postgres` container start time by creating a
database called "finished" last, and then waiting for that to show up.

V3_GIT_ORIGIN_REV_ID: 7ef0548361987175b68a0cad44c8f2295110a1fb
2024-04-22 13:43:29 +00:00
Daniel Harvey
019a7ae874 Ask benchmarks to be quicker please (#485)
<!-- Thank you for submitting this PR! :) -->

## Description

Making the graphs is taking too long, re-adding this advisory
measurement time to them.

V3_GIT_ORIGIN_REV_ID: e45ef4b8b8c8fd0cf45aacb989dd2e382b6b958a
2024-04-22 10:59:53 +00:00
dependabot[bot]
c779b3511c Bump anyhow from 1.0.81 to 1.0.82 (#486)
V3_GIT_ORIGIN_REV_ID: 6a1383092ff83a2d6bdfebc008124f1b710e13f4
2024-04-22 10:03:53 +00:00
dependabot[bot]
58c3cf75b7 Bump bson from 2.9.0 to 2.10.0 (#487)
V3_GIT_ORIGIN_REV_ID: 7be9ec538e221a7d2203aab3e356d249dad5d540
2024-04-22 09:42:13 +00:00
dependabot[bot]
4762f167ea Bump base64 from 0.21.7 to 0.22.0 (#488)
V3_GIT_ORIGIN_REV_ID: b5706296b08d72e4dceeb475c48d94399746f49d
2024-04-22 09:19:07 +00:00
Daniel Harvey
838b6016f4 Extract DataConnectorCoreInfo from types (#482)
<!-- Thank you for submitting this PR! :) -->

## Description

Had two types that were identical except for their `scalars` field. Have
extracted the commonality to make this easier to change in future.
Functional no-op.

V3_GIT_ORIGIN_REV_ID: 4ab5582e8ca62fc85345c6273cab3b0c4741b38b
2024-04-19 15:57:30 +00:00
Samir Talwar
b0af7bf3ca Convert more values to references. (#479)
I was on a roll.

I also replaced `futures` with `futures-util`, which is theoretically
smaller.

V3_GIT_ORIGIN_REV_ID: 27228a506f1edb6d0e33a4c61499e500cc5d0df7
2024-04-19 15:24:04 +00:00
Samir Talwar
723938a441 Bundle custom connector data with the binary. (#480)
This changes the way we build the custom connector so that the data is
baked in at compile time, not loaded from the file system at runtime.
This simplifies packaging.

I also took the liberty to switch out `.unwrap()` for `anyhow`, and to
avoid parsing a string to construct the socket address.

V3_GIT_ORIGIN_REV_ID: d562e0a9852b4e3ecde45bd6938d8eb1b066211b
2024-04-19 15:06:11 +00:00
Daniel Harvey
b9b7d1f9b5 Run benchmarks in Github Actions (#476)
<!-- Thank you for submitting this PR! :) -->

## Description

This adds graphing of benchmarks for `v3-engine` like we do in
`ndc-postgres`: https://hasura.github.io/ndc-postgres/dev/bench/

Voila! https://psychic-doodle-372212k.pages.github.io/dev/bench/

V3_GIT_ORIGIN_REV_ID: f164a0a5dc8ab58f5a224f90e48e49208c87094f
2024-04-19 09:12:24 +00:00
Samir Talwar
5317384d78 Set trace headers when making HTTP requests during JWT auth. (#477)
## Description

We set W3C and B3 trace headers when making JWT authentication HTTP
requests to obtain JWKs. This will allow us to figure out what's going
on if we spend a lot of time here.

## Changelog

- Add a changelog entry (in the "Changelog entry" section below) if the
changes in this PR have any user-facing impact. See [changelog
guide](https://github.com/hasura/graphql-engine-mono/wiki/Changelog-Guide).
- If no changelog is required ignore/remove this section and add a
`no-changelog-required` label to the PR.

### Product
_(Select all products this will be available in)_
- [ ] community-edition
- [x] cloud
<!-- product : end : DO NOT REMOVE -->

### Type
<!-- See changelog structure:
https://github.com/hasura/graphql-engine-mono/wiki/Changelog-Guide#structure-of-our-changelog
-->
_(Select only one. In case of multiple, choose the most appropriate)_
- [ ] highlight
- [x] enhancement
- [ ] bugfix
- [ ] behaviour-change
- [ ] performance-enhancement
- [ ] security-fix
<!-- type : end : DO NOT REMOVE -->

### Changelog entry
<!--
  - Add a user understandable changelog entry
- Include all details needed to understand the change. Try including
links to docs or issues if relevant
  - For Highlights start with a H4 heading (#### <entry title>)
  - Get the changelog entry reviewed by your team
-->

- JWT authentication requests over HTTP now propagate trace headers when
making request for JWKs. These can be used to identify latency in
authentication.

<!-- changelog-entry : end : DO NOT REMOVE -->

<!-- changelog : end : DO NOT REMOVE -->

V3_GIT_ORIGIN_REV_ID: 70fa68c85eb4ffcc76e445771263ce08496dc4b4
2024-04-18 18:12:53 +00:00
Samir Talwar
c7d9baaf66 Use references where possible instead of cloning. (#478)
When trying to reduce the number of dependencies we use in the engine, I
was blocked by a few `.clone()` calls that, on inspection, turned out to
be completely unnecessary.

I have replaced those with passing by reference, and then gone on a
pedant spree. I enabled the `needless_pass_by_value` Clippy warning and
fixed it everywhere that it highlighted. In most places, this meant
adding `&`, but I also marked some types as `Copy`, which makes
pass-by-value the right move.

In one place, I replaced calls to `async_map` with `if` and `else`, to
avoid constructing closures that capture across async boundaries. This
means I could just delete `async_map`.

V3_GIT_ORIGIN_REV_ID: 6ff71f0c553b707889d89552eff3e8c001e898cc
2024-04-18 17:35:48 +00:00
Daniel Harvey
7b510d1373 Separate data_connector_scalar_types into discreet metadata resolve stage (#472)
<!-- Thank you for submitting this PR! :) -->

## Description

Following https://github.com/hasura/v3-engine/pull/470 , split data
connector scalar type representations resolve step into a separate stage
and files etc. Functional no-op.

V3_GIT_ORIGIN_REV_ID: 3bcef6b58c0a4f4f7fa529456cb4261667a7e0ce
2024-04-18 16:12:21 +00:00
Rikin Kachhia
de2cdc70d8 fix permission builder dropdowns with single value
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10771
GitOrigin-RevId: b5a8b382c1ab5857906bd46bc073e89c0a52a4c0
2024-04-18 12:50:39 +00:00
Daniel Harvey
f775580dc9 Separate scalar_types into discreet metadata resolve stage (#470)
<!-- Thank you for submitting this PR! :) -->

## Description

Following from https://github.com/hasura/v3-engine/pull/469 , we split
scalar type resolution too. That will need to be merged before this so
we can tidy up the data passing between them.

No functional change.

V3_GIT_ORIGIN_REV_ID: 5e157c4d15d0223d2bbd24f911ebee24e98b81cd
2024-04-18 10:57:21 +00:00
Daniel Harvey
4b34cddd8a Separate data_connector_type_mappings resolve stage (#469)
<!-- Thank you for submitting this PR! :) -->

## Description

Fairly mechanical change to split the data connector type mappings
resolve into own folders / stage. No functional changes.

V3_GIT_ORIGIN_REV_ID: 805c9d056a64a47afa9005674298e7417e58dad7
2024-04-18 09:24:02 +00:00
Samir Talwar
2cd9714e7f Use anyhow in tests instead of unwrapping everywhere. (#475)
Just a minor change to make tests more readable by avoiding `.unwrap()`.

V3_GIT_ORIGIN_REV_ID: 2cc13b9750e24ea82dfefcc68a05ffd63e1b4b7c
2024-04-18 08:58:17 +00:00
Samir Talwar
98fad6ae45 Use the json! macro to build JSON in JWT tests. (#473)
This uses the `json!` macro in the JWT client code and its associated
tests, rather than embedding a string and parsing it. This will make
compilation fail if the JSON is invalid, which seems better than a
runtime/test-time failure.

There are a few cases where we were constructing a JSON string by
concatenating strings using `format!`. `json!` also handles these cases
better, as you can refer to a JSON value by its variable name too, and
it doesn't require escaping `{` and `}`.

V3_GIT_ORIGIN_REV_ID: 4c40299b71d583efae7b0cdbabee8cff21b09bef
2024-04-18 07:42:33 +00:00
paritosh-08
9ffe298d01 add deserialize trait to AuthConfig (#474)
## Description

There are no user-facing changes in this PR. It just adds the
`Deserialize` trait to `AuthConfig` and makes some changes to internal
functions to avoid clones.

---------

Co-authored-by: Samir Talwar <samir.talwar@hasura.io>
V3_GIT_ORIGIN_REV_ID: 2e8956bdd3827715693eb14239c808baf737d588
2024-04-18 07:09:53 +00:00
Rakesh Emmadi
010a313988 Expose error caused by negative limit and offset values in the API response (#471)
Previously, negative values for `offset` and `limit` input fields
resulted in an internal error and not exposed in the API response. The
reason is that these errors are raised from normalized_ast conversion
after GraphQL validation. The validation will only check for the type,
but not the value of the input fields.

This Commit:
- Introduces a utility function to lift any unexpected value internal
error to external.
- Use the function for `limit` and `offset` input field value coercion.

V3_GIT_ORIGIN_REV_ID: a186eb89a836359427e58f7a847eab3e2f8fafa4
2024-04-18 06:35:38 +00:00
Daniel Harvey
90082f9fba Enable redundant_closure_for_method_calls clippy rule and fix (#468)
<!-- Thank you for submitting this PR! :) -->

## Description

In https://github.com/hasura/v3-engine/pull/441 we made all our skipped
Clippy rules explicit. This enables one (pretty arbitrarily) and fixes
what comes up.

V3_GIT_ORIGIN_REV_ID: 406692a2a134cb2a6cf5785acd0ac7c5b9f90c61
2024-04-17 14:58:18 +00:00
Samir Talwar
08fce1ff4c Deserialize the NDC response once, not twice. (#467)
## Description

This modifies handling of the NDC response so we deserialize it once,
not twice.

The previous code deserialized first to `serde_json::Value`, and then
again to the required type. This is costly and unnecessary. By
parameterizing over the type, we can go directly to the type we're
looking for.

We still want to do the two-step process for errors, but it's probably
fine if they remain a little slower as the error response shouldn't be
too large.

Analysis with flamegraphs before and after shows a dramatic drop in CPU
time as a result.

V3_GIT_ORIGIN_REV_ID: d7574bd8c82f0863372e1463fda020a8174c7341
2024-04-17 08:12:23 +00:00
Toan Nguyen
ce5ff4c367 server: support env template for otel status
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10764
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
GitOrigin-RevId: 3dfb3478cefc8ffa9067295293203e06b3eac90c
2024-04-17 07:25:44 +00:00
Toan Nguyen
3f5461fc62 support OpenTelemetry zipkin propagator (#466)
Support both W3C and Zipkin B3 headers and connectors will
prefer B3 headers to extract traces because Cloud Run doesn't respect
those headers.

V3_GIT_ORIGIN_REV_ID: 1471b848e71d87420bc75b9adee60951f306c856
2024-04-16 14:56:43 +00:00
Anon Ray
d3207869fd revert ndc-pg port to match metadata for local tests (#465)
Revert the local docker-compose to expose ndc-postgres on port `8080` to
match the metadata. Otherwise running tests locally fails.

V3_GIT_ORIGIN_REV_ID: 6ca104a3041f758f13dfb2a05c2a6ab0b449e7cf
2024-04-16 06:51:40 +00:00
Daniel Harvey
422e9af820 Put human readable span name in display.name and add context (#464)
<!-- Thank you for submitting this PR! :) -->

## Description

<img width="435" alt="Screenshot 2024-04-15 at 14 19 21"
src="https://github.com/hasura/v3-engine/assets/4729125/bcaf856a-7dbc-44d5-83af-f05d62232379">

<img width="1445" alt="Screenshot 2024-04-15 at 14 15 07"
src="https://github.com/hasura/v3-engine/assets/4729125/c825ba1c-3004-4145-bbf2-974f627910f6">

This reverts prettifying of span names in
https://github.com/hasura/v3-engine/pull/419/files and instead includes
a `display.name` attribute that we use to include a human readable span
name. Because this doesn't need to be a `'static &str` we can use
`format!` to include dynamic content such as field and data connectors
names.

<!--
  Questions to consider answering:
  1. What user-facing changes are being made?
2. What are issues related to this PR? (Consider adding `(close
#<issue-no>)` to the PR title)
  3. What is the conceptual design behind this PR?
  4. How can this PR be tested/verified?
  5. Does the PR have limitations?
  6. Does the PR introduce breaking changes?
-->

## Changelog

- Add a changelog entry (in the "Changelog entry" section below) if the
changes in this PR have any user-facing impact. See [changelog
guide](https://github.com/hasura/graphql-engine-mono/wiki/Changelog-Guide).
- If no changelog is required ignore/remove this section and add a
`no-changelog-required` label to the PR.

### Product
_(Select all products this will be available in)_
- [X] community-edition
- [X] cloud
<!-- product : end : DO NOT REMOVE -->

### Type
<!-- See changelog structure:
https://github.com/hasura/graphql-engine-mono/wiki/Changelog-Guide#structure-of-our-changelog
-->
_(Select only one. In case of multiple, choose the most appropriate)_
- [ ] highlight
- [X] enhancement
- [ ] bugfix
- [ ] behaviour-change
- [ ] performance-enhancement
- [ ] security-fix
<!-- type : end : DO NOT REMOVE -->

### Changelog entry
<!--
  - Add a user understandable changelog entry
- Include all details needed to understand the change. Try including
links to docs or issues if relevant
  - For Highlights start with a H4 heading (#### <entry title>)
  - Get the changelog entry reviewed by your team
-->

Add human readable `display.name` attribute to spans.

<!-- changelog-entry : end : DO NOT REMOVE -->

<!-- changelog : end : DO NOT REMOVE -->

V3_GIT_ORIGIN_REV_ID: 145046812050e493e164017ae52927b6c463c0de
2024-04-15 14:58:26 +00:00
dependabot[bot]
2d9317df2a Bump strum from 0.25.0 to 0.26.2 (#424)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [strum](https://github.com/Peternator7/strum) from 0.25.0 to
0.26.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Peternator7/strum/releases">strum's
releases</a>.</em></p>
<blockquote>
<h2>v0.26.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix AsRefStr docs to specify lifetime constraints by <a
href="https://github.com/DTrippe"><code>@​DTrippe</code></a> in <a
href="https://redirect.github.com/Peternator7/strum/pull/330">Peternator7/strum#330</a></li>
<li>Fix missing generics on impl for EnumTryAs by <a
href="https://github.com/hasali19"><code>@​hasali19</code></a> in <a
href="https://redirect.github.com/Peternator7/strum/pull/337">Peternator7/strum#337</a></li>
<li>feat(as_ref_str): enable <code>prefix</code> attribute for
<code>AsRefStr</code> derive by <a
href="https://github.com/vbrvk"><code>@​vbrvk</code></a> in <a
href="https://redirect.github.com/Peternator7/strum/pull/334">Peternator7/strum#334</a></li>
<li>Add dependabot by <a
href="https://github.com/oriontvv"><code>@​oriontvv</code></a> in <a
href="https://redirect.github.com/Peternator7/strum/pull/333">Peternator7/strum#333</a></li>
<li>Fix docs that say array instead of slice by <a
href="https://github.com/Peternator7"><code>@​Peternator7</code></a> in
<a
href="https://redirect.github.com/Peternator7/strum/pull/343">Peternator7/strum#343</a></li>
<li>Hide EnumTable by <a
href="https://github.com/Peternator7"><code>@​Peternator7</code></a> in
<a
href="https://redirect.github.com/Peternator7/strum/pull/344">Peternator7/strum#344</a>
<ul>
<li>EnumTable will likely be deprecated.</li>
</ul>
</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/DTrippe"><code>@​DTrippe</code></a> made
their first contribution in <a
href="https://redirect.github.com/Peternator7/strum/pull/330">Peternator7/strum#330</a></li>
<li><a href="https://github.com/hasali19"><code>@​hasali19</code></a>
made their first contribution in <a
href="https://redirect.github.com/Peternator7/strum/pull/337">Peternator7/strum#337</a></li>
<li><a href="https://github.com/vbrvk"><code>@​vbrvk</code></a> made
their first contribution in <a
href="https://redirect.github.com/Peternator7/strum/pull/334">Peternator7/strum#334</a></li>
<li><a href="https://github.com/oriontvv"><code>@​oriontvv</code></a>
made their first contribution in <a
href="https://redirect.github.com/Peternator7/strum/pull/333">Peternator7/strum#333</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Peternator7/strum/compare/v0.26.1...v0.26.2">https://github.com/Peternator7/strum/compare/v0.26.1...v0.26.2</a></p>
<h2>v0.26.1</h2>
<h2>0.26.1</h2>
<ul>
<li><a
href="https://redirect.github.com/Peternator7/strum/pull/325">#325</a>:
use <code>core</code> instead of <code>std</code> in VariantArray.</li>
</ul>
<h2>0.26.0</h2>
<h3>Breaking Changes</h3>
<ul>
<li>The <code>EnumVariantNames</code> macro has been renamed
<code>VariantNames</code>. The deprecation warning should steer you in
the right direction for fixing the warning.</li>
<li>The Iterator struct generated by EnumIter now has new bounds on it.
This shouldn't break code unless you manually
added the implementation in your code.</li>
<li><code>Display</code> now supports format strings using named fields
in the enum variant. This should be a no-op for most code.
However, if you were outputting a string like <code>&quot;Hello
{field}&quot;</code>, this will now be interpretted as a format
string.</li>
<li>EnumDiscriminant now inherits the repr and discriminant values from
your main enum. This makes the discriminant type
closer to a mirror of the original and that's always the goal.</li>
</ul>
<h3>New features</h3>
<ul>
<li>
<p>The <code>VariantArray</code> macro has been added. This macro adds
an associated constant <code>VARIANTS</code> to your enum. The constant
is a <code>&amp;'static [Self]</code> slice so that you can access all
the variants of your enum. This only works on enums that only
have unit variants.</p>
<pre lang="rust"><code>use strum::VariantArray;
<p>#[derive(Debug, VariantArray)]
enum Color {
Red,
Blue,
Green,
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Peternator7/strum/blob/master/CHANGELOG.md">strum's
changelog</a>.</em></p>
<blockquote>
<h2>0.26.2</h2>
<ul>
<li><a
href="https://redirect.github.com/Peternator7/strum/pull/337">#337</a>:
Fix missing generic impls for <code>EnumTryAs</code></li>
<li><a
href="https://redirect.github.com/Peternator7/strum/pull/334">#334</a>:
Support prefix in <code>AsRefStr</code>. Technically a breaking change,
but <code>prefix</code> was just added in <code>0.26.0</code> so it's a
newer feature and it makes the feature more consisent in general.</li>
</ul>
<h2>0.26.1</h2>
<ul>
<li><a
href="https://redirect.github.com/Peternator7/strum/pull/325">#325</a>:
use <code>core</code> instead of <code>std</code> in VariantArray.</li>
</ul>
<h2>0.26.0</h2>
<h3>Breaking Changes</h3>
<ul>
<li>The <code>EnumVariantNames</code> macro has been renamed
<code>VariantNames</code>. The deprecation warning should steer you in
the right direction for fixing the warning.</li>
<li>The Iterator struct generated by EnumIter now has new bounds on it.
This shouldn't break code unless you manually
added the implementation in your code.</li>
<li><code>Display</code> now supports format strings using named fields
in the enum variant. This should be a no-op for most code.
However, if you were outputting a string like <code>&quot;Hello
{field}&quot;</code>, this will now be interpretted as a format
string.</li>
<li>EnumDiscriminant now inherits the repr and discriminant values from
your main enum. This makes the discriminant type
closer to a mirror of the original and that's always the goal.</li>
</ul>
<h3>New features</h3>
<ul>
<li>
<p>The <code>VariantArray</code> macro has been added. This macro adds
an associated constant <code>VARIANTS</code> to your enum. The constant
is a <code>&amp;'static [Self]</code> slice so that you can access all
the variants of your enum. This only works on enums that only
have unit variants.</p>
<pre lang="rust"><code>use strum::VariantArray;
<p>#[derive(Debug, VariantArray)]
enum Color {
Red,
Blue,
Green,
}</p>
<p>fn main() {
println!(&quot;{:?}&quot;, Color::VARIANTS); // prints:
[&quot;Red&quot;, &quot;Blue&quot;, &quot;Green&quot;]
}
</code></pre></p>
</li>
<li>
<p>The <code>EnumTable</code> macro has been <em>experimentally</em>
added. This macro adds a new type that stores an item for each variant
of the enum. This is useful for storing a value for each variant of an
enum. This is an experimental feature because
I'm not convinced the current api surface area is correct.</p>
<pre lang="rust"><code>use strum::EnumTable;
</code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/Peternator7/strum/commits/v0.26.2">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=strum&package-manager=cargo&previous-version=0.25.0&new-version=0.26.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
V3_GIT_ORIGIN_REV_ID: e3add1ec70f4a1ba2d8a25ef953dde94f5c8ea66
2024-04-15 09:56:34 +00:00
dependabot[bot]
69fec9000f Bump async-graphql-parser from 5.0.10 to 7.0.3 (#462)
Bumps
[async-graphql-parser](https://github.com/async-graphql/async-graphql)
from 5.0.10 to 7.0.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/async-graphql/async-graphql/blob/master/CHANGELOG.md">async-graphql-parser's
changelog</a>.</em></p>
<blockquote>
<h1>[7.0.3] 2024-03-16</h1>
<ul>
<li>Sort schema fields &amp; enums if required <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1475">#1475</a></li>
<li>Change the <code>type_name</code> of <code>EmptySubscription</code>
fix <a
href="https://redirect.github.com/async-graphql/async-graphql/issues/1435">#1435</a>
<a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1475">#1475</a></li>
<li>add <code>Request::set_parsed_query</code> method <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1483">#1483</a></li>
<li>Upgrade strum to 0.26 <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1485">#1485</a></li>
<li>Fix validation of non-nullable variables with default values <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1491">#1491</a></li>
<li>add <code>NextExecute::run_with_data</code> method to attach context
data before execution</li>
<li>feat: add registry method in dynamic::Registry <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1492">#1492</a></li>
<li>Allow non-scalars to be used as directive arguments <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1493">#1493</a></li>
<li>fix: add description to __schema introspection result <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1489">#1489</a></li>
</ul>
<h1>[7.0.2] 2024-02-18</h1>
<ul>
<li>Fix <code>#[derive(OneofObject)]</code> rejecting enums where the
type comes from a macro subsitution <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1473">#1473</a></li>
<li>Optimize object proc-macro codegen <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1470">#1470</a></li>
<li>Use <code>impl Future</code> instead of <code>async-trait</code> in
most traits. <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1468">#1468</a></li>
<li>Upgrade <code>base64</code> to <code>0.21</code> <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1466">#1466</a></li>
<li>Standardize space between Args, Lists and Binary items <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1392">#1392</a></li>
<li>feat: support bigdecimal 0.4.x <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1358">#1358</a></li>
</ul>
<h1>[7.0.1] 2024-01-21</h1>
<ul>
<li>Add <code>Shareable</code> Attribute To InputObjectField <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1459">#1459</a></li>
<li>Feature Generic Unions <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1424">#1424</a></li>
<li>Address axum integration compilation error with non-Sync body <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1460">#1460</a></li>
<li>fix: date cursor precision string format <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1462">#1462</a></li>
</ul>
<h1>[7.0.0] 2024-01-06</h1>
<ul>
<li>upgrade to <code>http1</code></li>
<li>Feature extend ResolveInfo with field attribute <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1428">#1428</a></li>
</ul>
<h1>[6.0.11] 2023-11-19</h1>
<ul>
<li>Clean up example docs <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1411">#1411</a></li>
<li>Run batch requests concurrently <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1420">#1420</a></li>
<li>Update opentelemetry to <code>v0.21.x</code> <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1422">#1422</a></li>
</ul>
<h1>[6.0.10] 2023-11-04</h1>
<ul>
<li>bump opentelemetry <code>0.20.0</code> <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1406">#1406</a></li>
<li>fix check for serial <a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1405">#1405</a></li>
<li>fixes complexity visitor</li>
<li>bump Rocket from <code>0.5.0-rc.2</code> to
<code>0.5.0-rc.4</code></li>
</ul>
<h1>[6.0.9] 2023-10-21</h1>
<ul>
<li>add support uploading files in dynamic schema <a
href="https://github.com/async-graphql/async-graphql/discussions/1384">#1384</a></li>
<li>Include <code>@composeDirective</code> in Federation's
<code>_service</code> field and document <code>#[TypeDirective]</code>
<a
href="https://redirect.github.com/async-graphql/async-graphql/pull/1400">#1400</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/async-graphql/async-graphql/commits">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async-graphql-parser&package-manager=cargo&previous-version=5.0.10&new-version=7.0.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
V3_GIT_ORIGIN_REV_ID: f1b749f6e069c3c72d48cc87f1e014fdff7fbf2d
2024-04-15 09:31:23 +00:00
dependabot[bot]
ef34542f31 Bump nonempty from 0.8.1 to 0.10.0 (#463)
Bumps [nonempty](https://github.com/cloudhead/nonempty) from 0.8.1 to
0.10.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/cloudhead/nonempty/commits">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=nonempty&package-manager=cargo&previous-version=0.8.1&new-version=0.10.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
V3_GIT_ORIGIN_REV_ID: 11c6454b5e7e9877b52075f0e0efe6839ecf3be1
2024-04-15 08:41:48 +00:00
Philip Lykke Carlsen
8752081323 Add /metadata and /metadata-hash endpoints (#461)
## Description

This PR iterates on #459.

Rather than serving the engine metadata it serves an arbitrary file,
given by the command line argument `--introspection-metadata`.
Specifying this argument gives rise to endpoints `/metadata` and
`/metadata-hash`.

![image](https://github.com/hasura/v3-engine/assets/358550/63040f02-876a-4c29-8cf1-52a305ffff67)

Update: We only load the file in at engine startup and serve that
version. Changing the file on disk will not change what the engine
serves.

---------

Co-authored-by: Gil Mizrahi <gil@gilmi.net>
V3_GIT_ORIGIN_REV_ID: db88adb5c08c4489cc1abd5fb5236b8d5ba51b9a
2024-04-11 21:32:40 +00:00
Daniel Harvey
4bc2f21f80 remove TypeRepresentation (#456)
<!-- Thank you for submitting this PR! :) -->

## Description

Previously we moved all our types around in one big bucket, meaning we
often had to check we had the thing we wanted, this splits it up so
dependencies are more granular and clearer.

This means instead of passing `types` around, we'll have both
`scalar_types` or `object_types`. Usually just `object_types` though.

V3_GIT_ORIGIN_REV_ID: 6a6b8d6265b0391f8910f3d4f8932ad151453c18
2024-04-11 14:19:42 +00:00
Philip Lykke Carlsen
624df9a594 Add /metadata endpoint which serves the initial, raw metadata (#459)
## Description

As a temporary means of supporting a local development setup, this PR
adds a `/metadata` endpoint that serves the raw metadata that the engine
was started with.

![image](https://github.com/hasura/v3-engine/assets/358550/bf34c3f8-d153-4a93-9044-dbaa15299481)

V3_GIT_ORIGIN_REV_ID: 44c552cfe29ee587fa0d383f7788aacc5579770f
2024-04-11 11:08:27 +00:00
Daniel Harvey
93d608c1ab break out data_connectors resolving step (#457)
<!-- Thank you for submitting this PR! :) -->

## Description

As per https://github.com/hasura/v3-engine/pull/450, break out creation
of `data_connectors` info (and related types) into it's own files.
Functional no-op.

V3_GIT_ORIGIN_REV_ID: 7a8d445217a4fac2bbb135aa48baa20a0789e785
2024-04-11 08:53:58 +00:00
Samir Talwar
8c538f5719 Inject trace context headers into requests to the auth hook. (#458)
This injects trace context headers into requests to the auth hook,
allowing us to figure out how much time is spent here.

I added a basic tracing setup to the dev-auth-webhook, using
`tracing-util`, allowing me to verify that this works. This required
moving the Dockerfile to the root so the context contains the
`tracing-util` crate too.

I have also fixed the reference agent (by updating it), and patched our
Docker Compose files to correctly set up connectivity to Jaeger.

V3_GIT_ORIGIN_REV_ID: 2ff930bda4147d00dcc73268a814b08c8a07a359
2024-04-11 07:42:01 +00:00
Daniel Harvey
50f1243a46 docs: attempt to document roles / annotations (#358)
<!-- Thank you for submitting this PR! :) -->

## Description

This is an attempt to somewhat document how roles / annotations work in
`v3-engine`. The main purpose of this exercise was to solidify my
understanding, so I would very much welcome any corrections.

V3_GIT_ORIGIN_REV_ID: 28600998c8a01ef7f95198b44b875f4f14873793
2024-04-10 08:58:13 +00:00
Anon Ray
1269108b22 remove a stray file (#455)
Remove a stray file, which seems to be accidentally checked in.

V3_GIT_ORIGIN_REV_ID: d7b6c859ddd48b3dde86fc4b087541e78899924e
2024-04-10 08:34:28 +00:00
Tom Harding
4dc02b0967 Add a binary for generating the OpenAPI schema for the metadata type. (#453)
<!-- Thank you for submitting this PR! :) -->

## Description

I needed this, so I made it. It's nothing too complex: we just
pretty-print the `schemars` schema for the root `Metadata` type.

<!--
  Questions to consider answering:
  1. What user-facing changes are being made?
2. What are issues related to this PR? (Consider adding `(close
#<issue-no>)` to the PR title)
  3. What is the conceptual design behind this PR?
  4. How can this PR be tested/verified?
  5. Does the PR have limitations?
  6. Does the PR introduce breaking changes?
-->

## Changelog

- Add a changelog entry (in the "Changelog entry" section below) if the
changes in this PR have any user-facing impact. See [changelog
guide](https://github.com/hasura/graphql-engine-mono/wiki/Changelog-Guide).
- If no changelog is required ignore/remove this section and add a
`no-changelog-required` label to the PR.

### Product
_(Select all products this will be available in)_
- [ ] community-edition
- [ ] cloud
<!-- product : end : DO NOT REMOVE -->

### Type
<!-- See changelog structure:
https://github.com/hasura/graphql-engine-mono/wiki/Changelog-Guide#structure-of-our-changelog
-->
_(Select only one. In case of multiple, choose the most appropriate)_
- [ ] highlight
- [ ] enhancement
- [ ] bugfix
- [ ] behaviour-change
- [ ] performance-enhancement
- [ ] security-fix
<!-- type : end : DO NOT REMOVE -->

### Changelog entry
<!--
  - Add a user understandable changelog entry
- Include all details needed to understand the change. Try including
links to docs or issues if relevant
  - For Highlights start with a H4 heading (#### <entry title>)
  - Get the changelog entry reviewed by your team
-->

_Replace with changelog entry_

<!-- changelog-entry : end : DO NOT REMOVE -->

<!-- changelog : end : DO NOT REMOVE -->

V3_GIT_ORIGIN_REV_ID: a9e75bfa06c35577c17d8cbf0d021b1f56826a28
2024-04-10 07:36:55 +00:00
Dhruvil Joshi
89db601cfd docs: update-rewards-for-disclosures.
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10770
Co-authored-by: Rob Dominguez <24390149+robertjdominguez@users.noreply.github.com>
GitOrigin-RevId: 73d7ff33ca66d3e57b391acbd0d506784249f354
2024-04-09 22:27:03 +00:00
Daniel Harvey
adbc6b53d9 Remove beta badge from InputValidation feature in console
## Description

We have no plans to make changes to this feature, so we consider it production ready.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10769
GitOrigin-RevId: 08319fb6c464ca5c11c033be5abc0b7989e1da4f
2024-04-09 14:09:25 +00:00
Daniel Harvey
66e012f589 break out BooleanExpressionError from Error (#449)
<!-- Thank you for submitting this PR! :) -->

## Description

Further breaking up the big error type. Functional no-op.

V3_GIT_ORIGIN_REV_ID: d34acb7fd6421c250c214b133b8a107e03155c70
2024-04-09 09:16:27 +00:00
Daniel Harvey
6f8470ca3c break out graphql_config resolving step (#450)
<!-- Thank you for submitting this PR! :) -->

## Description

Resolving metadata is pretty messy, so we're breaking it into more
explicit steps. This breaks out the first, and arguably most trivial
step.

Functional no-op.

V3_GIT_ORIGIN_REV_ID: eca1ce3276f826e769ac4a29d62504542e41848d
2024-04-09 08:10:20 +00:00
Rakesh Emmadi
e6829651b1 Default reason for field deprecation (#448)
Generate default `deprecationReason` in GraphQL schema for OpenDd
metadata marked as deprecated without a reason.

V3_GIT_ORIGIN_REV_ID: 6979bd264b5c11d24b6c634115b6fbd8405a5ba6
2024-04-08 16:45:19 +00:00
Rob Dominguez
3e0fcba434 Docs: Add admonition for db waitlist
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10768
GitOrigin-RevId: d651aa7841f85176226cf515e12f8374ffac32fb
2024-04-08 13:27:48 +00:00
Sean Park-Ross
dc538aae5f Docs: Update announcement bar Dev Day
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10767
GitOrigin-RevId: 6e279d89c6ce2f80d7bd9db48a874ffa1551c1c1
2024-04-08 13:04:46 +00:00
Daniel Harvey
9b8915b5b5 split out RelationshipError (#445)
<!-- Thank you for submitting this PR! :) -->

## Description

More work to break down the giant `Error` type in metadata resolve step.

Functional no-op.

V3_GIT_ORIGIN_REV_ID: 8cfa4ad0bef254e93241d254123910bf3d5357f3
2024-04-08 10:55:36 +00:00
Daniel Harvey
2a24b3060a use clippy settings in Cargo workspace (#441)
<!-- Thank you for submitting this PR! :) -->

## Description

Following the approach taken here:
https://github.com/hasura/ndc-postgres/pull/402

This moves the `clippy` settings into the Cargo workspace file instead
of passing them for each invocation.

We enable all pedantic settings, run `cargo clippy --fix` to auto fix a
few things, and then manually disable all other lints.

Plenty of them are worth enabling and fixing in future IMO.

---------

Co-authored-by: Samir Talwar <samir.talwar@hasura.io>
V3_GIT_ORIGIN_REV_ID: aa0e6ccb8d72a7393e14b5c58b82077a67d9cb15
2024-04-08 10:14:11 +00:00
Phil Freeman
209ec112ec Update to ndc-spec-0.1.2 (#443)
<!-- Thank you for submitting this PR! :) -->

## Description

- Update to `ndc-spec`-`0.1.2`
- Use `ndc_models` since `ndc_client` was removed
- Use `Int32` in `custom_connector` everywhere

<!--
  Questions to consider answering:
  1. What user-facing changes are being made?
2. What are issues related to this PR? (Consider adding `(close
#<issue-no>)` to the PR title)
  3. What is the conceptual design behind this PR?
  4. How can this PR be tested/verified?
  5. Does the PR have limitations?
  6. Does the PR introduce breaking changes?
-->

V3_GIT_ORIGIN_REV_ID: 00c6e7a6c213ab0de31303a93f8446c1d371c538
2024-04-05 09:35:47 +00:00
paritosh-08
e56594fe4f fix bug with multiple fields in boolean expressions (#442)
<!-- Thank you for submitting this PR! :) -->
# ⚠️ Behaviour change in query execution

## Description

<!--
  Questions to consider answering:
  1. What user-facing changes are being made?
2. What are issues related to this PR? (Consider adding `(close
#<issue-no>)` to the PR title)
  3. What is the conceptual design behind this PR?
  4. How can this PR be tested/verified?
  5. Does the PR have limitations?
  6. Does the PR introduce breaking changes?
-->

This PR fixes a bug (different behaviour from v2) with boolean
expressions.

Slack thread:
https://hasurahq.slack.com/archives/C066TKMH79R/p1711987325682919

JIRA: https://hasurahq.atlassian.net/browse/V3ENGINE-67

## Changelog

- Add a changelog entry (in the "Changelog entry" section below) if the
changes in this PR have any user-facing impact. See [changelog
guide](https://github.com/hasura/graphql-engine-mono/wiki/Changelog-Guide).
- If no changelog is required ignore/remove this section and add a
`no-changelog-required` label to the PR.

### Product
_(Select all products this will be available in)_
- [ ] community-edition
- [ ] cloud
<!-- product : end : DO NOT REMOVE -->

### Type
<!-- See changelog structure:
https://github.com/hasura/graphql-engine-mono/wiki/Changelog-Guide#structure-of-our-changelog
-->
_(Select only one. In case of multiple, choose the most appropriate)_
- [ ] highlight
- [ ] enhancement
- [ ] bugfix
- [ ] behaviour-change
- [ ] performance-enhancement
- [ ] security-fix
<!-- type : end : DO NOT REMOVE -->

### Changelog entry
<!--
  - Add a user understandable changelog entry
- Include all details needed to understand the change. Try including
links to docs or issues if relevant
  - For Highlights start with a H4 heading (#### <entry title>)
  - Get the changelog entry reviewed by your team
-->

_Replace with changelog entry_

<!-- changelog-entry : end : DO NOT REMOVE -->

<!-- changelog : end : DO NOT REMOVE -->

V3_GIT_ORIGIN_REV_ID: 4fcfc16a9a88ed6362315ca2f47911e0c97b7829
2024-04-05 08:02:37 +00:00
David Overton
9a6cb644f1 Allow nulls when expecting object or array in response (#440)
<!-- Thank you for submitting this PR! :) -->

## Description

Fix a bug which was causing an internal error when `null` was returned
by NDC for a field of array or object type.

### Product
_(Select all products this will be available in)_
- [x] community-edition
- [x] cloud
<!-- product : end : DO NOT REMOVE -->

### Type
<!-- See changelog structure:
https://github.com/hasura/graphql-engine-mono/wiki/Changelog-Guide#structure-of-our-changelog
-->
_(Select only one. In case of multiple, choose the most appropriate)_
- [ ] highlight
- [ ] enhancement
- [x] bugfix
- [ ] behaviour-change
- [ ] performance-enhancement
- [ ] security-fix
<!-- type : end : DO NOT REMOVE -->

### Changelog entry
<!--
  - Add a user understandable changelog entry
- Include all details needed to understand the change. Try including
links to docs or issues if relevant
  - For Highlights start with a H4 heading (#### <entry title>)
  - Get the changelog entry reviewed by your team
-->

Fix a bug which was causing an internal error when `null` was returned
by NDC for a field of array or object type.

<!-- changelog-entry : end : DO NOT REMOVE -->

<!-- changelog : end : DO NOT REMOVE -->

V3_GIT_ORIGIN_REV_ID: 5c935ccd6720b5e5966dfa87c2e21dbb7a2b36f2
2024-04-04 10:53:40 +00:00