mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 09:22:43 +03:00
d4465ce035
8969 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
Rakesh Emmadi
|
d4465ce035 |
graphql-ws: fix stop all pollers when a connection is dropped (#1315)
<!-- The PR description should answer 2 important questions: --> ### What <!-- 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? --> Fix a bug with pollers are not being stopped when the connection is dropped. ### How Fetch all poller operation ids at once from a mutex map and stop each poller associated with them in a for-loop. <!-- How is it trying to accomplish it (what are the implementation steps)? --> V3_GIT_ORIGIN_REV_ID: f17511d611b92ace3de2c83e606d26214649878b |
||
Daniel Harvey
|
c8d43adb1c |
JSONAPI in multitenant (#1303)
V3_GIT_ORIGIN_REV_ID: 9be48c7e0fa948a1c36d94a48f0a2913984b24a7 |
||
Daniel Harvey
|
df79ec144c |
Print nix build debugging in build (#1313)
<!-- The PR description should answer 2 important questions: --> ### What I feel like Nix builds more than it should, and I'm interested why. [According to the crane docs](https://crane.dev/faq/constant-rebuilds.html#debugging-with-just-nix), we can use this to hopefully see what is going on, by diffing the output between builds. ### How Add `nix derivation show -r .#output` as a build step. V3_GIT_ORIGIN_REV_ID: 32bce8315874b9effb075aa834a891cf0dcc00e2 |
||
Daniel Harvey
|
e537c88d4f |
Use BTreeSet to collect Role in metadata-resolve (#1312)
<!-- The PR description should answer 2 important questions: --> ### What JSONAPI builds iterate over `roles` in metadata, and one was very slow, realised it was because it was calculating for `admin` over and over. This changes the `roles` in `metadata-resolve` to be collected in a `BTreeSet` to remove duplicates, which fixes the problem. ### How Change `Vec` to `BTreeSet`, fix type errors and snapshots. V3_GIT_ORIGIN_REV_ID: c61ef9e490c3cde9d004c08ef71dc73e92cd6e7e |
||
dependabot[bot]
|
1667c96c5d |
Bump derive_more from 0.99.18 to 1.0.0 (#1310)
Bumps [derive_more](https://github.com/JelteF/derive_more) from 0.99.18 to 1.0.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/JelteF/derive_more/releases">derive_more's releases</a>.</em></p> <blockquote> <h2>v1.0.0 - Finally a stable release</h2> <p><code>derive_more</code> is a library that adds derives for many of the standard library traits. By using this library the following code just works:</p> <pre lang="rust"><code>use derive_more::{Add, Display, From, Into}; <p>#[derive(PartialEq, From, Add)] struct MyInt(i32);</p> <p>#[derive(PartialEq, From, Into)] struct Point2D { x: i32, y: i32, }</p> <p>#[derive(PartialEq, From, Add, Display)] enum MyEnum { #[display("int: {_0}")] Int(i32), Uint(u32), #[display("nothing")] Nothing, }</p> <p>assert!(MyInt(11) == MyInt(5) + 6.into()); assert!((5, 6) == Point2D { x: 5, y: 6 }.into()); assert!(MyEnum::Int(15) == (MyEnum::Int(8) + 7.into()).unwrap()); assert!(MyEnum::Int(15).to_string() == "int: 15"); assert!(MyEnum::Uint(42).to_string() == "42"); assert!(MyEnum::Nothing.to_string() == "nothing"); </code></pre></p> <p>Now, more than 8 years after the first commit and almost 5 years after the 0.99.0 release, <code>derive_more</code> has finally reached its 1.0.0 release. This release contains a lot of changes (including some breaking ones) to make it easier to use the derives and make it possible to extend them without having to break backwards compatibility again. There are five major changes that I would like to call out, but there are many more changes that are documented below:</p> <ol> <li>There is a new <code>Debug</code> derive that can be used to easily customize <code>Debug</code> formatting.</li> <li>A greatly improved <code>Display</code> derive, which allows you to do anything that <a href="https://github.com/dtolnay/thiserror"><code>thiserror</code></a> provides, but it works for any type not just errors. And by combining the <code>Display</code> derive with the <code>Error</code> and <code>From</code> derives, there shouldn't really be any need to use <code>thiserror</code> anymore (if you are missing a feature/behaviour from <code>thiserror</code> please report an issue).</li> <li>Traits that can return errors now return a type that implements <code>Error</code> when an error occurs instead of a <code>&'static str</code>.</li> <li>When using <code>use derive_more::SomeTrait</code> the actual trait is also imported not just the derive macro. This is especially useful for <code>Error</code> and <code>Display</code></li> <li>The docs are now rendered on docs.rs and are much better overall.</li> </ol> <h3>Breaking changes</h3> <ul> <li>The minimum supported Rust version (MSRV) is now Rust 1.75.</li> <li>Add the <code>std</code> feature which should be disabled in <code>no_std</code> environments.</li> <li>All Cargo features, except <code>std</code>, are now disabled by default. The <code>full</code> feature can be used to get the old behavior of supporting all possible derives.</li> <li>The <code>TryFrom</code>, <code>Add</code>, <code>Sub</code>, <code>BitAnd</code>, <code>BitOr</code>, <code>BitXor</code>, <code>Not</code> and <code>Neg</code> derives now return a dedicated error type instead of a <code>&'static str</code> on error.</li> <li>The <code>FromStr</code> derive now uses a dedicated <code>FromStrError</code> error type instead of generating unique one each time.</li> <li>The <code>Display</code> derive (and other <code>fmt</code>-like ones) now uses <code>#[display("...", (<expr>),*)]</code> syntax instead of <code>#[display(fmt = "...", ("<expr>"),*)]</code>, and <code>#[display(bound(<bound>))]</code> instead of <code>#[display(bound = "<bound>")]</code>. So without the double quotes around the expressions and bounds.</li> <li>The <code>Debug</code> and <code>Display</code> derives (and other <code>fmt</code>-like ones) now transparently delegate to the inner type when <code>#[display("...", (<expr>),*)]</code> attribute is trivially substitutable with a transparent call. (<a href="https://redirect.github.com/JelteF/derive_more/pull/322">#322</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/JelteF/derive_more/blob/master/CHANGELOG.md">derive_more's changelog</a>.</em></p> <blockquote> <h2>1.0.0 - 2024-08-07</h2> <p>More than 8 years after the first commit and almost 5 years after the 0.99.0 release, <code>derive_more</code> has finally reached its 1.0.0 release. This release contains a lot of changes (including some breaking ones) to make it easier to use the derives and make it possible to extend them without having to break backwards compatibility again. There are five major changes that I would like to call out, but there are many more changes that are documented below:</p> <ol> <li>There is a new <code>Debug</code> derive that can be used to easily customize <code>Debug</code> formatting.</li> <li>A greatly improved <code>Display</code> derive, which allows you to do anything that <a href="https://github.com/dtolnay/thiserror"><code>thiserror</code></a> provides, but it works for any type not just errors. And by combining the <code>Display</code> derive with the <code>Error</code> and <code>From</code> derives, there shouldn't really be any need to use <code>thiserror</code> anymore (if you are missing a feature/behaviour from <code>thiserror</code> please report an issue).</li> <li>Traits that can return errors now return a type that implements <code>Error</code> when an error occurs instead of a <code>&'static str</code>.</li> <li>When using <code>use derive_more::SomeTrait</code> the actual trait is also imported not just the derive macro. This is especially useful for <code>Error</code> and <code>Display</code></li> <li>The docs are now rendered on docs.rs and are much better overall.</li> </ol> <h3>Breaking changes</h3> <ul> <li>The minimum supported Rust version (MSRV) is now Rust 1.75.</li> <li>Add the <code>std</code> feature which should be disabled in <code>no_std</code> environments.</li> <li>All Cargo features, except <code>std</code>, are now disabled by default. The <code>full</code> feature can be used to get the old behavior of supporting all possible derives.</li> <li>The <code>TryFrom</code>, <code>Add</code>, <code>Sub</code>, <code>BitAnd</code>, <code>BitOr</code>, <code>BitXor</code>, <code>Not</code> and <code>Neg</code> derives now return a dedicated error type instead of a <code>&'static str</code> on error.</li> <li>The <code>FromStr</code> derive now uses a dedicated <code>FromStrError</code> error type instead of generating unique one each time.</li> <li>The <code>Display</code> derive (and other <code>fmt</code>-like ones) now uses <code>#[display("...", (<expr>),*)]</code> syntax instead of <code>#[display(fmt = "...", ("<expr>"),*)]</code>, and <code>#[display(bound(<bound>))]</code> instead of <code>#[display(bound = "<bound>")]</code>. So without the double quotes around the expressions and bounds.</li> <li>The <code>Debug</code> and <code>Display</code> derives (and other <code>fmt</code>-like ones) now transparently delegate to the inner type when <code>#[display("...", (<expr>),*)]</code> attribute is trivially substitutable with a transparent call. (<a href="https://redirect.github.com/JelteF/derive_more/pull/322">#322</a>)</li> <li>The <code>DebugCustom</code> derive is renamed to just <code>Debug</code> (gated now under a separate <code>debug</code> feature), and its semantics were changed to be a superset of <code>std</code> variant of <code>Debug</code>.</li> <li>The <code>From</code> derive doesn't derive <code>From<()></code> for enum variants without any fields anymore. This feature was removed because it was considered useless in</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
fb5fd77b04 |
Bump anyhow from 1.0.91 to 1.0.92 (#1311)
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.91 to 1.0.92. <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.92</h2> <ul> <li>Support Rust 1.82's <code>&raw const</code> and <code>&raw mut</code> syntax inside <code>ensure!</code> (<a href="https://redirect.github.com/dtolnay/anyhow/issues/390">#390</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
f83c63c8e8 |
Bump serde_json from 1.0.128 to 1.0.132 (#1309)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.128 to 1.0.132. <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>1.0.132</h2> <ul> <li>Improve binary size and compile time for JSON array and JSON object deserialization by about 50% (<a href="https://redirect.github.com/serde-rs/json/issues/1205">#1205</a>)</li> <li>Improve performance of JSON array and JSON object deserialization by about 8% (<a href="https://redirect.github.com/serde-rs/json/issues/1206">#1206</a>)</li> </ul> <h2>1.0.131</h2> <ul> <li>Implement Deserializer and IntoDeserializer for <code>Map<String, Value></code> and <code>&Map<String, Value></code> (<a href="https://redirect.github.com/serde-rs/json/issues/1135">#1135</a>, thanks <a href="https://github.com/swlynch99"><code>@swlynch99</code></a>)</li> </ul> <h2>1.0.130</h2> <ul> <li>Support converting and deserializing <code>Number</code> from i128 and u128 (<a href="https://redirect.github.com/serde-rs/json/issues/1141">#1141</a>, thanks <a href="https://github.com/druide"><code>@druide</code></a>)</li> </ul> <h2>1.0.129</h2> <ul> <li>Add <a href="https://docs.rs/serde_json/1/serde_json/struct.Map.html#method.sort_keys"><code>serde_json::Map::sort_keys</code></a> and <a href="https://docs.rs/serde_json/1/serde_json/enum.Value.html#method.sort_all_objects"><code>serde_json::Value::sort_all_objects</code></a> (<a href="https://redirect.github.com/serde-rs/json/issues/1199">#1199</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
6ec7a2fff0 |
Bump insta from 1.40.0 to 1.41.1 (#1307)
Bumps [insta](https://github.com/mitsuhiko/insta) from 1.40.0 to 1.41.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/mitsuhiko/insta/releases">insta's releases</a>.</em></p> <blockquote> <h2>1.41.1</h2> <h2>Release Notes</h2> <ul> <li>Re-release of 1.41.0 to generate release artifacts correctly.</li> </ul> <h2>Install cargo-insta 1.41.1</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mitsuhiko/insta/releases/download/1.41.1/cargo-insta-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -c "irm https://github.com/mitsuhiko/insta/releases/download/1.41.1/cargo-insta-installer.ps1 | iex" </code></pre> <h2>Download cargo-insta 1.41.1</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.41.1/cargo-insta-aarch64-apple-darwin.tar.xz">cargo-insta-aarch64-apple-darwin.tar.xz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.41.1/cargo-insta-aarch64-apple-darwin.tar.xz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.41.1/cargo-insta-x86_64-apple-darwin.tar.xz">cargo-insta-x86_64-apple-darwin.tar.xz</a></td> <td>Intel macOS</td> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.41.1/cargo-insta-x86_64-apple-darwin.tar.xz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.41.1/cargo-insta-x86_64-pc-windows-msvc.zip">cargo-insta-x86_64-pc-windows-msvc.zip</a></td> <td>x64 Windows</td> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.41.1/cargo-insta-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.41.1/cargo-insta-x86_64-unknown-linux-gnu.tar.xz">cargo-insta-x86_64-unknown-linux-gnu.tar.xz</a></td> <td>x64 Linux</td> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.41.1/cargo-insta-x86_64-unknown-linux-gnu.tar.xz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.41.1/cargo-insta-x86_64-unknown-linux-musl.tar.xz">cargo-insta-x86_64-unknown-linux-musl.tar.xz</a></td> <td>x64 MUSL Linux</td> <td><a href="https://github.com/mitsuhiko/insta/releases/download/1.41.1/cargo-insta-x86_64-unknown-linux-musl.tar.xz.sha256">checksum</a></td> </tr> </tbody> </table> <h2>1.41.0</h2> <ul> <li> <p>Experimental support for binary snapshots. <a href="https://redirect.github.com/mitsuhiko/insta/issues/610">#610</a> (Florian Plattner)</p> </li> <li> <p><code>--force-update-snapshots</code> now causes <code>cargo-insta</code> to write every snapshot, regardless of whether snapshots fully match, and now implies <code>--accept</code>. This allows for <code>--force-update-snapshots</code> to update inline snapshots' delimiters and indentation.</p> <p>For the previous behavior of <code>--force-update-snapshots</code>, which limited writes to snapshots which didn't fully match, use <code>--require-full-match</code>. The main difference between <code>--require-full-match</code> and the existing behavior of <code>--force-update-snapshots</code> is a non-zero exit code on any snapshots which don't fully match.</p> <p>Like the previous behavior or <code>--force-update-snapshots</code>, <code>--require-full-match</code> doesn't track inline snapshots' delimiters or indentation, so can't update if those don't match. <a href="https://redirect.github.com/mitsuhiko/insta/issues/644">#644</a></p> </li> <li> <p>Inline snapshots only use <code>#</code> characters as delimiters when required. <a href="https://redirect.github.com/mitsuhiko/insta/issues/603">#603</a></p> </li> <li> <p>Warnings for undiscovered snapshots are more robust, and include files with custom snapshot extensions. <a href="https://redirect.github.com/mitsuhiko/insta/issues/637">#637</a></p> </li> <li> <p>Insta runs correctly on packages which reference rust files in a parent path. <a href="https://redirect.github.com/mitsuhiko/insta/issues/626">#626</a></p> </li> <li> <p>Warnings are printed when any snapshot uses a legacy format. <a href="https://redirect.github.com/mitsuhiko/insta/issues/599">#599</a></p> </li> <li> <p><code>cargo insta --version</code> now prints a version. <a href="https://redirect.github.com/mitsuhiko/insta/issues/665">#665</a></p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/mitsuhiko/insta/blob/master/CHANGELOG.md">insta's changelog</a>.</em></p> <blockquote> <h2>1.41.1</h2> <ul> <li>Re-release of 1.41.1 to generate release artifacts correctly.</li> </ul> <h2>1.41.0</h2> <ul> <li> <p>Experimental support for binary snapshots. <a href="https://redirect.github.com/mitsuhiko/insta/issues/610">#610</a> (Florian Plattner)</p> </li> <li> <p><code>--force-update-snapshots</code> now causes <code>cargo-insta</code> to write every snapshot, regardless of whether snapshots fully match, and now implies <code>--accept</code>. This allows for <code>--force-update-snapshots</code> to update inline snapshots' delimiters and indentation.</p> <p>For the previous behavior of <code>--force-update-snapshots</code>, which limited writes to snapshots which didn't fully match, use <code>--require-full-match</code>. The main difference between <code>--require-full-match</code> and the existing behavior of <code>--force-update-snapshots</code> is a non-zero exit code on any snapshots which don't fully match.</p> <p>Like the previous behavior of <code>--force-update-snapshots</code>, <code>--require-full-match</code> doesn't track inline snapshots' delimiters or indentation, so can't update if those don't match. <a href="https://redirect.github.com/mitsuhiko/insta/issues/644">#644</a></p> </li> <li> <p>Inline snapshots only use <code>#</code> characters as delimiters when required. <a href="https://redirect.github.com/mitsuhiko/insta/issues/603">#603</a></p> </li> <li> <p>Warnings for undiscovered snapshots are more robust, and include files with custom snapshot extensions. <a href="https://redirect.github.com/mitsuhiko/insta/issues/637">#637</a></p> </li> <li> <p>Insta runs correctly on packages which reference rust files in a parent path. <a href="https://redirect.github.com/mitsuhiko/insta/issues/626">#626</a></p> </li> <li> <p>Warnings are printed when any snapshot uses a legacy format. <a href="https://redirect.github.com/mitsuhiko/insta/issues/599">#599</a></p> </li> <li> <p><code>cargo insta --version</code> now prints a version. <a href="https://redirect.github.com/mitsuhiko/insta/issues/665">#665</a></p> </li> <li> <p><code>insta</code> now internally uses <code>INSTA_UPDATE=force</code> rather than <code>INSTA_FORCE_UPDATE=1</code>. (This doesn't affect users of <code>cargo-insta</code>, which handles this internally.) <a href="https://redirect.github.com/mitsuhiko/insta/issues/482">#482</a></p> </li> <li> <p><code>cargo-insta</code>'s integration tests continue to grow over the past couple of versions, and now offer coverage of most of <code>cargo-insta</code>'s interface.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
e151f2ab6e |
Bump tokio from 1.40.0 to 1.41.0 (#1308)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.40.0 to 1.41.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.41.0</h2> <h1>1.41.0 (Oct 22th, 2024)</h1> <h3>Added</h3> <ul> <li>metrics: stabilize <code>global_queue_depth</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6854">#6854</a>, <a href="https://redirect.github.com/tokio-rs/tokio/issues/6918">#6918</a>)</li> <li>net: add conversions for unix <code>SocketAddr</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6868">#6868</a>)</li> <li>sync: add <code>watch::Sender::sender_count</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6836">#6836</a>)</li> <li>sync: add <code>mpsc::Receiver::blocking_recv_many</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6867">#6867</a>)</li> <li>task: stabilize <code>Id</code> apis (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6793">#6793</a>, <a href="https://redirect.github.com/tokio-rs/tokio/issues/6891">#6891</a>)</li> </ul> <h3>Added (unstable)</h3> <ul> <li>metrics: add H2 Histogram option to improve histogram granularity (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6897">#6897</a>)</li> <li>metrics: rename some histogram apis (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6924">#6924</a>)</li> <li>runtime: add <code>LocalRuntime</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6808">#6808</a>)</li> </ul> <h3>Changed</h3> <ul> <li>runtime: box futures larger than 16k on release mode (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6826">#6826</a>)</li> <li>sync: add <code>#[must_use]</code> to <code>Notified</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6828">#6828</a>)</li> <li>sync: make <code>watch</code> cooperative (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6846">#6846</a>)</li> <li>sync: make <code>broadcast::Receiver</code> cooperative (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6870">#6870</a>)</li> <li>task: add task size to tracing instrumentation (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6881">#6881</a>)</li> <li>wasm: enable <code>cfg_fs</code> for <code>wasi</code> target (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6822">#6822</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>net: fix regression of abstract socket path in unix socket (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6838">#6838</a>)</li> </ul> <h3>Documented</h3> <ul> <li>io: recommend <code>OwnedFd</code> with <code>AsyncFd</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6821">#6821</a>)</li> <li>io: document cancel safety of <code>AsyncFd</code> methods (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6890">#6890</a>)</li> <li>macros: render more comprehensible documentation for <code>join</code> and <code>try_join</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6814">#6814</a>, <a href="https://redirect.github.com/tokio-rs/tokio/issues/6841">#6841</a>)</li> <li>net: fix swapped examples for <code>TcpSocket::set_nodelay</code> and <code>TcpSocket::nodelay</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6840">#6840</a>)</li> <li>sync: document runtime compatibility (<a href="https://redirect.github.com/tokio-rs/tokio/issues/6833">#6833</a>)</li> </ul> <p><a href="https://redirect.github.com/tokio-rs/tokio/issues/6793">#6793</a>: <a href="https://redirect.github.com/tokio-rs/tokio/pull/6793">tokio-rs/tokio#6793</a> <a href="https://redirect.github.com/tokio-rs/tokio/issues/6808">#6808</a>: <a href="https://redirect.github.com/tokio-rs/tokio/pull/6808">tokio-rs/tokio#6808</a> <a href="https://redirect.github.com/tokio-rs/tokio/issues/6810">#6810</a>: <a href="https://redirect.github.com/tokio-rs/tokio/pull/6810">tokio-rs/tokio#6810</a> <a href="https://redirect.github.com/tokio-rs/tokio/issues/6814">#6814</a>: <a href="https://redirect.github.com/tokio-rs/tokio/pull/6814">tokio-rs/tokio#6814</a> <a href="https://redirect.github.com/tokio-rs/tokio/issues/6821">#6821</a>: <a href="https://redirect.github.com/tokio-rs/tokio/pull/6821">tokio-rs/tokio#6821</a> <a href="https://redirect.github.com/tokio-rs/tokio/issues/6822">#6822</a>: <a href="https://redirect.github.com/tokio-rs/tokio/pull/6822">tokio-rs/tokio#6822</a> <a href="https://redirect.github.com/tokio-rs/tokio/issues/6826">#6826</a>: <a href="https://redirect.github.com/tokio-rs/tokio/pull/6826">tokio-rs/tokio#6826</a> <a href="https://redirect.github.com/tokio-rs/tokio/issues/6828">#6828</a>: <a href="https://redirect.github.com/tokio-rs/tokio/pull/6828">tokio-rs/tokio#6828</a> <a href="https://redirect.github.com/tokio-rs/tokio/issues/6833">#6833</a>: <a href="https://redirect.github.com/tokio-rs/tokio/pull/6833">tokio-rs/tokio#6833</a> <a href="https://redirect.github.com/tokio-rs/tokio/issues/6836">#6836</a>: <a href="https://redirect.github.com/tokio-rs/tokio/pull/6836">tokio-rs/tokio#6836</a> <a href="https://redirect.github.com/tokio-rs/tokio/issues/6838">#6838</a>: <a href="https://redirect.github.com/tokio-rs/tokio/pull/6838">tokio-rs/tokio#6838</a> <a href="https://redirect.github.com/tokio-rs/tokio/issues/6840">#6840</a>: <a href="https://redirect.github.com/tokio-rs/tokio/pull/6840">tokio-rs/tokio#6840</a></p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Daniel Harvey
|
a9f6610691 |
Split resolved metadata from SQL catalog (#1304)
V3_GIT_ORIGIN_REV_ID: 8e64fd6200e207336d18ed6b7c61559fe4b1470d |
||
Vamshi Surabhi
|
6c7ffc270c |
sql introspection: unsupported metadata objects (#1301)
<!-- The PR description should answer 2 important questions: --> ### What This allows for querying the metadata objects that couldn't be exposed to the sql layer: such as models, commands, object types, fields of object types and scalar types. This will help users in debugging their graph. ### How Instead of ignoring unsupported metadata objects, we propagate them through call stacks as required and capture them as part of introspection tables. Eg. on the duckduckemail API: ```bash ❯ echo 'select * from hasura.unsupported_commands;' | jq --null-input --rawfile sql /dev/stdin '{"sql": $sql}' | curl --silent -XPOST -H 'Content-Type: application/json' -d @- 'http://localhost:3000/v1/sql' | jq [ { "subgraph": "app", "name": "Bye", "reason": "Return type not supported: String! (reason: scalar return types are not supported)" }, { "subgraph": "app", "name": "DdaCalendarLoaderInit", "reason": "Return type not supported: String! (reason: scalar return types are not supported)" }, { "subgraph": "app", "name": "DdaCalendarLoaderStatus", "reason": "Return type not supported: String! (reason: scalar return types are not supported)" }, { "subgraph": "app", "name": "DdaGmailLoaderInit", "reason": "Return type not supported: String! (reason: scalar return types are not supported)" }, { "subgraph": "app", "name": "DdaGmailLoaderStatus", "reason": "Return type not supported: String! (reason: scalar return types are not supported)" }, { "subgraph": "app", "name": "DdaMyLoaderInit", "reason": "Return type not supported: String! (reason: scalar return types are not supported)" }, { "subgraph": "app", "name": "DdaMyLoaderStatus", "reason": "Return type not supported: String! (reason: scalar return types are not supported)" }, { "subgraph": "app", "name": "Hello", "reason": "Return type not supported: String! (reason: scalar return types are not supported)" }, { "subgraph": "app", "name": "SendEmail", "reason": "Return type not supported: String! (reason: scalar return types are not supported)" }, { "subgraph": "app", "name": "TestCalendar", "reason": "Return type not supported: Json! (in subgraph app) (reason: scalar return types are not supported)" } ] ❯ echo 'select * from hasura.unsupported_scalars;' | jq --null-input --rawfile sql /dev/stdin '{"sql": $sql}' | curl --silent -XPOST -H 'Content-Type: application/json' -d @- 'http://localhost:3000/v1/sql' | jq [ { "subgraph": "app", "name": "Json", "reason": "No NDC representation found for scalar type 'Json'" } ] ❯ echo 'select * from hasura.unsupported_object_type_fields;' | jq --null-input --rawfile sql /dev/stdin '{"sql": $sql}' | curl --silent -XPOST -H 'Content-Type: application/json' -d @- 'http://localhost:3000/v1/sql' | jq [ { "subgraph": "app", "object": "CalendarEvents", "field_name": "attachments", "reason": "Unsupported scalar type: No NDC representation found for scalar type 'Json'" }, { "subgraph": "app", "object": "CalendarEvents", "field_name": "conferenceData", "reason": "Unsupported scalar type: No NDC representation found for scalar type 'Json'" }, { "subgraph": "app", "object": "CalendarEvents", "field_name": "extendedProperties", "reason": "Unsupported scalar type: No NDC representation found for scalar type 'Json'" }, { "subgraph": "app", "object": "CalendarEvents", "field_name": "recurrence", "reason": "Unsupported scalar type: No NDC representation found for scalar type 'Json'" }, { "subgraph": "app", "object": "CalendarEvents", "field_name": "reminders", "reason": "Unsupported scalar type: No NDC representation found for scalar type 'Json'" }, { "subgraph": "app", "object": "GmailMessages", "field_name": "attachments", "reason": "Unsupported scalar type: No NDC representation found for scalar type 'Json'" }, { "subgraph": "app", "object": "GmailMessages", "field_name": "bccAddresses", "reason": "Unsupported scalar type: No NDC representation found for scalar type 'Json'" }, { "subgraph": "app", "object": "GmailMessages", "field_name": "ccAddresses", "reason": "Unsupported scalar type: No NDC representation found for scalar type 'Json'" }, { "subgraph": "app", "object": "GmailMessages", "field_name": "headers", "reason": "Unsupported scalar type: No NDC representation found for scalar type 'Json'" }, { "subgraph": "app", "object": "GmailMessages", "field_name": "labelIds", "reason": "Unsupported scalar type: No NDC representation found for scalar type 'Json'" }, { "subgraph": "app", "object": "GmailMessages", "field_name": "toAddresses", "reason": "Unsupported scalar type: No NDC representation found for scalar type 'Json'" } ] ❯ echo 'select * from hasura.unsupported_models;' | jq --null-input --rawfile sql /dev/stdin '{"sql": $sql}' | curl --silent -XPOST -H 'Content-Type: application/json' -d @- 'http://localhost:3000/v1/sql' | jq [] ❯ echo 'select * from hasura.unsupported_object_types;' | jq --null-input --rawfile sql /dev/stdin '{"sql": $sql}' | curl --silent -XPOST -H 'Content-Type: application/json' -d @- 'http://localhost:3000/v1/sql' | jq [] ``` V3_GIT_ORIGIN_REV_ID: 01aae03d80b0cd15773812fa05a2fd9a57223250 |
||
Daniel Harvey
|
ae25f249a2 |
Add more JSONAPI spans (#1297)
<!-- The PR description should answer 2 important questions: --> ### What Lets be a bit more granular about our spans for JSONAPI endpoint. <img width="1508" alt="Screenshot 2024-10-29 at 16 46 32" src="https://github.com/user-attachments/assets/97f67ae3-ac27-4dcd-84a4-083dc6ef5e67"> V3_GIT_ORIGIN_REV_ID: d5c0342c0c9dae2f50e78c7f529a54eeedb541a9 |
||
Rakesh Emmadi
|
e15574de67 |
Release v2024.10.30 (#1299)
Update changelog for release v2024.10.30 V3_GIT_ORIGIN_REV_ID: 2bece667c6dedcd596f1ca684d09d42ecf38c1b2 |
||
Daniel Harvey
|
5790c088b1 |
Tidy up engine crate (#1296)
<!-- The PR description should answer 2 important questions: --> ### What Needed to reuse some stuff when putting JSONAPI into multitenant, and everything is a big tangled mess, so thought it was finally time to clean up shop. Moves a bunch of stuff from `/bin` into the library in `src` and splits it into files. Functional no-op. V3_GIT_ORIGIN_REV_ID: 87406e3fb63a1f90347782abeda3d4db14386270 |
||
Daniel Harvey
|
d5f70fd56a |
More JSONAPI schema tweaks (#1293)
<!-- The PR description should answer 2 important questions: --> ### What A few tweaks to make OpenAPI validators happy. V3_GIT_ORIGIN_REV_ID: a1ff6c7180f1ee02d0e6f53c83aeeceea964e5d8 |
||
Varun Choudhary
|
59406c4ee2 |
Console: add prometheus metrics link on monitoring tab
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/11065 Co-authored-by: Poojan Savani <33199323+savanipoojan78@users.noreply.github.com> Co-authored-by: Vijay Prasanna <11921040+vijayprasanna13@users.noreply.github.com> GitOrigin-RevId: 207d6d85becaa4bfe265ec0b59bfd5b40536cd53 |
||
Rakesh Emmadi
|
a759db7d5a |
graphql-ws: consider comma separated values for protocol header (#1295)
<!-- The PR description should answer 2 important questions: --> ### What <!-- 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? --> Consider the possibility of multiple and comma separated header values when validating the protocol name. ### How <!-- How is it trying to accomplish it (what are the implementation steps)? --> V3_GIT_ORIGIN_REV_ID: 4431eda71e6dcbdbcc2df4520af1ed9cbfe8950d |
||
Daniel Harvey
|
1b31f73d26 |
Combine graphql crates together (#1290)
<!-- The PR description should answer 2 important questions: --> ### What Move `lang-graphql`, `graphql-ws` and `frontends/graphql` into the `graphql` folder. Functional no-op. V3_GIT_ORIGIN_REV_ID: c9d6c5db6693dbe9213569443a102a3b3b2e39f6 |
||
Rakesh Emmadi
|
1fce83f445 |
graphql-ws: Add Metrics (#1278)
<!-- The PR description should answer 2 important questions: --> ### What Add the following metrics for GraphQL websockets: - active connections - active pollers - total connections <!-- 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 This is a bit involved that I initially thought. In normal HTTP requests, metrics are recorded in middleware. In websockets, metrics have to be recorded in deeper layers of code. So made the websocket metrics a part of the `Context` as it is available for each connection. Defined a trait that impls a few methods to record metrics on connection & poller managements, and use them in relevant code paths. <!-- How is it trying to accomplish it (what are the implementation steps)? --> V3_GIT_ORIGIN_REV_ID: bbaf63fd7ef3274bf5fe72bb86aa8e07a28f6fe2 |
||
Daniel Harvey
|
4b285a7460 |
Release OrderByExpression (#1289)
<!-- The PR description should answer 2 important questions: --> ### What Release `OrderByExpression` and version 2 of `Model`. These have been working behind feature flags for a while. ### How Remove feature flags, remove `hidden` pragmas on `open-dds` metadata. V3_GIT_ORIGIN_REV_ID: dfb7e9316171c11d2605dfbf01552db093d81d63 |
||
Daniel Harvey
|
84bec972ce |
Add scalar operand for OrderByExpression (#1274)
<!-- The PR description should answer 2 important questions: --> ### What Previously we stored scalar values for `OrderByExpression` inline, now we break them out into their own discreet metadata items. ### How Mostly fixing tests. V3_GIT_ORIGIN_REV_ID: e3ee1c1c9c5ae05113cf82c10627cc89b8b9894c |
||
Rakesh Emmadi
|
a6ed625cd7 |
graphql-ws: Implement connection expiry (#1281)
<!-- The PR description should answer 2 important questions: --> TODO: - ~Add a test for parsing connection expiry from headers~ ### What <!-- 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? --> Expire the connection if the duration is set in the `Context`. ### How Spawn a background thread to wait until the expiry. Send a close message after waiting completes. <!-- How is it trying to accomplish it (what are the implementation steps)? --> V3_GIT_ORIGIN_REV_ID: a9d06c57d75cc87abc3c470ee096a99a8f378a9a |
||
Daniel Harvey
|
161f40636c |
Check relationships exist in order_by_expressions resolve step (#1288)
<!-- The PR description should answer 2 important questions: --> ### What Now when resolving `orderableRelationship` in `order_by_expressions` we check the relationship name refers to a real relationship on that type, and throw an error if not. If we lookup the relationship and it refers to an unknown subgraph, we exclude it but do not error. V3_GIT_ORIGIN_REV_ID: 4d310c6e800cf830860efce30e28fc5f258bf39b |
||
dependabot[bot]
|
dfcbef9fcf |
Bump flate2 from 1.0.32 to 1.0.34 (#1286)
Bumps [flate2](https://github.com/rust-lang/flate2-rs) from 1.0.32 to 1.0.34. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/flate2-rs/releases">flate2's releases</a>.</em></p> <blockquote> <h2>1.0.34</h2> <h2>What's Changed</h2> <ul> <li>Add minimum build test back in to CI by <a href="https://github.com/jongiddy"><code>@jongiddy</code></a> in <a href="https://redirect.github.com/rust-lang/flate2-rs/pull/426">rust-lang/flate2-rs#426</a></li> <li>docs: fix compression level range from 0-9 to 0-10 by <a href="https://github.com/ByteBaker"><code>@ByteBaker</code></a> in <a href="https://redirect.github.com/rust-lang/flate2-rs/pull/427">rust-lang/flate2-rs#427</a></li> <li>Document backend differences in compression levels by <a href="https://github.com/Shnatsel"><code>@Shnatsel</code></a> in <a href="https://redirect.github.com/rust-lang/flate2-rs/pull/430">rust-lang/flate2-rs#430</a></li> <li>Upgrade zlib-rs to 0.3.0 to get multiple bugfixes by <a href="https://github.com/Shnatsel"><code>@Shnatsel</code></a> in <a href="https://redirect.github.com/rust-lang/flate2-rs/pull/428">rust-lang/flate2-rs#428</a></li> <li>Better wording in compression level docs by <a href="https://github.com/Shnatsel"><code>@Shnatsel</code></a> in <a href="https://redirect.github.com/rust-lang/flate2-rs/pull/431">rust-lang/flate2-rs#431</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ByteBaker"><code>@ByteBaker</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/flate2-rs/pull/427">rust-lang/flate2-rs#427</a></li> <li><a href="https://github.com/Shnatsel"><code>@Shnatsel</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/flate2-rs/pull/430">rust-lang/flate2-rs#430</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/rust-lang/flate2-rs/compare/1.0.33...1.0.34">https://github.com/rust-lang/flate2-rs/compare/1.0.33...1.0.34</a></p> <h2>1.0.33 - fix minimal manifest versions</h2> <h2>What's Changed</h2> <ul> <li>Fix msrv: Run msrv checks with minimal versions by <a href="https://github.com/NobodyXu"><code>@NobodyXu</code></a> in <a href="https://redirect.github.com/rust-lang/flate2-rs/pull/425">rust-lang/flate2-rs#425</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/NobodyXu"><code>@NobodyXu</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/flate2-rs/pull/425">rust-lang/flate2-rs#425</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/rust-lang/flate2-rs/compare/1.0.32...1.0.33">https://github.com/rust-lang/flate2-rs/compare/1.0.32...1.0.33</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
94d29107e4 |
Bump bytes from 1.7.2 to 1.8.0 (#1285)
Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.7.2 to 1.8.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tokio-rs/bytes/releases">bytes's releases</a>.</em></p> <blockquote> <h2>Bytes 1.8.0</h2> <h1>1.8.0 (October 21, 2024)</h1> <ul> <li>Guarantee address in <code>split_off</code>/<code>split_to</code> for empty slices (<a href="https://redirect.github.com/tokio-rs/bytes/issues/740">#740</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md">bytes's changelog</a>.</em></p> <blockquote> <h1>1.8.0 (October 21, 2024)</h1> <ul> <li>Guarantee address in <code>split_off</code>/<code>split_to</code> for empty slices (<a href="https://redirect.github.com/tokio-rs/bytes/issues/740">#740</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
22c075a27c |
Bump regex from 1.11.0 to 1.11.1 (#1284)
Bumps [regex](https://github.com/rust-lang/regex) from 1.11.0 to 1.11.1. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/regex/blob/master/CHANGELOG.md">regex's changelog</a>.</em></p> <blockquote> <h1>1.11.1 (2024-10-24)</h1> <p>This is a new patch release of <code>regex</code> that fixes compilation on nightly Rust when the unstable <code>pattern</code> crate feature is enabled. Users on nightly Rust without this feature enabled are unaffected.</p> <p>Bug fixes:</p> <ul> <li>[BUG <a href="https://redirect.github.com/rust-lang/regex/issues/1231">#1231</a>](<a href="https://redirect.github.com/rust-lang/regex/issues/1231">rust-lang/regex#1231</a>): Fix the <code>Pattern</code> trait implementation as a result of nightly API breakage.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
e6a70b6edf |
Bump anyhow from 1.0.89 to 1.0.91 (#1283)
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.89 to 1.0.91. <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.91</h2> <ul> <li>Ensure OUT_DIR is left with deterministic contents after build script execution (<a href="https://redirect.github.com/dtolnay/anyhow/issues/388">#388</a>)</li> </ul> <h2>1.0.90</h2> <ul> <li>Documentation improvements</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
62673ef84a |
Bump proc-macro2 from 1.0.86 to 1.0.89 (#1282)
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.86 to 1.0.89. <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.89</h2> <ul> <li>Ensure OUT_DIR is left with deterministic contents after build script execution (<a href="https://redirect.github.com/dtolnay/proc-macro2/issues/474">#474</a>)</li> </ul> <h2>1.0.88</h2> <ul> <li>Return accurate line and column from <code>Span::start</code> and <code>Span::end</code> inside proc macros on nightly (<a href="https://redirect.github.com/dtolnay/proc-macro2/issues/472">#472</a>)</li> </ul> <h2>1.0.87</h2> <ul> <li>Check valid punctuation character in <code>Punct::new</code> (<a href="https://redirect.github.com/dtolnay/proc-macro2/issues/470">#470</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Vamshi Surabhi
|
5866fd176d |
sql: error detail for disallowed mutations (#1280)
<!-- The PR description should answer 2 important questions: --> ### What We want to change this error message ```json { "error": "error in data fusion: External error: Mutations are requested to be disallowed as part of the request" } ``` to this ```json { "error": "error in data fusion: External error: Mutations are requested to be disallowed as part of the request", "detail": { "subgraph": "default", "commandName": "uppercase_actor_name_by_id", "arguments": { "id": { "literal": 1 } } } } ``` <!-- 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 <!-- How is it trying to accomplish it (what are the implementation steps)? --> V3_GIT_ORIGIN_REV_ID: 5d1f712c039ac9a4685c480634f1e7e17ff94c4b |
||
Vamshi Surabhi
|
e5f1befba8 |
sql: allow inexact scalar conversion (#1279)
<!-- The PR description should answer 2 important questions: --> ### What Float literals in SQL are represented as `Float64` values. We were check for precision loss when converting these Float64 values into Float32 values. We now only check if there is an overflow. <!-- 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 <!-- How is it trying to accomplish it (what are the implementation steps)? --> V3_GIT_ORIGIN_REV_ID: 1630e6130591df19f16be7cc97bbc6515537d951 |
||
Daniel Harvey
|
9678718981 |
Release v2024.10.25 (#1277)
Update changelog. V3_GIT_ORIGIN_REV_ID: 9868f5be5147b5c54396e7891c998730517cf579 |
||
Daniel Harvey
|
ec4de00a8d |
Add introspection tests for order by with ModelV1 and ModelV21 (#1276)
<!-- The PR description should answer 2 important questions: --> ### What Before making the scalar order by expressions changes, adding a few more introspection tests to the current thing so we can check we don't break these. V3_GIT_ORIGIN_REV_ID: d15efd3b98e2c058d77e443e5cc218034f3b3e6d |
||
Daniel Harvey
|
8b34768c27 |
Revert "More general nix build" (#1273)
Reverts hasura/v3-engine#1265 Tried this for a bit and it seems to have made our cache usage worse, so let's not. V3_GIT_ORIGIN_REV_ID: cb1e33d568da49a9af80591ec1db111fb62bf6ca |
||
Daniel Harvey
|
35d606f276 |
Bump Rust to 1.82.0 (#1270)
<!-- The PR description should answer 2 important questions: --> ### What As a treat. V3_GIT_ORIGIN_REV_ID: 23369acdd1da6d5df828921818e4b9676e143b92 |
||
Daniel Harvey
|
c395c9add3 |
Return types in JSONAPI OpenAPI schema (#1250)
<!-- The PR description should answer 2 important questions: --> ### What Adds response types for JSONAPI endpoints. They look OK! <img width="733" alt="Screenshot 2024-10-23 at 17 48 05" src="https://github.com/user-attachments/assets/cbd52523-3511-404a-9716-eed142847158"> V3_GIT_ORIGIN_REV_ID: 72050f3d0accf57c3c77e83aed4bd684da46786b |
||
Daniel Chambers
|
ceb9de58a3 |
Fix nullable predicate arguments not being presettable in ModelPermissions and CommandPermissions (#1272)
### What If a connector defined a function/procedure/collection argument that took a predicate type, but made it a nullable predicate type, then metadata-resolve would fail to bind an argument preset for that argument in ModelPermissions and CommandPermissions. This has been fixed. ### How The code that bound a boolean expression to the argument wasn't stepping through nullable types properly. This has been fixed by reusing a nullable type unwrapping function from another module (and moving it into a shared location for reuse). New metadata resolve tests have been added to verify that this works, for both the nullable and non-nullable cases. --------- Co-authored-by: Brandon Martin <brandon@codedmart.com> V3_GIT_ORIGIN_REV_ID: 4d33d53522551a6217e618451041aa3b1cf89e52 |
||
Rob Dominguez
|
b0f940f66c |
Docs: improve query variable logging
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/11060 GitOrigin-RevId: 700fd87354854d854de81b6e77c1c4fffed8d01a |
||
Rakesh Emmadi
|
be748992f4 |
Reapply "Reapply "subscriptions: Unhide OpenDd Metadata and lift from unstability" " (#1256) (#1266)
<!-- The PR description should answer 2 important questions: --> ### What <!-- 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 <!-- How is it trying to accomplish it (what are the implementation steps)? --> V3_GIT_ORIGIN_REV_ID: 894ba81666bb441e71b8e204b89e5732ac4f1c83 |
||
Daniel Harvey
|
cff4920552 |
More general nix build (#1265)
<!-- The PR description should answer 2 important questions: --> ### What This was building more often than I'd expected - looking at the crane docs we'll get more cache sharing if we build all the deps. https://crane.dev/examples/quick-start.html?highlight=cargoArtifacts# V3_GIT_ORIGIN_REV_ID: b6e29d8daa8b77b76324819607f0c50c1a00df70 |
||
Daniel Harvey
|
f7acd0feed |
Update changelog for v2024.10.23 (#1263)
<!-- The PR description should answer 2 important questions: --> ### What Update changelog for release. V3_GIT_ORIGIN_REV_ID: 92a4d2dc725ae48000fbc461200e4dd469cffac5 |
||
Brandon Simmons
|
b6767e8399 |
mbs: improve performance of /validate and, to a lesser extent, /build (#1253)
<!-- The PR description should answer 2 important questions: --> ### What Some "medium-hanging" fruit optimizations of mbs validate and build code paths Latest timing relative to `main` as of 10/18: ``` validate example/chinook.json time: [6.3984 ms 6.4236 ms 6.4532 ms] change: [-46.276% -45.876% -45.440%] (p = 0.00 < 0.05) Performance has improved. validate example/multiple-subgraphs.json time: [1.6909 ms 1.7024 ms 1.7165 ms] change: [-44.488% -44.141% -43.771%] (p = 0.00 < 0.05) Performance has improved. validate example/chinook-invoices.json time: [3.8878 ms 3.9039 ms 3.9220 ms] change: [-45.544% -45.201% -44.863%] (p = 0.00 < 0.05) Performance has improved. validate example/big_pretty_DONT_COMMIT.json time: [3.6692 s 3.6789 s 3.6889 s] change: [-36.964% -36.755% -36.544%] (p = 0.00 < 0.05) Performance has improved. build example/chinook.json time: [18.274 ms 18.345 ms 18.414 ms] change: [-29.874% -29.359% -28.850%] (p = 0.00 < 0.05) Performance has improved. build example/multiple-subgraphs.json time: [3.4423 ms 3.4588 ms 3.4760 ms] change: [-33.073% -32.628% -32.199%] (p = 0.00 < 0.05) Performance has improved. build example/chinook-invoices.json time: [11.000 ms 11.027 ms 11.057 ms] change: [-26.051% -25.757% -25.449%] (p = 0.00 < 0.05) Performance has improved. Benchmarking build example/big_pretty_DONT_COMMIT.json: Collecting 100 samples in estimated 1359.8 s (100 iterations) build example/big_pretty_DONT_COMMIT.json time: [13.429 s 13.465 s 13.503 s] change: [-21.864% -21.634% -21.367%] (p = 0.00 < 0.05) Performance has improved. ``` ### How ✨ optimizing ✨ ### Internal details The absolute numbers for build in the PR are not accurate after rebasing on current `main`, but absolute improvement in secs/ms is about the same. (/private) V3_GIT_ORIGIN_REV_ID: a4fe628a08a35a88c2ca958a1d22f1fc6ddf2a5b |
||
Daniel Chambers
|
20b46151e1 |
Bump NDC Spec version in the json schema (#1261)
### What The supported NDC Spec was previously bumped to v0.1.6, but the reference in the JSON Schema was not updated at the same time. This has been corrected. V3_GIT_ORIGIN_REV_ID: edbe31eafcd9fb72bdc457f38575d9e42931ecd0 |
||
Daniel Chambers
|
3186e49826 |
Raise deprecation warning for use of AuthConfig v1 during build (#1260)
### What The warning about AuthConfig v1 being deprecated was only being displayed in the engine's stdout logs and not as a build warning. This has been corrected. ### How Because AuthConfig is not part of OpenDD metadata, it is not handled during metadata resolve. The existing warning printed from stdout is printed during engine startup when it reads the AuthConfig. This is not does not happen during the MBS build. So the warning logic is now called during the MBS build so that a warning is emitted there too. V3_GIT_ORIGIN_REV_ID: b4cf340597e3fad0603dd8c8d3e198f1867669eb |
||
Daniel Harvey
|
97f96bc62f |
Include TypeRepresentation in resolved scalar types (#1259)
<!-- The PR description should answer 2 important questions: --> ### What To generate JSONAPI OpenAPI spec we need to know the underlying type representation of custom types. This is (optionally) provided by a data connector in it's `scalar_types` section. It's really annoying to look up, so let's collect them all and store them on the `ScalarTypeRepresentation`, keyed by `Qualified<DataConnectorName>`. No functional change, this will be used in JSONAPI OpenAPI generation shortly. V3_GIT_ORIGIN_REV_ID: 084304a580aca977e1f8c39b16938205a49b1b0e |
||
Toan Nguyen
|
8b956bfafa |
server: add hasura_postgres_connection_error_total metric
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/11063 GitOrigin-RevId: 0e0f8b6e7759623f470893aaa6d6e68d205269b5 |
||
Daniel Chambers
|
f68438b78e |
Support receiving JSON values from Webhooks/JWT/NoAuth instead of just strings (#1257)
### What Previously, we only supported String as the type that contained your session variable value when they are provided from webhooks/JWT/NoAuth. We then coerced that value into whatever type was actually expected (eg a float) later. However, when we added support for array-typed session variables (#1221) we didn't actually allow you to provide a JSON array of values as a session variable value. You had to provide a string that contained a JSON-encoded array of values. This meant that webhooks/JWT/NoAuth had to double JSON-encode their session variables when returning them. This PR fixes this and makes it so that webhooks/JWT/NoAuth can return JSON values for session variables and that JSON is respected. So if a session variable needs to be an array of integers, they can simply return the JSON array of integers as the value for that session variable. ### How Instead of holding a `SessionVariableValue` as a `String`, we now turn that into an enum where we have an "unparsed" String (used for when we don't receive JSON, we just receive a string value (ie. http headers)), or a "parsed" JSON value. When we receive session variables from webhooks/JWT/NoAuth, we relax the restriction that they can only return us JSON strings, and instead allow them to return JSON Values, which we put in the new `SessionVariableValue::Parsed` enum variant. HTTP headers go into `SessionVariableValue::Unparsed`. Then, when we go to get the required value from the `SessionVariableValue` based on the desired type, we either parse it out of the "unparsed" String, or we expect that the value is already in the correct form in the "parsed" JSON value. This is the behaviour you will get if JSON session variables are turned on in the Flags. If JSON session variables are not turned on, then we expect that only String session variables (parsed or unparsed) are provided from headers/webhooks/JWT/NoAuth, and so we run the old logic of always expecting a String and parsing the correct value out of it. V3_GIT_ORIGIN_REV_ID: b6734ad5443b7d68065f91aea71386c893aa7eba |
||
paritosh-08
|
997d147c37 |
fix changelog for last release (#1258)
<!-- The PR description should answer 2 important questions: --> ### What This PR fixes the changelog for the last release. An entry was added accidently to the already-released version instead of the unreleased section. ### How By moving the changelog line. V3_GIT_ORIGIN_REV_ID: 0d2edeea1890da90eee5d4475c78a4541b6fc7b4 |
||
Daniel Harvey
|
fa82c310d6 |
Generate basic OpenAPI document for JSONAPI (#1238)
<!-- The PR description should answer 2 important questions: --> ### What <img width="731" alt="Screenshot 2024-10-17 at 16 39 07" src="https://github.com/user-attachments/assets/a9e504e8-68f1-4c89-930d-2a5b00549dfc"> <img width="723" alt="Screenshot 2024-10-17 at 16 39 14" src="https://github.com/user-attachments/assets/9bd76265-1726-4825-a25f-c4faac42990f"> This PR exposes a super basic OpenAPI 3.1 spec for the JSONAPI at `/v1/rest/__schema`. It includes: - `page[limit]` and `page[offset]` - `fields[ModelName]` It does not include: - `sorting` - return types - It also changes the JSONAPI to be served from `/v1/rest/` instead of `/v1/jsonapi`. The schema is generated depending on the user's role, so they'll only see fields they'll allowed to. ### How - Generate a `State` type for each `Role` - Use `oas3` crate for types, manually create `Spec` type. V3_GIT_ORIGIN_REV_ID: d15bb1dbc690795dcd3e2d8d245fd59e97653a56 |
||
Rakesh Emmadi
|
047f5b4938 |
graphql-ws: Improve tracing (#1252)
<!-- The PR description should answer 2 important questions: --> ### What <!-- 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? --> - Propagate baggage across span links and push websocket id into baggage. - Attach usage analytics attributes to execute span. ### How <!-- How is it trying to accomplish it (what are the implementation steps)? --> - First, move setting usage attributes into a separate function. Re-use it in websockets code. - Open a new `execute` span within the `websocket_execute_query` and attach usage attributes to it. - Add support to propagate trace baggage across span links. Push websocket id into trace baggage. - Remove setting `websocket.id` attribute in new linked traces as the tracer will set websocket.id in baggage as an attribute. V3_GIT_ORIGIN_REV_ID: 96338d8b9b3eb2f927e3ca57336e8372093ab585 |
||
Daniel Harvey
|
927268ae03 |
Revert "Reapply "subscriptions: Unhide OpenDd Metadata and lift from unstability" " (#1256)
I am sorry @rakeshkky , we will merge this again once we've done a release, I promise. Reverts hasura/v3-engine#1254 V3_GIT_ORIGIN_REV_ID: 74236d25d4e84658717531a55d87c8d3371b553c |