Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from hasura:master #7

Open
wants to merge 926 commits into
base: master
Choose a base branch
from
Open

Conversation

pull[bot]
Copy link

@pull pull bot commented Jun 4, 2024

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

dependabot bot and others added 28 commits November 18, 2024 09:02
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.92 to 1.0.93.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/anyhow/releases">anyhow's
releases</a>.</em></p>
<blockquote>
<h2>1.0.93</h2>
<ul>
<li>Update dev-dependencies to <code>thiserror</code> v2</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/dtolnay/anyhow/commit/713bda9247df3846c1444a7c1b3b2a3b9a4f5907"><code>713bda9</code></a>
Release 1.0.93</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/f91c247cf8986842a8ac25030481b0af3433cd35"><code>f91c247</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/anyhow/issues/391">#391</a>
from dtolnay/thiserror</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/2a3901c0b1ab6d7aed466db53a2675b61d3e3401"><code>2a3901c</code></a>
Isolate old rustc version tests from needing anyhow dev-dependencies in
lockfile</li>
<li><a
href="https://github.com/dtolnay/anyhow/commit/3ca2cdd795f1569354f8d7366383d7802201bdbf"><code>3ca2cdd</code></a>
Update dev-dependencies to thiserror v2</li>
<li>See full diff in <a
href="https://github.com/dtolnay/anyhow/compare/1.0.92...1.0.93">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=anyhow&package-manager=cargo&previous-version=1.0.92&new-version=1.0.93)](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>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
V3_GIT_ORIGIN_REV_ID: 1e2b6601012bef1430d82d1d638300e288c4d24a
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.132 to
1.0.133.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/serde-rs/json/releases">serde_json's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.133</h2>
<ul>
<li>Implement From&lt;[T; N]&gt; for serde_json::Value (<a
href="https://redirect.github.com/serde-rs/json/issues/1215">#1215</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/serde-rs/json/commit/0903de449c52c1b4a2271e909b7afb18909dc379"><code>0903de4</code></a>
Release 1.0.133</li>
<li><a
href="https://github.com/serde-rs/json/commit/2b65ca09498a8a907e3e3cb66794414edfa6fe27"><code>2b65ca0</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1215">#1215</a>
from dtolnay/fromarray</li>
<li><a
href="https://github.com/serde-rs/json/commit/4e5f985958bedbc7e75ba6c1931edaf73508c4a7"><code>4e5f985</code></a>
Implement From&lt;[T; N]&gt; for Value</li>
<li><a
href="https://github.com/serde-rs/json/commit/2ccb5b67ca34a5e53b42fa608d756e25e57f91a3"><code>2ccb5b6</code></a>
Disable question_mark clippy lint in lexical test</li>
<li><a
href="https://github.com/serde-rs/json/commit/a11f5f2bc4756035e5a04e01ad486d8a99779527"><code>a11f5f2</code></a>
Resolve unnecessary_map_or clippy lints</li>
<li><a
href="https://github.com/serde-rs/json/commit/07f280a79c07a5e713d519ed6c6a1a71b0cf871a"><code>07f280a</code></a>
Wrap PR 1213 to 80 columns</li>
<li><a
href="https://github.com/serde-rs/json/commit/75ed44722d451143da5621f5ce3edb794965de79"><code>75ed447</code></a>
Merge pull request <a
href="https://redirect.github.com/serde-rs/json/issues/1213">#1213</a>
from djmitche/safety-comment</li>
<li><a
href="https://github.com/serde-rs/json/commit/73011c0b2bcd21639446728fc50de4131a51e5ca"><code>73011c0</code></a>
Add a safety comment to unsafe block</li>
<li><a
href="https://github.com/serde-rs/json/commit/be2198a54d0d9e668f8e2e59ca2e23e3ac10ae60"><code>be2198a</code></a>
Prevent upload-artifact step from causing CI failure</li>
<li><a
href="https://github.com/serde-rs/json/commit/7cce517f53fd60d40bd6ef87a0e51f88a306e901"><code>7cce517</code></a>
Raise minimum version for preserve_order feature to Rust 1.65</li>
<li>Additional commits viewable in <a
href="https://github.com/serde-rs/json/compare/v1.0.132...v1.0.133">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_json&package-manager=cargo&previous-version=1.0.132&new-version=1.0.133)](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>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
V3_GIT_ORIGIN_REV_ID: fb9be45dad350c6f82da9954bfb22b6bc30b7c63
<!-- The PR description should answer 2 important questions: -->

### What

Previously in JSONAPI a model held all it's field types. This approach
quickly falls apart with recursive types and when adding nested fields /
relationships.

### How

This outputs the object types as their own items in the catalog and
refers to them throughout rather than inlining the types everywhere.

V3_GIT_ORIGIN_REV_ID: 7f05bf964c6551c9aaf04ba6f2e02bf8f0ce272d
Release v2024.11.18

V3_GIT_ORIGIN_REV_ID: a6afe29974bb6e0fbcbe4552d26466b18f26032e
<!-- The PR description should answer 2 important questions: -->

### What

Remove copies of metadata from SQL artifacts:

Resulting in **19% smaller artifact** for chinook, **17% faster
runtime**.
Customer metadata with multiple subgraphs will show more dramatic
effect.

There was a separate copy of the metadata stored for each subgraph in
the sql "catalog". From the point of view of MBS we were serializing 2+N
copies of the same metadata which bloats artifacts and is very slow.

Additionally the usage sites became confusing because you had multiple
identical (we assume) copies of metadata in scope at the same time.

Instead we reconstruct the original Catalog type before use, because
it's required for the Datafusion impls

### How

convert to a different type for serialization, re-hydrate in body of sql
code

V3_GIT_ORIGIN_REV_ID: 0e7e35255cfe8fe01ea328a1d7cb96db0e2dd726
…r permissions

PR-URL: hasura/graphql-engine-mono#11077
GitOrigin-RevId: d468647ea1124bc4c297ef552be07c6d6cb4f83f
…ot natively support them (#1355)

### What

If an NDC v0.2.0 connector declares they don't support nested
relationships in its capabilities, then we use the engine's remote joins
functionality to perform selection across nested relationships anyway.
Note that filtering or ordering by nested relationships is still not
supported.

### How

The function that everything uses to determine whether a relationship is
to be done via remote joins or not
(`crates/metadata-resolve/src/stages/object_relationships/mod.rs::relationship_execution_category`)
has been updated to require being told about "FieldNestedness". This
describes whether the field is object or array nested. It then looks at
the capabilities and requires a remote join if the connector does not
support nested relationships.

The relationship capabilities stored against relationships in
metadata_resolve is now a copy of the detailed relationship capabilities
from the data connector (see `get_relationship_capabilities`).

In graphql IR and schema, all usages of the
`relationship_execution_category` now need to tell it about the
`FieldNestedness`. So they now keep track of the nestedness of the
relationship field they're looking at.

In `crates/execute/src/plan/relationships.rs`, usages of
`relationship_execution_category` were removed because it was being used
to check if the local relationship (ie not a remote join) being looked
at was actually a local relationship and not a remote one. However, this
is unnecessary as this determination was already made when the IR was
created and does not need to be checked again here.

To test these changes, a new test was added:
`crates/engine/tests/execute/relationships/nested/selection_no_nested_capability`.
This test needed a connector that does not support relationships so that
remote joins code paths would be exercised. To support this, the custom
connector now takes a new env var `ENABLE_RELATIONSHIP_SUPPORT` that
explicitly turns on support for relationships. A new instance of the
connector has been added to the `ci.docker-compose.yaml` with this
disabled. This is new connector instance is then used to perform the
test.

V3_GIT_ORIGIN_REV_ID: 476f7ec0469eed698ed9bcf49f73372b6cee0c6c
PR-URL: hasura/graphql-engine-mono#11064
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
GitOrigin-RevId: b545a3907f40fe562d5e1f528686c5d2fd846252
<!-- The PR description should answer 2 important questions: -->

### What

Adds the types required for the new execution planning to the
`plan-types` crate. Some of these lived in `graphql-ir`, so have been
removed from there. Functional no-op.

V3_GIT_ORIGIN_REV_ID: 0e39aca2d35a7fe69382363b2cef8a028e9be86e
…ssues with nested fields (#1361)

### What
This PR reworks the GraphQL schema annotation types and IR parsing for
boolean expressions. This was required because the existing code was
quite tangled and broken as it did not properly handled nested fields.
For example, it had the following issues:

* If you use more than one nested field in a single where, an invalid
NDC query is generated with mangled field paths
* If you use logical operators inside a nested field, an internal error
occurs

The new annotation structure and IR parsing code cleanly matches the two
types of boolean expressions we currently have: object boolean
expressions and scalar boolean expressions. The new parsing code
correctly tracks nested fields and allows arbitrary nesting of object
boolean expressions (and therefore logical operators at the object
boolean expression level).

### How

In `crates/graphql/schema/src/types.rs` `BooleanExpressionAnnotation`
has been reworked to capture the two different types of boolean
expressions. It now has the two `ObjectBooleanExpressionField` and
`ScalarBooleanExpressionField` variants, which are used to denote fields
on each of the different types of boolean expression objects. Previously
scalar boolean expression annotations lived on `ModelInputAnnotation`,
muddying the waters.

Then in `crates/graphql/ir/src/filter.rs`, we have
`resolve_object_boolean_expression` and
`resolve_scalar_boolean_expression` which are capable of reading the
respective variants of boolean expressions.
`resolve_object_boolean_expression` is recursive, and so nested logical
operators are handled naturally. As nested fields are descended through,
this is kept track of with `column_path`.

Some new fields were added to the existing nested object test
(`crates/engine/tests/execute/models/select_many/where/nested_select/object/request.gql`)
to capture and test the previously broken scenarios.

A minor fix was made to `crates/graphql/frontend/src/to_opendd_ir.rs`
because it did not handle multiple root fields properly, as it did not
use the root field aliases and ended up overwriting the same query over
and over. This resulted in many snapshots getting updated, even though
they are unrelated to the real change in this PR.

V3_GIT_ORIGIN_REV_ID: f7cbbe8c86f542150e0ce247c6597df717836c06
PR-URL: hasura/graphql-engine-mono#11084
GitOrigin-RevId: 6060eff9d0eae6c49360adc738f447fa8b5866c6
<!-- The PR description should answer 2 important questions: -->

### What

It's helpful (given the CLI's version of our metadata format) to talk
about configuration in terms of subgraphs as well as the JSON structure
that MBS ingests. This PR updates the error contexts to contain that
name. Here's an example:

```json
{
    "errors": [
        {
            "context": [
                {
                    "message": "Data connector name given here",
                    "path": [
                        {
                            "Key": "subgraphs"
                        },
                        {
                            "Index": 0
                        },
                        {
                            "Key": "objects"
                        },
                        {
                            "Index": 0
                        },
                        {
                            "Key": "definition"
                        },
                        {
                            "Key": "source"
                        },
                        {
                            "Key": "dataConnectorName"
                        }
                    ],
                    "subgraph": "default"
                }
            ],
            "path": null,
            "code": "opendds-validation",
            "message": "invalid metadata: error building schema: invalid metadata: the source data connector b (in subgraph default) for model Artists (in subgraph default) has not been defined"
        }
    ]
}
```

As we can see, the `subgraph` key tells us what the subgraph is. Note
that the path contains the fact that we have a subgraphs array, so this
will need removing by a CLI tool if a subgraph is present. Not doing
this on the server side means we can write non-CLI tooling around these
errors as well.

### How

We just add the `subgraph` key to the error context, and fix the raw
metadata deserializers. I'm not sure why these are separate to the
standard opendd deserializers.

V3_GIT_ORIGIN_REV_ID: 3c50bcc649e2842b35a2f05059c2f795c620ea23
<!-- The PR description should answer 2 important questions: -->

### What

Changing all of this code in situ is going to be extremely painful, so
instead we're taking the approach of copying small sections, making them
typecheck with the new set of types, and integrating them bit by bit.

This adds a version of the execution steps in `execute`, using the new
types. The next PR to follow will change the OpenDD pipeline to use
them, as remote predicates aren't implemented there so we can defer
implementing them in the new system.

V3_GIT_ORIGIN_REV_ID: 98d1bfa4753edf7d9a9f0b9d1e617a0a760d5862
PR-URL: hasura/graphql-engine-mono#11085
GitOrigin-RevId: c9f8f82a966eb914472d8b247bd4d737580727d8
<!-- The PR description should answer 2 important questions: -->

### What
```http
GET /v1/rest/default/Articles/?page[limit]=2&fields[Article]=title,author_id&fields[Author]=first_name&include=Author,Author.articles HTTP/1.1
```
<details>
<summary>Response</summary>

```json
{
  "data": [
    {
      "type": "default_Article",
      "id": "1",
      "attributes": {
        "author_id": 1,
        "title": "The Next 700 Programming Languages"
      },
      "relationships": {
        "Author": {
          "data": {
            "type": "default_Author",
            "id": "2"
          }
        }
      }
    },
    {
      "type": "default_Article",
      "id": "5",
      "attributes": {
        "author_id": 2,
        "title": "Why Functional Programming Matters"
      },
      "relationships": {
        "Author": {
          "data": {
            "type": "default_Author",
            "id": "6"
          }
        }
      }
    }
  ],
  "included": [
    {
      "type": "default_Article",
      "id": "3",
      "attributes": {
        "author_id": 1,
        "title": "The Next 700 Programming Languages"
      }
    },
    {
      "type": "default_Article",
      "id": "4",
      "attributes": {
        "author_id": 1,
        "title": "The Mechanical Evaluation of Expressions"
      }
    },
    {
      "type": "default_Author",
      "id": "2",
      "attributes": {
        "first_name": "Peter"
      },
      "relationships": {
        "articles": {
          "data": [
            {
              "type": "default_Article",
              "id": "3"
            },
            {
              "type": "default_Article",
              "id": "4"
            }
          ]
        }
      }
    },
    {
      "type": "default_Article",
      "id": "7",
      "attributes": {
        "author_id": 2,
        "title": "Why Functional Programming Matters"
      }
    },
    {
      "type": "default_Article",
      "id": "8",
      "attributes": {
        "author_id": 2,
        "title": "The Design And Implementation Of Programming Languages"
      }
    },
    {
      "type": "default_Article",
      "id": "9",
      "attributes": {
        "author_id": 2,
        "title": "Generalizing monads to arrows"
      }
    },
    {
      "type": "default_Author",
      "id": "6",
      "attributes": {
        "first_name": "John"
      },
      "relationships": {
        "articles": {
          "data": [
            {
              "type": "default_Article",
              "id": "7"
            },
            {
              "type": "default_Article",
              "id": "8"
            },
            {
              "type": "default_Article",
              "id": "9"
            }
          ]
        }
      }
    }
  ]
}
```
</details>

<!-- What is this PR trying to accomplish (and why, if it's not
obvious)? -->

<!-- Consider: do we need to add a changelog entry? -->

<!-- Does this PR introduce new validation that might break old builds?
-->

<!-- Consider: do we need to put new checks behind a flag? -->

### How
- Return the `include` parameter in the openapi schema
(`/v1/rest/__schema`).
- Resolve relationship fields in the OpenDD query request. Only local
relationships allowed for now.
- A parser to parse the `include` parameter with nested relationships
and build OpenDD query AST for relationship selection.
- Add tests
<!-- How is it trying to accomplish it (what are the implementation
steps)? -->

V3_GIT_ORIGIN_REV_ID: 516ca9f117f242892146d6026b35266cbaab591d
<!-- The PR description should answer 2 important questions: -->

### What

These cause trouble when pulling the Git repo:
#10539

V3_GIT_ORIGIN_REV_ID: 28b9ee6a7860c2712dcc4032729511a211a13d01
This gets us much smaller artifacts with very little additional latency.

Artifact sizes become:
  **74% smaller** for chinook
  **94% smaller** for the realistic big schema (38MB vs. 611MB)

...with only a 5% or so latency regression.

Also did quite a bit of refactoring to try to tighten things up and
clarify the encoding story.

<!-- The PR description should answer 2 important questions: -->

V3_GIT_ORIGIN_REV_ID: af810506e0c1831d357d725a5530466788017165
<!-- The PR description should answer 2 important questions: -->

### What

Incrementally moving to new execution plan stuff - this removes more
duplicates types from `execute::plan` and makes the new OpenDD pipeline
use the new types and execution functions.

Functional no-op.

V3_GIT_ORIGIN_REV_ID: c258e5e2991504fc8fbea6cce8e3135a2170f2f3
<!-- The PR description should answer 2 important questions: -->

### What

This PR removes the parametric `TFilterExpression` that lives all over
`execute` in favour of explicit types from `plan-types`. It means we can
remove a bunch of NDC request code we recently duplicated too, great.

Functional no-op.

Stacked on top of #1368

V3_GIT_ORIGIN_REV_ID: 6c8a94d507fb74be9d6f529023423dad2b1899af
<!-- The PR description should answer 2 important questions: -->

### What

Don't know how these got here, they make git clone difficult.

V3_GIT_ORIGIN_REV_ID: d3aad62587f9f4d2ebdac8aa2c5070a07acffcda
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.89
to 1.0.92.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/proc-macro2/releases">proc-macro2's
releases</a>.</em></p>
<blockquote>
<h2>1.0.92</h2>
<ul>
<li>Improve compiler/fallback mismatch panic message (<a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/487">#487</a>)</li>
</ul>
<h2>1.0.91</h2>
<ul>
<li>Fix panic <em>&quot;compiler/fallback mismatch 949&quot;</em> when
using TokenStream::from_str from inside a proc macro to parse a string
containing doc comment (<a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/484">#484</a>)</li>
</ul>
<h2>1.0.90</h2>
<ul>
<li>Improve error recovery in TokenStream's and Literal's FromStr
implementations to work around <a
href="https://redirect.github.com/rust-lang/rust/issues/58736">rust-lang/rust#58736</a>
such that rustc does not poison compilation on codepaths that should be
recoverable errors (<a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/477">#477</a>,
<a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/478">#478</a>,
<a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/479">#479</a>,
<a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/480">#480</a>,
<a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/481">#481</a>,
<a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/482">#482</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/dtolnay/proc-macro2/commit/acc7d368209b3af57bba8c470f3c8f5f9234ec04"><code>acc7d36</code></a>
Release 1.0.92</li>
<li><a
href="https://github.com/dtolnay/proc-macro2/commit/0cb443d93587bf892cb5c8bac6900e6f39f2f439"><code>0cb443d</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/487">#487</a>
from dtolnay/mismatchline</li>
<li><a
href="https://github.com/dtolnay/proc-macro2/commit/ae478edd072d05c83f3c42a3fcad865d058d0e2c"><code>ae478ed</code></a>
Change mismatch panic message to avoid github linkifying</li>
<li><a
href="https://github.com/dtolnay/proc-macro2/commit/5046761b9689109142a02c71736284013673f0bd"><code>5046761</code></a>
Release 1.0.91</li>
<li><a
href="https://github.com/dtolnay/proc-macro2/commit/27c54948b3c993855f2a58decc154ebe0a560f66"><code>27c5494</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/486">#486</a>
from dtolnay/compilerlex</li>
<li><a
href="https://github.com/dtolnay/proc-macro2/commit/a9146d6cb558851b1ae180ef28b93cd6987cd4ab"><code>a9146d6</code></a>
Ensure that compiler tokenstream parsing only produces a compiler
lexerror</li>
<li><a
href="https://github.com/dtolnay/proc-macro2/commit/1ce5f04a7e44e2213244da36767678d53567c4f7"><code>1ce5f04</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/485">#485</a>
from dtolnay/fallbackident</li>
<li><a
href="https://github.com/dtolnay/proc-macro2/commit/75d08189223012a175e7165cd665943dc7f5ee9f"><code>75d0818</code></a>
Make parser's fallback Ident symmetric with Group and Literal</li>
<li><a
href="https://github.com/dtolnay/proc-macro2/commit/56c3e31df20a7c5c6ab9d356332a6a51f78ba179"><code>56c3e31</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/484">#484</a>
from dtolnay/fbliteral</li>
<li><a
href="https://github.com/dtolnay/proc-macro2/commit/d2c0e611fdea620dd85f8ab8327cdccb0f002cbb"><code>d2c0e61</code></a>
Fix spanned fallback literal construction</li>
<li>Additional commits viewable in <a
href="https://github.com/dtolnay/proc-macro2/compare/1.0.89...1.0.92">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=proc-macro2&package-manager=cargo&previous-version=1.0.89&new-version=1.0.92)](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>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
V3_GIT_ORIGIN_REV_ID: ab770bbcd6920bc7886c2c041626bb9ef1659409
Bumps [syn](https://github.com/dtolnay/syn) from 2.0.87 to 2.0.89.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/syn/releases">syn's
releases</a>.</em></p>
<blockquote>
<h2>2.0.89</h2>
<ul>
<li>Fix <em>&quot;compiler/fallback mismatch 949&quot;</em> panic (<a
href="https://redirect.github.com/dtolnay/proc-macro2/issues/483">dtolnay/proc-macro2#483</a>)</li>
</ul>
<h2>2.0.88</h2>
<ul>
<li>Improve error recovery in <code>parse_str</code> (<a
href="https://redirect.github.com/dtolnay/syn/issues/1783">#1783</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/dtolnay/syn/commit/06af36b972a9d50e961ebbe1bc6e8b56b1905cf4"><code>06af36b</code></a>
Release 2.0.89</li>
<li><a
href="https://github.com/dtolnay/syn/commit/42b47472503523b56979e6e15a905b02be31cf0d"><code>42b4747</code></a>
Fix &quot;compiler/fallback mismatch 949&quot; panic</li>
<li><a
href="https://github.com/dtolnay/syn/commit/424e484905c4fa83e2f5a396c6996f7d066c5572"><code>424e484</code></a>
Release 2.0.88</li>
<li><a
href="https://github.com/dtolnay/syn/commit/2375d9ac019e86f65eb07bed45c3ffd8ead92690"><code>2375d9a</code></a>
Pull in proc-macro2 FromStr's more robust error recovery</li>
<li><a
href="https://github.com/dtolnay/syn/commit/f46a6f32246696a1585c2c9e68c78b44079d68a5"><code>f46a6f3</code></a>
Update test suite to nightly-2024-11-18</li>
<li><a
href="https://github.com/dtolnay/syn/commit/fc133ebb037aa74c9a6ca10f9d394a7a9ee509fd"><code>fc133eb</code></a>
Resolve unnecessary_map_or clippy lint</li>
<li><a
href="https://github.com/dtolnay/syn/commit/0ccac34ff92fac4ddb488e8f1c7f9527e12b231b"><code>0ccac34</code></a>
Resolve question_mark clippy lint</li>
<li><a
href="https://github.com/dtolnay/syn/commit/5c1c057bfbcc55d05938a5b866428d86e6fe9f0a"><code>5c1c057</code></a>
Disable toml &quot;display&quot; feature</li>
<li><a
href="https://github.com/dtolnay/syn/commit/5bbe46a8c873e52ba289071ac30cd058c29a6e77"><code>5bbe46a</code></a>
Prevent upload-artifact step from causing CI failure</li>
<li><a
href="https://github.com/dtolnay/syn/commit/2b45e9331e5eece0f1cea01a9378f4296c1f1d60"><code>2b45e93</code></a>
Raise minimum version for syn-codegen crate to Rust 1.65</li>
<li>See full diff in <a
href="https://github.com/dtolnay/syn/compare/2.0.87...2.0.89">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=syn&package-manager=cargo&previous-version=2.0.87&new-version=2.0.89)](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>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
V3_GIT_ORIGIN_REV_ID: aaafda56a5aec6c9369d9f0c9f43cc270bae0b15
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.20 to 4.5.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/releases">clap's
releases</a>.</em></p>
<blockquote>
<h2>v4.5.21</h2>
<h2>[4.5.21] - 2024-11-13</h2>
<h3>Fixes</h3>
<ul>
<li><em>(parser)</em> Ensure defaults are filled in on error with
<code>ignore_errors(true)</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's
changelog</a>.</em></p>
<blockquote>
<h2>[4.5.21] - 2024-11-13</h2>
<h3>Fixes</h3>
<ul>
<li><em>(parser)</em> Ensure defaults are filled in on error with
<code>ignore_errors(true)</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/clap-rs/clap/commit/03d722625a9c7f396c5843926e79c7299b7f914c"><code>03d7226</code></a>
chore: Release</li>
<li><a
href="https://github.com/clap-rs/clap/commit/3df70fb2b64f326593f96681c0c8476240547b8d"><code>3df70fb</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/clap-rs/clap/commit/3266c36abf63d3c0fac9102998984cd65f808212"><code>3266c36</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5691">#5691</a>
from epage/custom</li>
<li><a
href="https://github.com/clap-rs/clap/commit/951762db57c81e09954031ef3beac6e9f622cc6f"><code>951762d</code></a>
feat(complete): Allow any OsString-compatible type to be a
CompletionCandidate</li>
<li><a
href="https://github.com/clap-rs/clap/commit/bb6493e890a1fb0d954d64916650688b276c44f1"><code>bb6493e</code></a>
feat(complete): Offer - as a path option</li>
<li><a
href="https://github.com/clap-rs/clap/commit/27b348dbcbd647d24b506ed70c61ebe23c2b087e"><code>27b348d</code></a>
refactor(complete): Simplify ArgValueCandidates code</li>
<li><a
href="https://github.com/clap-rs/clap/commit/49b8108f8c8dfd8bd2d7907c60bed9d2155a42cb"><code>49b8108</code></a>
feat(complete): Add PathCompleter</li>
<li><a
href="https://github.com/clap-rs/clap/commit/82a360aa545713e2c70b82d22f1be1e91e9611ff"><code>82a360a</code></a>
feat(complete): Add ArgValueCompleter</li>
<li><a
href="https://github.com/clap-rs/clap/commit/47aedc6906c0c35a89833331041a083630d777fb"><code>47aedc6</code></a>
fix(complete): Ensure paths are sorted</li>
<li><a
href="https://github.com/clap-rs/clap/commit/431e2bc931b6721471fad18866f52fefe7d6572c"><code>431e2bc</code></a>
test(complete): Ensure ArgValueCandidates get filtered</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.20...clap_complete-v4.5.21">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.5.20&new-version=4.5.21)](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>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
V3_GIT_ORIGIN_REV_ID: 52969c82c421ad5a486076cd9c96aa8d6e3146e8
Bumps [url](https://github.com/servo/rust-url) from 2.5.3 to 2.5.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/servo/rust-url/releases">url's
releases</a>.</em></p>
<blockquote>
<h2>v2.5.4</h2>
<h2>What's Changed</h2>
<ul>
<li>Revert &quot;Normalize URL paths: convert /.//p, /..//p, and //p to
p (<a
href="https://redirect.github.com/servo/rust-url/issues/943">#943</a>)&quot;
by <a href="https://github.com/valenting"><code>@​valenting</code></a>
in <a
href="https://redirect.github.com/servo/rust-url/pull/999">servo/rust-url#999</a></li>
<li>Updates the MSRV to 1.63 required though the libc v0.2.164
dependency</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/servo/rust-url/compare/v2.5.3...v2.5.4">https://github.com/servo/rust-url/compare/v2.5.3...v2.5.4</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/servo/rust-url/commit/d77dfb467f8dd0c1fa181b3dfbc46e7cbe252021"><code>d77dfb4</code></a>
Revert &quot;Normalize URL paths: convert /.//p, /..//p, and //p to p
(<a
href="https://redirect.github.com/servo/rust-url/issues/943">#943</a>)&quot;
(<a
href="https://redirect.github.com/servo/rust-url/issues/999">#999</a>)</li>
<li><a
href="https://github.com/servo/rust-url/commit/da649031b93b0713b327fac7daa449017468e943"><code>da64903</code></a>
Change no_std to no-std in Cargo.toml (<a
href="https://redirect.github.com/servo/rust-url/issues/991">#991</a>)</li>
<li>See full diff in <a
href="https://github.com/servo/rust-url/compare/v2.5.3...v2.5.4">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=url&package-manager=cargo&previous-version=2.5.3&new-version=2.5.4)](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>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
V3_GIT_ORIGIN_REV_ID: f7ec4dceef4056ffe2f69065720b6075797b8404
### What
This PR makes the docker-compose.yaml useful for both running the engine
in docker as well as when the engine is running locally on the host.
This enables a new `just start-engine` target that runs the engine
locally while using the same deps and configuration as in
docker-compose.yaml. Running engine this way is faster than constantly
rebuilding in Docker.

### How
The various component in docker-compose.yaml are configured to talk to
one another via `local.hasura.dev` in the same way as Hasura projects
are done via `ddn`. This enables the engine to not care whether it is
running on the host machine directly via cargo or inside a docker
container.

The Dockerfile has also been simplified a little and now only builds the
engine, not every single crate.

V3_GIT_ORIGIN_REV_ID: b17b066fc204fd76b74633990b9862f5db4f180a
PR-URL: hasura/graphql-engine-mono#11090
GitOrigin-RevId: 9643afe611fe4c0663364b496b14f9f5bb97108c
### What
This PR adds support for logical operators at the scalar boolean
expression level. Metadata already let you declare that you wanted this,
but we never actually implemented it. This has been rectified!

The feature has been gated behind a compatibility flag because users
very likely have it already turned on in Metadata, so actually doing
what they asked for will result in a GraphQL schema diff breaking
change. A warning is raised if the user has this enabled but doesn't
actually work because their compatibility date is too young.

### How
Logical operator metadata resolve code has been moved from
`aggregate_boolean_expressions` into `scalar_boolean_expressions` so it
can be reused for both (scalars come before aggregate bool exps). This
is then used to resolve the logical operators setting on scalar boolean
expressions.

In `graphql/schema` the logical operator annotations have been
rearranged to allow for reuse of code. The same function
`build_logical_operators_schema` is used to generate these annotations
across object and scalar boolean expressions.

These annotations are then consumed by `graphql/ir` which now handles
them for scalar boolean expressions.

The metadata resolve test
`passing/boolean_expression_type/basic_with_scalar_logical_operators/metadata.json`
tests resolving logical operators in scalar boolean expressions. All
other tests snapshots have the new warning captured in them.

The engine test `execute/models/select_many/where/simple/request.gql`
has been updated to also test the new functionality. It got converted
from using ObjectBooleanExpressionType to BooleanExpressionType in order
to do this. I also beefed up its testing of permissions by actually
having some defined.

V3_GIT_ORIGIN_REV_ID: 0a7541bea5ff67dbf07ee373ba3cc8c230eea853
<!-- The PR description should answer 2 important questions: -->

### What

We already do this logic in two places, to save me doing it in a third,
resolving this earlier.

If a relationship field on a boolean expression is not specified, we
fall back to the filter expression on the target model.

Functional no-op.

V3_GIT_ORIGIN_REV_ID: 435f73426362bfb72096059d3b212208aa1b0b84
paf31 and others added 30 commits January 31, 2025 16:34
<!-- The PR description should answer 2 important questions: -->

### What

Push down EXTRACT/DATE_PART function inside GROUP BY. Depends on
hasura/ndc-spec#201

### How

<!-- How is it trying to accomplish it (what are the implementation
steps)? -->

---------

Co-authored-by: Daniel Chambers <daniel@hasura.io>
V3_GIT_ORIGIN_REV_ID: ccff02132f05de0eb991967c56e0d23bbc69ccfd
<!-- The PR description should answer 2 important questions: -->

### What

Gardening PR - I want to make a proper error type for `models_graphql`
step but loads of it's helpers return the large `Error` type. This fixes
the first of those. Functional no-op.

V3_GIT_ORIGIN_REV_ID: a3cd9b7cd36b188a8057b5de837c89ea8a6896a9
<!-- The PR description should answer 2 important questions: -->

### What

When resolving `ObjectType` we weren't checking that the fields all
exist. This is often picked up down the line, but we have the best
chance of informing the user mostly clearly here.

V3_GIT_ORIGIN_REV_ID: 02ec0f564a5c7fd263fed31ff6cdeb05c283f36d
Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.68
to 0.10.70.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sfackler/rust-openssl/releases">openssl's
releases</a>.</em></p>
<blockquote>
<h2>openssl v0.10.70</h2>
<h2>What's Changed</h2>
<ul>
<li>Attempt to fix CI by pinning to the Ubuntu 22.04 image by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2357">sfackler/rust-openssl#2357</a></li>
<li>Remove EC_METHOD and EC_GROUP_new for LibreSSL 4.1 by <a
href="https://github.com/botovq"><code>@​botovq</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2356">sfackler/rust-openssl#2356</a></li>
<li>Test against 3.4.0 final release by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2359">sfackler/rust-openssl#2359</a></li>
<li>Expose <code>SslMethod::{dtls_client,dtls_server}</code> by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2358">sfackler/rust-openssl#2358</a></li>
<li>Fix lifetimes in ssl::select_next_proto by <a
href="https://github.com/sfackler"><code>@​sfackler</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2360">sfackler/rust-openssl#2360</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.69...openssl-v0.10.70">https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.69...openssl-v0.10.70</a></p>
<h2>openssl v0.10.69</h2>
<h2>What's Changed</h2>
<ul>
<li>build(deps): Update <code>openssl-macro</code> to version
<code>0.1.1</code> by <a
href="https://github.com/caspermeijn"><code>@​caspermeijn</code></a> in
<a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2324">sfackler/rust-openssl#2324</a></li>
<li>Enable set_alpn_select_callback for BoringSSL by <a
href="https://github.com/ViktoriiaKovalova"><code>@​ViktoriiaKovalova</code></a>
in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2327">sfackler/rust-openssl#2327</a></li>
<li>Switch the test to use prime256v1 based key by <a
href="https://github.com/dcermak"><code>@​dcermak</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2330">sfackler/rust-openssl#2330</a></li>
<li>Expose EVP_DigestSqueeze from Hasher by <a
href="https://github.com/initsecret"><code>@​initsecret</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2275">sfackler/rust-openssl#2275</a></li>
<li>Expose SSL_CTX_load_verify_locations by <a
href="https://github.com/sfackler"><code>@​sfackler</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2353">sfackler/rust-openssl#2353</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/caspermeijn"><code>@​caspermeijn</code></a>
made their first contribution in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2324">sfackler/rust-openssl#2324</a></li>
<li><a
href="https://github.com/ViktoriiaKovalova"><code>@​ViktoriiaKovalova</code></a>
made their first contribution in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2327">sfackler/rust-openssl#2327</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.68...openssl-v0.10.69">https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.68...openssl-v0.10.69</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/a4d399b0f1a3694cb2d1728edf74d318a3cac890"><code>a4d399b</code></a>
Release openssl v0.10.70</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/c9a33e286023f92b869c5f157b349be15985a799"><code>c9a33e2</code></a>
Release openssl-sys v0.9.105</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/f014afb230de4d77bc79dea60e7e58c2f47b60f2"><code>f014afb</code></a>
Merge pull request <a
href="https://redirect.github.com/sfackler/rust-openssl/issues/2360">#2360</a>
from sfackler/fix-alpn-lifetimes</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/8e6e30bbf7e7627845b801f83a3810d6ffc1f157"><code>8e6e30b</code></a>
Fix lifetimes in ssl::select_next_proto</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/1aff2801ca1dd756a0566a4d4fa9a00967280114"><code>1aff280</code></a>
Merge pull request <a
href="https://redirect.github.com/sfackler/rust-openssl/issues/2358">#2358</a>
from alex/expose-dlts</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/16ca5b278b99bb667321b4d88da230ee8f820e08"><code>16ca5b2</code></a>
Merge pull request <a
href="https://redirect.github.com/sfackler/rust-openssl/issues/2359">#2359</a>
from sfackler/alex-patch-1</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/4c9fbb0c18e8a3ac1de9671d7828862b49c1cb87"><code>4c9fbb0</code></a>
Test against 3.4.0 final release</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/5ecb31d3fd252c54dbae5e0b5b7ad495b26ac339"><code>5ecb31d</code></a>
Update openssl/src/ssl/mod.rs</li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/4830f5bb93dafeeeddf32bf41dda83e2560f3d49"><code>4830f5b</code></a>
Expose <code>SslMethod::{dtls_client,dtls_server}</code></li>
<li><a
href="https://github.com/sfackler/rust-openssl/commit/bab03c4093ef626c9564354ae7c2484f4f9ad6a9"><code>bab03c4</code></a>
Merge pull request <a
href="https://redirect.github.com/sfackler/rust-openssl/issues/2356">#2356</a>
from botovq/rm-ec-method</li>
<li>Additional commits viewable in <a
href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.68...openssl-v0.10.70">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openssl&package-manager=cargo&previous-version=0.10.68&new-version=0.10.70)](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>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
V3_GIT_ORIGIN_REV_ID: 244035cb5023ba9fd02da6e59f8011b739fb1fad
<!-- The PR description should answer 2 important questions: -->

### What

This PR adds a check during the metadata resolve phase to ensure that we
don't include fields with args in the order-by.

Without flag:
```
Warning: The orderable field "name" has field arguments and cannot be used in order by expressions.
starting server on [::]:3000
```

With flag (`disallow_order_by_fields_with_field_arguments`):
```
Error while starting up the engine: failed to build engine state - The following issues were raised but disallowed by compatibility configuration:

The orderable field "name" has field arguments and cannot be used in order by expressions
```

### How

<!-- How is it trying to accomplish it (what are the implementation
steps)? -->

V3_GIT_ORIGIN_REV_ID: eadb196d61bf1cbbc6a47a1dcead139907bfdcfd
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.84
to 0.1.86.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dtolnay/async-trait/releases">async-trait's
releases</a>.</em></p>
<blockquote>
<h2>0.1.86</h2>
<ul>
<li>Documentation improvements</li>
</ul>
<h2>0.1.85</h2>
<ul>
<li>Omit <code>Self: 'async_trait</code> bound in impl when not needed
by signature (<a
href="https://redirect.github.com/dtolnay/async-trait/issues/284">#284</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/dtolnay/async-trait/commit/46a70c0a1fa63201ac6429702ba7d82aa97c3f00"><code>46a70c0</code></a>
Release 0.1.86</li>
<li><a
href="https://github.com/dtolnay/async-trait/commit/0e43f2977b1be4f9447df39ac9a13063a9660689"><code>0e43f29</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/async-trait/issues/286">#286</a>
from dtolnay/dyncomp</li>
<li><a
href="https://github.com/dtolnay/async-trait/commit/c49cbcb929cf8be9b22f6990c87c7f06218da6ee"><code>c49cbcb</code></a>
Update 'object safe' -&gt; 'dyn compatible' naming in tests</li>
<li><a
href="https://github.com/dtolnay/async-trait/commit/87316f9058a50e9d1956576cafd25bb1974ab6a8"><code>87316f9</code></a>
Merge pull request <a
href="https://redirect.github.com/dtolnay/async-trait/issues/285">#285</a>
from dtolnay/dyncomp</li>
<li><a
href="https://github.com/dtolnay/async-trait/commit/eb69fb324fbe5bc734ead79cb3ea1c6e509dc3a9"><code>eb69fb3</code></a>
Delete section on dyn compatibility of default implementations</li>
<li><a
href="https://github.com/dtolnay/async-trait/commit/ec9665a411c1946585c7e4981bc113c985731e2d"><code>ec9665a</code></a>
Update example error message in docs</li>
<li><a
href="https://github.com/dtolnay/async-trait/commit/f1b4d3cac4a35e9d7f8e12a9eaacd88f638be16c"><code>f1b4d3c</code></a>
Update ui test suite to nightly-2025-02-01</li>
<li><a
href="https://github.com/dtolnay/async-trait/commit/b33a4b21b6534dc0a51c22e4ceb8c15525958088"><code>b33a4b2</code></a>
More precise gitignore patterns</li>
<li><a
href="https://github.com/dtolnay/async-trait/commit/9d09210d3694fcc49b3e3c76355225de0795accb"><code>9d09210</code></a>
Remove **/*.rs.bk from project-specific gitignore</li>
<li><a
href="https://github.com/dtolnay/async-trait/commit/3f11674af6f1bd11aff252a513e8fffb4f550394"><code>3f11674</code></a>
Update ui test suite to nightly-2025-01-23</li>
<li>Additional commits viewable in <a
href="https://github.com/dtolnay/async-trait/compare/0.1.84...0.1.86">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async-trait&package-manager=cargo&previous-version=0.1.84&new-version=0.1.86)](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>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
V3_GIT_ORIGIN_REV_ID: 24e6fc0193dfc21a468c6e879decf3f5698cd986
<!-- The PR description should answer 2 important questions: -->

### What

Gardening task, make diff tests easier to understand, so we know if any
difference is due to websockets or OpenDD testing.

Functional no-op.

V3_GIT_ORIGIN_REV_ID: 4e41a39c5a604ec44a484f8d7c1fb4ea135ecf88
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.42.0 to 1.43.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/tokio/releases">tokio's
releases</a>.</em></p>
<blockquote>
<h2>Tokio v1.43.0</h2>
<h1>1.43.0 (Jan 8th, 2025)</h1>
<h3>Added</h3>
<ul>
<li>net: add <code>UdpSocket::peek</code> methods (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7068">#7068</a>)</li>
<li>net: add support for Haiku OS (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7042">#7042</a>)</li>
<li>process: add <code>Command::into_std()</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7014">#7014</a>)</li>
<li>signal: add <code>SignalKind::info</code> on illumos (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6995">#6995</a>)</li>
<li>signal: add support for realtime signals on illumos (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7029">#7029</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>io: don't call <code>set_len</code> before initializing vector in
<code>Blocking</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7054">#7054</a>)</li>
<li>macros: suppress <code>clippy::needless_return</code> in
<code>#[tokio::main]</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6874">#6874</a>)</li>
<li>runtime: fix thread parking on WebAssembly (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7041">#7041</a>)</li>
</ul>
<h3>Changes</h3>
<ul>
<li>chore: use unsync loads for <code>unsync_load</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7073">#7073</a>)</li>
<li>io: use <code>Buf::put_bytes</code> in <code>Repeat</code> read impl
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7055">#7055</a>)</li>
<li>task: drop the join waker of a task eagerly (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6986">#6986</a>)</li>
</ul>
<h3>Changes to unstable APIs</h3>
<ul>
<li>metrics: improve flexibility of H2Histogram Configuration (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6963">#6963</a>)</li>
<li>taskdump: add accessor methods for backtrace (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6975">#6975</a>)</li>
</ul>
<h3>Documented</h3>
<ul>
<li>io: clarify <code>ReadBuf::uninit</code> allows initialized buffers
as well (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7053">#7053</a>)</li>
<li>net: fix ambiguity in <code>TcpStream::try_write_vectored</code>
docs (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7067">#7067</a>)</li>
<li>runtime: fix <code>LocalRuntime</code> doc links (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7074">#7074</a>)</li>
<li>sync: extend documentation for
<code>watch::Receiver::wait_for</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7038">#7038</a>)</li>
<li>sync: fix typos in <code>OnceCell</code> docs (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7047">#7047</a>)</li>
</ul>
<p><a
href="https://redirect.github.com/tokio-rs/tokio/issues/6874">#6874</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/6874">tokio-rs/tokio#6874</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6963">#6963</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/6963">tokio-rs/tokio#6963</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6975">#6975</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/6975">tokio-rs/tokio#6975</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6986">#6986</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/6986">tokio-rs/tokio#6986</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6995">#6995</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/6995">tokio-rs/tokio#6995</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7014">#7014</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7014">tokio-rs/tokio#7014</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7029">#7029</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7029">tokio-rs/tokio#7029</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7038">#7038</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7038">tokio-rs/tokio#7038</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7041">#7041</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7041">tokio-rs/tokio#7041</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7042">#7042</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7042">tokio-rs/tokio#7042</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7047">#7047</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7047">tokio-rs/tokio#7047</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7053">#7053</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7053">tokio-rs/tokio#7053</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7054">#7054</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7054">tokio-rs/tokio#7054</a>
<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7055">#7055</a>:
<a
href="https://redirect.github.com/tokio-rs/tokio/pull/7055">tokio-rs/tokio#7055</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tokio-rs/tokio/commit/5f3296df77ad594779d1fe1a1583078ca9832daf"><code>5f3296d</code></a>
chore: prepare Tokio v1.43.0 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7079">#7079</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/cc974a646bd3932c148e300a92fda387c23768dd"><code>cc974a6</code></a>
chore: prepare tokio-macros v2.5.0 (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7078">#7078</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/15495fd88305099d4ffa0a5583f6d8856d728ac3"><code>15495fd</code></a>
metrics: improve flexibility of H2Histogram Configuration (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/6963">#6963</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/ad4183412a0c01a9a5b92de0c2dddb5471bc2563"><code>ad41834</code></a>
io: don't call <code>set_len</code> before initializing vector in
<code>Blocking</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7054">#7054</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/bd3e8577377a2b684b50fc0cb50d98f03ad09703"><code>bd3e857</code></a>
runtime: move <code>is_join_waker_set</code> assertion in
<code>unset_waker</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7072">#7072</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/15f73666f18e0853fe1f730bbe8b9b1618fb1016"><code>15f7366</code></a>
runtime: fix <code>LocalRuntime</code> doc links (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7074">#7074</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/fd2048dad1ccbb047bef0325d7f38f6e945a58ac"><code>fd2048d</code></a>
ci: split miri jobs into unit and integration tests (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7071">#7071</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/e8f39157b6047025c109ab2dbcdc9b579c2fac7b"><code>e8f3915</code></a>
chore: use unsync loads for <code>unsync_load</code> (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7073">#7073</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/67f127769b8c17dda6035b9b70bbf7657d74ff09"><code>67f1277</code></a>
net: fix ambiguity in <code>TcpStream::try_write_vectored</code> docs
(<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7067">#7067</a>)</li>
<li><a
href="https://github.com/tokio-rs/tokio/commit/463502cbafdb501c703091442eb658e6241958f1"><code>463502c</code></a>
io: clarify <code>ReadBuf::uninit</code> allows initialized buffers as
well (<a
href="https://redirect.github.com/tokio-rs/tokio/issues/7053">#7053</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tokio-rs/tokio/compare/tokio-1.42.0...tokio-1.43.0">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tokio&package-manager=cargo&previous-version=1.42.0&new-version=1.43.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>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
V3_GIT_ORIGIN_REV_ID: a48d3a80f33454b258315445a5f1f93ce03860f1
Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.7.0 to
2.7.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md">indexmap's
changelog</a>.</em></p>
<blockquote>
<h2>2.7.1 (2025-01-19)</h2>
<ul>
<li>Added <code>#[track_caller]</code> to functions that may panic.</li>
<li>Improved memory reservation for <code>insert_entry</code>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/42e57a395b939292c08d32a317bae7bec3b7b5d8"><code>42e57a3</code></a>
Merge pull request <a
href="https://redirect.github.com/indexmap-rs/indexmap/issues/369">#369</a>
from cuviper/release-2.7.1</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/f61b581178260fe2afaf1c0fc0613be319827d19"><code>f61b581</code></a>
Release 2.7.1</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/cb520a7817b509d3a7cc51c8b60edcdbb029e595"><code>cb520a7</code></a>
Merge pull request <a
href="https://redirect.github.com/indexmap-rs/indexmap/issues/368">#368</a>
from cuviper/reserve_entries</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/f0ec9243d93b1788e77902dfef7ef956dbf38b40"><code>f0ec924</code></a>
Merge pull request <a
href="https://redirect.github.com/indexmap-rs/indexmap/issues/367">#367</a>
from savannstm/better-panics</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/38ef6188a7ece05c2cf5d2e5a930cad0cfb252a3"><code>38ef618</code></a>
Merge pull request <a
href="https://redirect.github.com/indexmap-rs/indexmap/issues/364">#364</a>
from hkBst/patch-1</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/1f1272171f108c23865d1943b9605b54a19de185"><code>1f12721</code></a>
Improve memory reservation for <code>insert_entry</code></li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/2f5575574ca31240ed539b7fdb9938207fe782cc"><code>2f55755</code></a>
Improve panic messages</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/7b64edc994ec11867479f974f190e302e3e66563"><code>7b64edc</code></a>
Add <code>#[track_caller]</code> attributes to functions that may
panic</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/f63bb6e016f2f78516441bc42e586828211ed2dc"><code>f63bb6e</code></a>
remove fxhash dep</li>
<li><a
href="https://github.com/indexmap-rs/indexmap/commit/8eb4de59b03adf2e24284f6ca370d5071c493f9f"><code>8eb4de5</code></a>
Remove fxhash example from lib.rs</li>
<li>Additional commits viewable in <a
href="https://github.com/indexmap-rs/indexmap/compare/2.7.0...2.7.1">compare
view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=indexmap&package-manager=cargo&previous-version=2.7.0&new-version=2.7.1)](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>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
V3_GIT_ORIGIN_REV_ID: ad02d094a7a3a1759138f2224be58904d7675a44
<!-- The PR description should answer 2 important questions: -->

### What

This PR reverts hasura/v3-engine#1566 for now -
currently the typechecking in that PR stops partial argument presets
working, so would rather get those working again before merging.
Considered just not setting a compat config date for the feature, but
that would then leave a flag in OpenDD whose behaviour would change on
the next release, which seems a bit messy.

We'll remerge this and build on this after the release.

V3_GIT_ORIGIN_REV_ID: 3c0b6e4b021d3fa4344e72f34374af401d77e85b
<!-- The PR description should answer 2 important questions: -->

### What

Update changelog and set a compatibility config date for newly added
flags. Need to rebase this once
hasura/v3-engine#1596 is merged as we don't want
typechecking in yet.

### How

<!-- How is it trying to accomplish it (what are the implementation
steps)? -->

V3_GIT_ORIGIN_REV_ID: 512de6010a2ca0d428f83019ce7963df420a94d6
<!-- The PR description should answer 2 important questions: -->

### What

Get Relay tests passing in GraphQL OpenDD pipeline.

V3_GIT_ORIGIN_REV_ID: 8f0671d38f3409e02229d11dc0b57d790b289e77
PR-URL: hasura/graphql-engine-mono#11131
GitOrigin-RevId: e3da7e766d1bd1c4f4c578773a6a23a8051bbdf3
<!-- The PR description should answer 2 important questions: -->

### What

Add most basic snapshot for `plan` crate. Now, by adding `query.json` in
either `failing` or `passing` folders, we can add tests to check the
right thing happens.

To do in a follow up:
- allow role to be defined for each test, currently they all run as
`admin`.

V3_GIT_ORIGIN_REV_ID: 96c6c5f0cea3cfe4e468c451c1bbe0dea43483c8
<!-- The PR description should answer 2 important questions: -->

### What

This PR adds more order by tests:

- Ordering by fields with field arguments: add tests to verify that
fields with arguments cannot be used in order_by clauses.
- Ordering by remote relationships: add tests to verify that remote
relationships cannot be used in order_by clauses.

### How

<!-- How is it trying to accomplish it (what are the implementation
steps)? -->

V3_GIT_ORIGIN_REV_ID: 1e0bc0c0e7e13cf822d8f457c88aaeb3b1f2c963
We can reinstate what was removed here now the release is out:
hasura/v3-engine#1596

V3_GIT_ORIGIN_REV_ID: c751b7309937d4d7717b85b3b60be72e20b24034
<!-- The PR description should answer 2 important questions: -->

### What

These errors were added before warnings existed as a concept, and they
shouldn't really block a user building their API, so we reduce them to
warnings.

V3_GIT_ORIGIN_REV_ID: 2a1aa9141b0d86025807924449d44e4ec7dbfd2a
… the source update is performed

PR-URL: hasura/graphql-engine-mono#11133
GitOrigin-RevId: 3dc258190dd97de7f26f6885f190d9f552d507ca
<!-- The PR description should answer 2 important questions: -->

### What

When typechecking objects, we previously did not consider whether fields
were prefilled by another permission. This means the user would need to
fill in an empty value that would later be overwritten. This fixes that
by looking in the type permissions and filtering out issues before they
are thrown.

This does not map OpenDD -> NDC names, that will follow, and will behind
a separate flag as it affects runtime behaviour.

V3_GIT_ORIGIN_REV_ID: 631a9e4a0db74727516bd919085dac50ded6d9f5
PR-URL: hasura/graphql-engine-mono#11121
GitOrigin-RevId: 6414f41b9558db454fde08088b089c669d4ddb00
<!-- The PR description should answer 2 important questions: -->

### What

We have a lot of holes in permission checks in OpenDD pipeline, what if
we build it into lookups instead? We do this for object types, fixing at
least one known bug on the way.

V3_GIT_ORIGIN_REV_ID: 04d0e03d050e30b9272a58323f3d3821f6f08f73
…errors and JSON schema issues (#1604)

### What
This PR fixes an issue where invalid JSON pointers specified inside
AuthConfig's `jwt.claimsConfig.locations` would cause all extra claims
added there to be silently dropped.

It also fixes the AuthConfig JSON schema generation so that JWTClaimsMap
actually specifies the proper type of the additional properties allowed
on that object (which are the custom claims). The lack of this explicit
definition is likely why the CLI is dropping these claims when it
creates the metadata to send to MBS.

### How
The silent dropping of the extra claims when an invalid JSON pointer was
encountered is because of the weird interaction between serde's flatten
and Option. In this case, a deserialization error causes flatten to
throw away the error and just return a None for the option. This has
been fixed by removing the Option which was unnecessary anyway.

This change introduces "new" errors, but existing builds won't have any
custom claims anyway, since the CLI has been dropping them, so we've
dodged a bullet and don't need a flag and a workaround to deal with
that. Schema diff tests are still passing, which appears to validate
this hypothesis.

The JWTClaimsMap JSON schema issue has been worked around with an extra
macro attribute.

V3_GIT_ORIGIN_REV_ID: 2c6b53be6d567ec5173737097625727040afe9be
PR-URL: hasura/graphql-engine-mono#11114
GitOrigin-RevId: 2ed158f44606af0245a0b334756e02c8d42866a7
…nd not allowed when they should be (#1603)

### What
This PR reworks the logic that validates when an orderable relationship
(in an OrderByExpression) is allowed. Previously the following bugs
occurred:
1. If the connector did not support nested ordering, ordering across
multiple non-nested relationships would fail
2. Remote relationships were allowed to be defined as orderable
relationships but would fail at runtime
3. Orderable relationships were allowed when the connector did not
support local relationships at all
4. Orderable relationships were allowed when the target model/command
did not have a source defined

Now, 1 is fixed, and 2, 3 & 4 cause metadata build errors (assuming the
new `disallow_unsupported_orderable_relationships` flag is set).

### How

1. The code in `crates/graphql/ir/src/order_by.rs` incorrectly
determined whether a field was "nested" or not. This has been fixed by
properly tracking the descent through nested fields. The old code also
used the wrong function to determine if the relationship was valid to be
ordered over (`relationship_execution_category`). This function has been
renamed to `field_selection_relationship_execution_category`) to make it
clear that this is only relevant in field selection contexts. A new
function `validate_orderable_relationship` is now used instead.

2. (& 3 & 4) The code in
`crates/metadata-resolve/src/stages/models_graphql/order_by.rs` has been
reworked to validate remote relationships more comprehensively. In
particular, it now uses the new `validate_orderable_relationship`
function to check the validity of all orderable relationships (whereas
previously it only looked at nested relationships). New metadata resolve
tests have been added to validate the new errors.

V3_GIT_ORIGIN_REV_ID: 9f72f8d04d1301c261627abd88cc1d83a9409e75
… tests (#1608)

### What
This PR removes a bunch of duplicate DataConnectorLinks in the engine
tests and gets tests to try to reuse the same DataConnectorLink from a
shared file where possible. Some tests needed minor adjustments to data
connector names or types to facilitate this.

It also deletes a few test files that are broken and have been unused
for years (the deleted tests in `multiple_root_fields`).

V3_GIT_ORIGIN_REV_ID: b90e3690d167bb04cccc9aa592d69b72b904a0fa
…1610)

<!-- The PR description should answer 2 important questions: -->

### What

This PR adds a new flag called
`disallow_local_relationships_on_data_connectors_without_relationships_or_variables`,
which will raise an error for local relationships if the data connector
doesn't have the relationship as well as variables in capabilities.

We have also added a test for this.

### How

<!-- How is it trying to accomplish it (what are the implementation
steps)? -->

V3_GIT_ORIGIN_REV_ID: f0ecfffc8bb3e813759693cf1734fe87222bcbdb
…ed fields (#1605)

<!-- The PR description should answer 2 important questions: -->

### What

Queries with filter expressions that include remote relationships
applied from nested fields were failing. This error arises from
incorrectly assigning the leaf node of a field path as the source column
when the root column in the path should be considered as the source
column.

### How

Treat the first column in the field_path as a source column and append
current column to the nested field path. It is in consistent with the
logic of resolving local field comparison expression.

<!-- How is it trying to accomplish it (what are the implementation
steps)? -->

V3_GIT_ORIGIN_REV_ID: 8abeb1ce964526762524b58b80c05d76b7b657d4
### What
Updates the changelog and sets a compatibility date for new flags.

V3_GIT_ORIGIN_REV_ID: 400a53d17cde19ef9aeca00f681589b45da39527
PR-URL: hasura/graphql-engine-mono#11137
GitOrigin-RevId: ec8f8d5ca100916494d6e33d6ec9bd79207d2ba9
GITHUB_PR_NUMBER: 10665
GITHUB_PR_URL: #10665

PR-URL: hasura/graphql-engine-mono#11135
Co-authored-by: jack-chan-123 <183378634+jack-chan-123@users.noreply.github.com>
GitOrigin-RevId: 282be94067ba51955d2c3e93d53c6b7492096805
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.