mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-16 01:44:03 +03:00
e151f2ab6e
258 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
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=" |
||
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=" |
||
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
|
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 |
||
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 |
||
dependabot[bot]
|
9e35246aca |
Bump futures from 0.3.30 to 0.3.31 (#1245)
Bumps [futures](https://github.com/rust-lang/futures-rs) from 0.3.30 to 0.3.31. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/futures-rs/releases">futures's releases</a>.</em></p> <blockquote> <h2>0.3.31</h2> <ul> <li>Fix use after free of task in <code>FuturesUnordered</code> when dropped future panics (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2886">#2886</a>)</li> <li>Fix soundness bug in <code>task::waker_ref</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2830">#2830</a>) This is a breaking change but allowed because it is soundness bug fix.</li> <li>Fix bugs in <code>AsyncBufRead::read_line</code> and <code>AsyncBufReadExt::lines</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2884">#2884</a>)</li> <li>Fix parsing issue in <code>select!</code>/<code>select_biased!</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2832">#2832</a>) This is technically a breaking change as it will now reject a very odd undocumented syntax that was previously accidentally accepted.</li> <li>Work around issue due to upstream <code>Waker::will_wake</code> change (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2865">#2865</a>)</li> <li>Add <code>stream::Iter::{get_ref,get_mut,into_inner}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2875">#2875</a>)</li> <li>Add <code>future::AlwaysReady</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2825">#2825</a>)</li> <li>Relax trait bound on non-constructor methods of <code>io::{BufReader,BufWriter}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2848">#2848</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md">futures's changelog</a>.</em></p> <blockquote> <h1>0.3.31 - 2024-10-05</h1> <ul> <li>Fix use after free of task in <code>FuturesUnordered</code> when dropped future panics (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2886">#2886</a>)</li> <li>Fix soundness bug in <code>task::waker_ref</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2830">#2830</a>) This is a breaking change but allowed because it is soundness bug fix.</li> <li>Fix bugs in <code>AsyncBufRead::read_line</code> and <code>AsyncBufReadExt::lines</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2884">#2884</a>)</li> <li>Fix parsing issue in <code>select!</code>/<code>select_biased!</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2832">#2832</a>) This is technically a breaking change as it will now reject a very odd undocumented syntax that was previously accidentally accepted.</li> <li>Work around issue due to upstream <code>Waker::will_wake</code> change (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2865">#2865</a>)</li> <li>Add <code>stream::Iter::{get_ref,get_mut,into_inner}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2875">#2875</a>)</li> <li>Add <code>future::AlwaysReady</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2825">#2825</a>)</li> <li>Relax trait bound on non-constructor methods of <code>io::{BufReader,BufWriter}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2848">#2848</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
816992f1e4 |
Bump openssl from 0.10.66 to 0.10.68 (#1244)
Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.66 to 0.10.68. <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.68</h2> <h2>What's Changed</h2> <ul> <li>fixes <a href="https://redirect.github.com/sfackler/rust-openssl/issues/2317">#2317</a> -- restore compatibility with our MSRV and release openssl 0.9.68 by <a href="https://github.com/alex"><code>@alex</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2318">sfackler/rust-openssl#2318</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.67...openssl-v0.10.68">https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.67...openssl-v0.10.68</a></p> <h2>openssl-v0.10.67</h2> <h2>What's Changed</h2> <ul> <li>Added a utility function to ensure we never have an issue with 0-length slices from pointers again by <a href="https://github.com/alex"><code>@alex</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2268">sfackler/rust-openssl#2268</a></li> <li>Fix CI for the latest rustc by <a href="https://github.com/alex"><code>@alex</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2271">sfackler/rust-openssl#2271</a></li> <li>Add binding for EVP_DigestSqueeze by <a href="https://github.com/initsecret"><code>@initsecret</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2270">sfackler/rust-openssl#2270</a></li> <li>libressl 4.0: const correctness for X509_LOOKUP_METHOD by <a href="https://github.com/botovq"><code>@botovq</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2276">sfackler/rust-openssl#2276</a></li> <li>Bump hex dev-dependency version by <a href="https://github.com/alex"><code>@alex</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2277">sfackler/rust-openssl#2277</a></li> <li>Raise bindgen version by <a href="https://github.com/alex"><code>@alex</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2278">sfackler/rust-openssl#2278</a></li> <li>Ensure Rsa::check_key doesn't leave errors on the stack by <a href="https://github.com/alex"><code>@alex</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2279">sfackler/rust-openssl#2279</a></li> <li>Update some docs to use the corresponds macro by <a href="https://github.com/rushilmehra"><code>@rushilmehra</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2282">sfackler/rust-openssl#2282</a></li> <li>Don't leave errors on the stack in <code>MdCtxRef::digest_verify_final</code> by <a href="https://github.com/alex"><code>@alex</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2283">sfackler/rust-openssl#2283</a></li> <li>Adjustments for LibreSSL 4 by <a href="https://github.com/botovq"><code>@botovq</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2287">sfackler/rust-openssl#2287</a></li> <li>Explicit rustfmt config by <a href="https://github.com/kornelski"><code>@kornelski</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2285">sfackler/rust-openssl#2285</a></li> <li>add basic EVP_KDF bindings by <a href="https://github.com/reaperhulk"><code>@reaperhulk</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2289">sfackler/rust-openssl#2289</a></li> <li>add ossl3 thread pool bindings by <a href="https://github.com/reaperhulk"><code>@reaperhulk</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2293">sfackler/rust-openssl#2293</a></li> <li>add argon2id support for ossl 3.2+ by <a href="https://github.com/reaperhulk"><code>@reaperhulk</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2290">sfackler/rust-openssl#2290</a></li> <li>fix 3.2.0 thread support and simplify by <a href="https://github.com/reaperhulk"><code>@reaperhulk</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2294">sfackler/rust-openssl#2294</a></li> <li>add libctx arg to argon2id by <a href="https://github.com/reaperhulk"><code>@reaperhulk</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2295">sfackler/rust-openssl#2295</a></li> <li>support using threads in argon2id by <a href="https://github.com/reaperhulk"><code>@reaperhulk</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2296">sfackler/rust-openssl#2296</a></li> <li>Ensure beginning and end of the error output is readable by <a href="https://github.com/kornelski"><code>@kornelski</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2284">sfackler/rust-openssl#2284</a></li> <li>Test against 3.4.0-alpha1 by <a href="https://github.com/sfackler"><code>@sfackler</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2302">sfackler/rust-openssl#2302</a></li> <li>Resolve clippy warnings from nightly by <a href="https://github.com/alex"><code>@alex</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2310">sfackler/rust-openssl#2310</a></li> <li>fixes <a href="https://redirect.github.com/sfackler/rust-openssl/issues/2311">#2311</a> -- silencer resolver warnings by <a href="https://github.com/alex"><code>@alex</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2312">sfackler/rust-openssl#2312</a></li> <li>Bump to 3.4.0-beta1 by <a href="https://github.com/sfackler"><code>@sfackler</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2313">sfackler/rust-openssl#2313</a></li> <li>LibreSSL 4.0.0 by <a href="https://github.com/botovq"><code>@botovq</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2315">sfackler/rust-openssl#2315</a></li> <li>Release openssl v0.10.67 and openssl-sys v0.9.104 by <a href="https://github.com/alex"><code>@alex</code></a> in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2316">sfackler/rust-openssl#2316</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/initsecret"><code>@initsecret</code></a> made their first contribution in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2270">sfackler/rust-openssl#2270</a></li> <li><a href="https://github.com/rushilmehra"><code>@rushilmehra</code></a> made their first contribution in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2282">sfackler/rust-openssl#2282</a></li> <li><a href="https://github.com/kornelski"><code>@kornelski</code></a> made their first contribution in <a href="https://redirect.github.com/sfackler/rust-openssl/pull/2285">sfackler/rust-openssl#2285</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.66...openssl-v0.10.67">https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.66...openssl-v0.10.67</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
d157aa9382 |
Bump clap from 4.5.19 to 4.5.20 (#1243)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.19 to 4.5.20. <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.20] - 2024-10-08</h2> <h3>Features</h3> <ul> <li><em>(unstable)</em> Add <code>CommandExt</code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
6ee7a183d4 |
Bump syn from 2.0.79 to 2.0.82 (#1242)
Bumps [syn](https://github.com/dtolnay/syn) from 2.0.79 to 2.0.82. <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.82</h2> <ul> <li>Provide <code>Parse</code> impls for PreciseCapture and CapturedParam (<a href="https://redirect.github.com/dtolnay/syn/issues/1757">#1757</a>, <a href="https://redirect.github.com/dtolnay/syn/issues/1758">#1758</a>)</li> <li>Support parsing <code>unsafe</code> attributes (<a href="https://redirect.github.com/dtolnay/syn/issues/1759">#1759</a>)</li> <li>Add Fold and VisitMut methods for Vec<Attribute> (<a href="https://redirect.github.com/dtolnay/syn/issues/1762">#1762</a>)</li> </ul> <h2>2.0.81</h2> <ul> <li>Add TypeParamBound::PreciseCapture to represent precise capture syntax <code>impl Trait + use<'a, T></code> (<a href="https://redirect.github.com/dtolnay/syn/issues/1752">#1752</a>, <a href="https://redirect.github.com/dtolnay/syn/issues/1753">#1753</a>, <a href="https://redirect.github.com/dtolnay/syn/issues/1754">#1754</a>)</li> </ul> <h2>2.0.80</h2> <ul> <li>Add <code>Expr::RawAddr</code> (<a href="https://redirect.github.com/dtolnay/syn/issues/1743">#1743</a>)</li> <li>Reject precise captures and ~const in inappropriate syntax positions (<a href="https://redirect.github.com/dtolnay/syn/issues/1747">#1747</a>)</li> <li>Reject trait bound containing only precise capture (<a href="https://redirect.github.com/dtolnay/syn/issues/1748">#1748</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
2922ef2ef3 |
Bump uuid from 1.10.0 to 1.11.0 (#1241)
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.10.0 to 1.11.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/uuid-rs/uuid/releases">uuid's releases</a>.</em></p> <blockquote> <h2>1.11.0</h2> <h2>What's Changed</h2> <ul> <li>Upgrade zerocopy to 0.8 by <a href="https://github.com/yotamofek"><code>@yotamofek</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/771">uuid-rs/uuid#771</a></li> <li>Prepare for 1.11.0 release by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/772">uuid-rs/uuid#772</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/yotamofek"><code>@yotamofek</code></a> made their first contribution in <a href="https://redirect.github.com/uuid-rs/uuid/pull/771">uuid-rs/uuid#771</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/uuid-rs/uuid/compare/1.10.0...1.11.0">https://github.com/uuid-rs/uuid/compare/1.10.0...1.11.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Daniel Harvey
|
79decc86e2 |
Fix a few small JSONAPI bugs (#1230)
<!-- The PR description should answer 2 important questions: --> Fixes - offset / limit didn't work - fixed by updating the `hasura/jsonapi` library to use `offset` / `limit` instead of `number` / `page` - this was a change in JSONAPI 1.1 - Render type names as `subgraph_typename` - Send `OrderBy` as `None` when it contains no columns - `Some(vec![])` was upsetting Mongo, so let's be more stringent. No functional changes as feature is behind flag. V3_GIT_ORIGIN_REV_ID: 419993a3acd955ef74872078d11769f564c7fc36 |
||
Vamshi Surabhi
|
77c6f9b7ca |
/sql endpoint on multi-tenant (#1219)
<!-- 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)? --> --------- Co-authored-by: Abhinav Gupta <127770473+abhinav-hasura@users.noreply.github.com> V3_GIT_ORIGIN_REV_ID: 05adb2015efda4d5244b93cfe337991370f0b27e |
||
dependabot[bot]
|
6d2376648c |
Bump indexmap from 2.5.0 to 2.6.0 (#1214)
Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.5.0 to 2.6.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/indexmap-rs/indexmap/blob/master/RELEASES.md">indexmap's changelog</a>.</em></p> <blockquote> <h2>2.6.0 (2024-10-01)</h2> <ul> <li>Implemented <code>Clone</code> for <code>map::IntoIter</code> and <code>set::IntoIter</code>.</li> <li>Updated the <code>hashbrown</code> dependency to version 0.15.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
35c29fff5a |
Bump serde_with from 3.9.0 to 3.11.0 (#1213)
Bumps [serde_with](https://github.com/jonasbb/serde_with) from 3.9.0 to 3.11.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/jonasbb/serde_with/releases">serde_with's releases</a>.</em></p> <blockquote> <h2>serde_with v3.11.0</h2> <h3>Added</h3> <ul> <li> <p>Add support for <code>hashbrown</code> v0.15 (<a href="https://redirect.github.com/jonasbb/serde_with/issues/787">#787</a>/<a href="https://redirect.github.com/jonasbb/serde_with/issues/790">#790</a>)</p> <p>This extends the existing support for <code>hashbrown</code> v0.14 to the newly released version.</p> </li> </ul> <h2>serde_with v3.10.0</h2> <h3>Added</h3> <ul> <li> <p>Add newline separator by <a href="https://github.com/jayvdb"><code>@jayvdb</code></a> (<a href="https://redirect.github.com/jonasbb/serde_with/issues/777">#777</a>)</p> <p>The <code>UnixLineSeparator</code> and <code>DosLineSeparator</code> can be used together with <code>StringWithSeparator</code>.</p> </li> </ul> <h3>Fixed</h3> <ul> <li> <p>Proper handling of <code>cfg_attr</code> in the <code>serde_as</code> macro by <a href="https://github.com/sivizius"><code>@sivizius</code></a> (<a href="https://redirect.github.com/jonasbb/serde_with/issues/782">#782</a>)</p> <p>This allows to parse more valid forms of the <code>cfg_attr</code> macro, including multiple values and attribute that do not follow the <code>key = value</code> schema.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
025ceac68e |
Bump clap from 4.5.18 to 4.5.19 (#1212)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.18 to 4.5.19. <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.19</h2> <h2>[4.5.19] - 2024-10-01</h2> <h3>Internal</h3> <ul> <li>Update dependencies</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.19] - 2024-10-01</h2> <h3>Internal</h3> <ul> <li>Update dependencies</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
9314e3b7dc |
Bump tokio-tungstenite from 0.20.1 to 0.24.0 (#1211)
Bumps [tokio-tungstenite](https://github.com/snapview/tokio-tungstenite) from 0.20.1 to 0.24.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/snapview/tokio-tungstenite/blob/master/CHANGELOG.md">tokio-tungstenite's changelog</a>.</em></p> <blockquote> <h1>0.24.0</h1> <ul> <li>Update dependencies (TLS, tungstenite).</li> <li>Return a runtime error when WSS URLs are used without a proper TLS feature enabled.</li> </ul> <h1>0.23.1</h1> <ul> <li>Introduce a <code>url</code> feature (proxies to <code>tungstenite/url</code>).</li> </ul> <h1>0.23.0</h1> <ul> <li>Update <code>tungstenite</code> to <code>0.23.0</code>.</li> <li>Disable default features on TLS crates.</li> </ul> <h1>0.22.0</h1> <ul> <li>Update TLS dependencies.</li> <li><del>Update <code>tungstenite</code> to match <code>0.22.0</code>.</del></li> </ul> <h1>0.21.0</h1> <ul> <li>Update TLS dependencies.</li> <li>Update <code>tungstenite</code> to <code>0.21.0</code>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
5a7906a788 |
Bump futures-util from 0.3.30 to 0.3.31 (#1210)
Bumps [futures-util](https://github.com/rust-lang/futures-rs) from 0.3.30 to 0.3.31. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/futures-rs/releases">futures-util's releases</a>.</em></p> <blockquote> <h2>0.3.31</h2> <ul> <li>Fix use after free of task in <code>FuturesUnordered</code> when dropped future panics (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2886">#2886</a>)</li> <li>Fix soundness bug in <code>task::waker_ref</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2830">#2830</a>) This is a breaking change but allowed because it is soundness bug fix.</li> <li>Fix bugs in <code>AsyncBufRead::read_line</code> and <code>AsyncBufReadExt::lines</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2884">#2884</a>)</li> <li>Fix parsing issue in <code>select!</code>/<code>select_biased!</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2832">#2832</a>) This is technically a breaking change as it will now reject a very odd undocumented syntax that was previously accidentally accepted.</li> <li>Work around issue due to upstream <code>Waker::will_wake</code> change (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2865">#2865</a>)</li> <li>Add <code>stream::Iter::{get_ref,get_mut,into_inner}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2875">#2875</a>)</li> <li>Add <code>future::AlwaysReady</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2825">#2825</a>)</li> <li>Relax trait bound on non-constructor methods of <code>io::{BufReader,BufWriter}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2848">#2848</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md">futures-util's changelog</a>.</em></p> <blockquote> <h1>0.3.31 - 2024-10-05</h1> <ul> <li>Fix use after free of task in <code>FuturesUnordered</code> when dropped future panics (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2886">#2886</a>)</li> <li>Fix soundness bug in <code>task::waker_ref</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2830">#2830</a>) This is a breaking change but allowed because it is soundness bug fix.</li> <li>Fix bugs in <code>AsyncBufRead::read_line</code> and <code>AsyncBufReadExt::lines</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2884">#2884</a>)</li> <li>Fix parsing issue in <code>select!</code>/<code>select_biased!</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2832">#2832</a>) This is technically a breaking change as it will now reject a very odd undocumented syntax that was previously accidentally accepted.</li> <li>Work around issue due to upstream <code>Waker::will_wake</code> change (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2865">#2865</a>)</li> <li>Add <code>stream::Iter::{get_ref,get_mut,into_inner}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2875">#2875</a>)</li> <li>Add <code>future::AlwaysReady</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2825">#2825</a>)</li> <li>Relax trait bound on non-constructor methods of <code>io::{BufReader,BufWriter}</code> (<a href="https://redirect.github.com/rust-lang/futures-rs/issues/2848">#2848</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Brandon Simmons
|
62d9cbacdb |
ENG-1071: add detailed traces for MBS validate/ and some benchmarks (#1209)
<!-- The PR description should answer 2 important questions: --> ### What Set us up for more visibility into performance on prod. ### How Add traces V3_GIT_ORIGIN_REV_ID: 0ea011c1233a08bf4f9d55a9084809a6ffcd934d |
||
Rakesh Emmadi
|
66ab5b201d |
graphql-ws: Implement Plugins (#1195)
<!-- 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? --> Execute configured pre-parse and pre-response plugins for GraphQL operations over websockets. ### How <!-- How is it trying to accomplish it (what are the implementation steps)? --> When a `type: subscribe` message is received, similar to HTTP requests, run pre-parse plugins. If the plugins' response results in "continue", then proceed with handling the GraphQL query. Otherwise, return the plugin response or error. For pre-response plugins, a task is spawned for handling plugins before sending the response to the client. The task is run in a new trace, linked to the poll trace. V3_GIT_ORIGIN_REV_ID: ceb7ffd6da9235b3897ef4198729c07492c13d5e |
||
Daniel Harvey
|
ad6c47a070 |
Move plan types out of GraphQL IR (#1203)
<!-- The PR description should answer 2 important questions: --> ### What A lot of the `graphql_ir` is generally useful and not GraphQL specific. Before we can move it into `plan` and share it we need to pull a few shared types out of the package and somewhere more general too. ### How Functional no-op. V3_GIT_ORIGIN_REV_ID: 3fe8ca737ef3d8c7ce09ea695453645e303d7030 |
||
Daniel Harvey
|
e313123ed7 |
Move commands from sql to plan (#1188)
<!-- The PR description should answer 2 important questions: --> ### What Move the function/procedure planning from `sql` to the shared OpenDD IR pipeline in `plan`. This should be a no-op for `sql` ### How Move code, fix type errors. V3_GIT_ORIGIN_REV_ID: 7da797ffedbc40a44692670679aa176817f2c65e |
||
Daniel Harvey
|
629d48a086 |
Bump all the packages (#1199)
<!-- The PR description should answer 2 important questions: --> ### What We need to bump `tonic` because of `cargo audit`, and to do so we need to bump OpenTelemetry, and to do that we need to finally bump `http`, and to do that... ### How Follow the breadcrumb trail, fix the errors. Checked, trace propagation still works: <img width="1781" alt="Screenshot 2024-10-02 at 15 56 28" src="https://github.com/user-attachments/assets/4c3f8763-e646-445d-84de-f507da15ad2e"> V3_GIT_ORIGIN_REV_ID: aa219e91375aa310dc656183948edc33f77cdfdc |
||
Rakesh Emmadi
|
454ca0575f |
graphql-ws: Tests for WebSocket server (#1191)
<!-- 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? --> Write tests to confirm websocket connection behavior in conjunction with [graphl-ws](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md) subprotocol. ### How <!-- How is it trying to accomplish it (what are the implementation steps)? --> Test the websocket by spinning up a server in an async tokio task. Use tokio-tungstenite for websocket client. V3_GIT_ORIGIN_REV_ID: 32c19298b6a5b23649b22d8d820ef8d47ef1d293 |
||
Tom Harding
|
188cd437a4 |
Implement error contexts for MBS (#1192)
### What This PR allows MBS errors to provide a larger "context". Our notion of context is an ordered list of annotated paths. An example would be for a name conflict, where we want to say `["this name was used here", "... and also here"]`, so reporting two paths would be helpful. Note that the actual format of `path` is a structured data type, not a string. An example of the first instance introduced by this PR can be seen here: ```json { "errors": [ { "context": [ { "message": "Data connector name given here", "path": [ { "Index": 11 }, { "Key": "definition" }, { "Key": "source" }, { "Key": "dataConnectorName" } ] } ], "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", "path": null } ] } ``` The `path` key is already generated by other parts of the MBS process, so we preserve it for now to avoid breaking changes. ### How * A new crate, `error-context`, to hold the type of the context structure. * Otherwise essentially the same as the path mechanism. V3_GIT_ORIGIN_REV_ID: 0bb529542ba0a7f6774c08fa6adb7d7c608d6c5b |
||
Rakesh Emmadi
|
c7e3e8b0d3 |
enable tracing on graphql-ws (#1165)
<!-- 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? --> Add traces to `graphql-ws` crate. Since websockets are implemented by running multiple parallel tasks, we are using span links to establish relation between traces emitted by those tasks. Refactor by moving code into new modules and updating function names and types. ### How - Define a new `in_span_async_with_link()` in tracing-util to enable creating a span with a link. - Wrap spans around necessary code sections with attaching required attributes. - Small no-op refactor in `common.rs` test file. <!-- How is it trying to accomplish it (what are the implementation steps)? --> V3_GIT_ORIGIN_REV_ID: 33cd313b94421097f3c1bb1bcf165f04c1a9cd65 |
||
Daniel Harvey
|
f3f0e113ba |
Basic OpenDD pipeline execution testing for GraphQL (#1178)
<!-- The PR description should answer 2 important questions: --> ### What Add basic NDC execution testing for the new pipeline to the existing `engine/tests/execution.rs` tests. Grabs rows from NDC and snapshots the results, but good enough to eyeball and see things are somewhat working. Somewhat interesting: we can't test `selectUnique` queries using the new pipeline, because the primary key argument isn't an actual model argument (and thus fails in the `argument_mappings` lookup). It's actually taken as an argument in GraphQL, but turned into an additional filter expression and `AND`ed onto whatever filters are there. Will need to have a think about this, but not now. Functional no-op. ### How Copy the execution step from JSONAPI and use it in engine tests. V3_GIT_ORIGIN_REV_ID: 5b1ea8c1f08048b563db694b618c8823e4139383 |
||
paritosh-08
|
18697ae98d |
pre-response engine plugin (#1033)
<!-- The PR description should answer 2 important questions: --> ### What This PR adds the pre-response plugins to the engine and engine multitenant. We have also added a new flag/env var to get the pre-response plugin artifacts: - `PRE_RESPONSE_PLUGIN_CONFIG_ARTIFACT_URL_TEMPLATE` A sample metadata for pre-response plugin is: ```json { "kind": "LifecyclePluginHook", "version": "v1", "definition": { "name": "logging", "url": { "value": "http://localhost:5001/log" }, "pre": "response", "config": { "request": { "headers": { "additional": { "hasura-m-auth": { "value": "your-strong-m-auth-key" } } }, "session": {}, "rawRequest": { "query": {}, "variables": {} }, "rawResponse": {} } } } } ``` Please note that the execution of pre-response plugins happens on a new tokio thread ([tokio::spawn](https://docs.rs/tokio/latest/tokio/task/fn.spawn.html)) which will run in the background. We will NOT wait for any of the task to complete before sending the response to the user. An example of the trace with 5 pre-response plugin calls: ![image](https://github.com/user-attachments/assets/380a262a-2b83-4d82-9bc4-85362c8aa5f4) ### How <!-- How is it trying to accomplish it (what are the implementation steps)? --> We have added this in the plugin middleware. V3_GIT_ORIGIN_REV_ID: 270d77c45d5e8cc85a5f281f59f981f210eb4547 |
||
dependabot[bot]
|
d6c8f5906b |
Bump syn from 2.0.77 to 2.0.79 (#1174)
Bumps [syn](https://github.com/dtolnay/syn) from 2.0.77 to 2.0.79. <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.79</h2> <ul> <li>Fix infinite loop on parsing chained ranges (<a href="https://redirect.github.com/dtolnay/syn/issues/1741">#1741</a>)</li> <li>Fix panic in parsing <code>use</code> items containing absolute paths (<a href="https://redirect.github.com/dtolnay/syn/issues/1742">#1742</a>)</li> </ul> <h2>2.0.78</h2> <ul> <li>Fix infinite loop on chained comparison (<a href="https://redirect.github.com/dtolnay/syn/issues/1739">#1739</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
34ce39fa94 |
Bump async-trait from 0.1.82 to 0.1.83 (#1175)
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.82 to 0.1.83. <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.83</h2> <ul> <li>Prevent needless_arbitrary_self_type lint being produced in generated code (<a href="https://redirect.github.com/dtolnay/async-trait/issues/278">#278</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
3473fc5663 |
Bump async-graphql-parser from 7.0.9 to 7.0.11 (#1176)
Bumps [async-graphql-parser](https://github.com/async-graphql/async-graphql) from 7.0.9 to 7.0.11. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/async-graphql/async-graphql/blob/master/CHANGELOG.md">async-graphql-parser's changelog</a>.</em></p> <blockquote> <h1>[7.0.11] 2024-09-26</h1> <ul> <li>fix <a href="https://redirect.github.com/async-graphql/async-graphql/issues/1598">#1598</a></li> </ul> <h1>[7.0.10] 2024-09-24</h1> <ul> <li>add <code>SchemeBuilder.limit_directives</code> method to set the maximum number of directives on a single field.</li> <li>remove needless ?Sized <a href="https://redirect.github.com/async-graphql/async-graphql/pull/1593">#1593</a></li> <li>fix: generate each variant description correctly. <a href="https://redirect.github.com/async-graphql/async-graphql/pull/1589">#1589</a></li> <li>Make <code>From<T></code> for [Error] set source <a href="https://redirect.github.com/async-graphql/async-graphql/pull/1561">#1561</a></li> <li>feat(graphiql): add support for WS connection params <a href="https://redirect.github.com/async-graphql/async-graphql/pull/1597">#1597</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/async-graphql/async-graphql/commits">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=async-graphql-parser&package-manager=cargo&previous-version=7.0.9&new-version=7.0.11)](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: 49257197190f6dd1a1a207d058245a582592a4d4 |
||
Daniel Harvey
|
649b3c29b0 |
Move model planning from sql to plan (#1166)
<!-- The PR description should answer 2 important questions: --> ### What We're building a new OpenDD IR pipeline. The `sql` crate already has a lot of what we need, so let's take the model selection parts (ie, not aggregates yet), pull them into the `plan` crate, and re-use them for both `sql` and the `jsonapi` pipelines. The broad idea here is that the shared `plan` will get incrementally bigger, and `sql` will get smaller. This is a functional no-op for `sql`, and slightly improves the WIP JSONAPI pipeline as we enjoy better permission checks. ### How - Copy model planning and helper functions from `sql` into `plan` - Replace instances `DataFusionError` with a smaller local `PlanError` - Fix JSONAPI to use these new `plan` functions - Remove the code in `sql`, instead using the shared `plan` functions in planning, mapping back into `DataFusionError` as appropriate. V3_GIT_ORIGIN_REV_ID: 50314442b9b56f31d2b38a0cf6f104e265bc3886 |
||
Daniel Harvey
|
b13cd460ae |
Move NdcFieldAlias to new plan-types crate (#1161)
### What We'd like to use `NdcFieldAlias` in the `plan` crate, however because of the ways deps between `graphql_ir` and `execute` work we cannot without a cycle. Functional no-op. ### How Create a new crate that depends on nothing for planning-related domain types. V3_GIT_ORIGIN_REV_ID: c441f2de2eba01bda59ce16e1e4b0e4d9f765d78 |
||
Rakesh Emmadi
|
d58ce08c19 |
Bump opentelemetry to 0.23 (#1160)
And bump other opentelemetry-* deps to compatible with 0.23 <!-- 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? --> Need [add_link](https://docs.rs/opentelemetry/0.23.0/opentelemetry/trace/trait.Span.html#tymethod.add_link) API on Spans for tracing `graphql-ws` websockets code. It is available opentelementry version `0.23` and above. This also bumps all the dependents of the opentelemetry crate (`opentelemetry-*`) ### How <!-- How is it trying to accomplish it (what are the implementation steps)? --> By updating root `Cargo.toml`. V3_GIT_ORIGIN_REV_ID: 87c1bedde35f5e8e91366aceb1379ab5d43b5b99 |
||
Daniel Harvey
|
a3efbc98d7 |
Start of GraphQL -> OpenDD IR pipeline (#1156)
<!-- The PR description should answer 2 important questions: --> ### What We are going to need tests for our OpenDD IR pipeline, and we are going to need to convert GraphQL requests into OpenDD IR at some point, so this makes the most basic `normalized_ast -> OpenDD IR QueryRequest` pipeline and implements / tests it for the simplest possible query. This only affects tests at this point, so is a functional no-op. ### How This PR adds the most basic `normalized_ast -> OpenDD IR QueryRequest` pipeline and implements / tests it for the simplest possible query. ```rust enum TestOpenDDPipeline { Skip, GenerateOpenDDQuery, GenerateExecutionPlan, } ``` It adds a flag for each engine test to opt-in for testing with the new pipeline. Currently one passes `GenerateOpenDDQuery`, and tests the result against a snapshot, and the rest pass `Skip`. The unblocks two following steps: - we can improve the GraphQL -> OpenDD IR generation, enabling more tests by passing `GenerateOpenDDQuery` - once the main new `plan` pipeline generates the same types as the existing `execute` crate, we can compare the old `execute::plan` with the new one, and enable that per test by passing `GenerateExecutionPlan`. Once all the tests are passing `GenerateExecutionPlan` we can remove the flag and we know we'll have parity in plan creation. V3_GIT_ORIGIN_REV_ID: 607dfce77b68849c7fc66fc652e38182fa0c83ea |
||
Rakesh Emmadi
|
601771c4fc |
Test execute_request from graphql_ws crate (#1155)
<!-- 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? --> This PR enables "unit" testing for `execute_request` function from `graphql-ws` crate which is responsible for executing graphql operations. It is tested in conjunction with the `graphql_frontend`'s `execute_query` by comparing responses from the both. ### How <!-- How is it trying to accomplish it (what are the implementation steps)? --> Briefly ``` http_response = graphql_frontend::execute_query ws_response = graphql_ws::execute_request compare(http_response, ws_response) ``` V3_GIT_ORIGIN_REV_ID: 371ac3de1136732d7dc2e88dbd093264a96a7d2e |
||
Rakesh Emmadi
|
29eacdf3c3 |
Introduce graphql-ws crate that implements GraphQL over websockets (#1134)
<!-- 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? --> - Introduce a brand new `graphql-ws` crate that implements - WebSocket request handling by `WebSocketServer` struct - [graphql-ws](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md) protocol and handles subscriptions in async tokio tasks. - OSS engine now handles GraphQL websockets through `GET /graphql` handshakes. ### How Refer to added [architecture.md](https://github.com/hasura/v3-engine/blob/rakeshkky/graphql-ws-crate/crates/graphql-ws/architecture.md) file. <!-- How is it trying to accomplish it (what are the implementation steps)? --> V3_GIT_ORIGIN_REV_ID: 3032cbe50267d3f0102c450be2749c09fb3992bf |
||
Daniel Harvey
|
2839170ddf |
Create plan crate (#1149)
<!-- The PR description should answer 2 important questions: --> ### What We are creating a new build pipeline. This makes a new crate for it called `plan` and puts the existing work from JSONAPI into it. JSONAPI uses the new plan so we have a quick way of testing it works. ### How Mostly moving code around. All behind feature flags, so functional no-op. V3_GIT_ORIGIN_REV_ID: af4901c93415c7ced2b0f537e600512d28fc5766 |
||
Tom Harding
|
c3be5cbc8e |
Carry the parsing path through the OpenDD parsers (#1146)
### What We want to be able to reference the path within parsers even if the parser succeeds. This allows us to do things like generate source spans to help users make updates. ### How We add `path` as a currently ignored argument to `deserialize`, and then every time we want to decorate the error path, we replace that call with a bidirectional decorator. V3_GIT_ORIGIN_REV_ID: 18ddede2db84801f995b64f17bfb29893acb4657 |
||
dependabot[bot]
|
59c5b39447 |
Bump bson from 2.12.0 to 2.13.0 (#1139)
Bumps [bson](https://github.com/mongodb/bson-rust) from 2.12.0 to 2.13.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/mongodb/bson-rust/releases">bson's releases</a>.</em></p> <blockquote> <h2>v2.13.0</h2> <p>The MongoDB Rust driver team is pleased to announce the v2.13.0 release of the <code>bson</code> crate.</p> <h2>Highlighted Changes</h2> <p>This release introduces a utility type for deserializing from UTF-8 lossy BSON bytes.</p> <h2>Full Release Notes</h2> <h3>New Features</h3> <ul> <li>RUST-2023 Add wrapper type for utf-8 lossy deserialization (<a href="https://redirect.github.com/mongodb/bson-rust/issues/497">#497</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
dc18ff6202 |
Bump bytes from 1.7.1 to 1.7.2 (#1138)
Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.7.1 to 1.7.2. <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.7.2</h2> <h1>1.7.2 (September 17, 2024)</h1> <h3>Fixed</h3> <ul> <li>Fix default impl of <code>Buf::{get_int, get_int_le}</code> (<a href="https://redirect.github.com/tokio-rs/bytes/issues/732">#732</a>)</li> </ul> <h3>Documented</h3> <ul> <li>Fix double spaces in comments and doc comments (<a href="https://redirect.github.com/tokio-rs/bytes/issues/731">#731</a>)</li> </ul> <h3>Internal changes</h3> <ul> <li>Ensure BytesMut::advance reduces capacity (<a href="https://redirect.github.com/tokio-rs/bytes/issues/728">#728</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.7.2 (September 17, 2024)</h1> <h3>Fixed</h3> <ul> <li>Fix default impl of <code>Buf::{get_int, get_int_le}</code> (<a href="https://redirect.github.com/tokio-rs/bytes/issues/732">#732</a>)</li> </ul> <h3>Documented</h3> <ul> <li>Fix double spaces in comments and doc comments (<a href="https://redirect.github.com/tokio-rs/bytes/issues/731">#731</a>)</li> </ul> <h3>Internal changes</h3> <ul> <li>Ensure BytesMut::advance reduces capacity (<a href="https://redirect.github.com/tokio-rs/bytes/issues/728">#728</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
fc786a264c |
Bump thiserror from 1.0.63 to 1.0.64 (#1137)
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.63 to 1.0.64. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/dtolnay/thiserror/releases">thiserror's releases</a>.</em></p> <blockquote> <h2>1.0.64</h2> <ul> <li>Exclude derived impls from coverage instrumentation (<a href="https://redirect.github.com/dtolnay/thiserror/issues/322">#322</a>, thanks <a href="https://github.com/oxalica"><code>@oxalica</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
dependabot[bot]
|
4ed35177f9 |
Bump clap from 4.5.17 to 4.5.18 (#1136)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.17 to 4.5.18. <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.18</h2> <h2>[4.5.18] - 2024-09-20</h2> <h3>Features</h3> <ul> <li><em>(builder)</em> Expose <code>Arg::get_display_order</code> and <code>Command::get_display_order</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.18] - 2024-09-20</h2> <h3>Features</h3> <ul> <li><em>(builder)</em> Expose <code>Arg::get_display_order</code> and <code>Command::get_display_order</code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
Rakesh Emmadi
|
10b6aecb95 |
no-op: Pull out auth related code from engine crate (#1133)
<!-- 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? --> Authentication related code lies in `engine` crate. It is needed by upcoming graphql websockets crate, which will be dep for `engine` crate (for oss engine bin). To avoid cyclic dependency, moving out the authentication code from `engine` crate now. ### How <!-- How is it trying to accomplish it (what are the implementation steps)? --> Move `crates/engine/src/authentication.rs` to new `crates/auth/hasura-authn` crate. This also needs to move the `auth_config.jsonschema` file from `engine` crate. V3_GIT_ORIGIN_REV_ID: d2c320c3a26512ad8ab8e5c3312a64bc69d8a200 |
||
Daniel Harvey
|
ccd6cf793b |
Rename schema crate to graphql-schema (#1117)
<!-- The PR description should answer 2 important questions: --> ### What Much like https://github.com/hasura/v3-engine/pull/1116, make clearer what is and is not graphql-centric in engine by renaming `schema` to `graphql-schema`. ### How Moving file around, no functional changes. V3_GIT_ORIGIN_REV_ID: ec06c33a964c16a53c1a4ed306de3fdccd2e8efc |
||
Daniel Harvey
|
434d56ca20 |
JSONAPI build plan (#1114)
<!-- The PR description should answer 2 important questions: --> ### What Let's get to a very basic end-to-end pipeline. This introduces (extremely-happy-path) planning, execution and response processing so that we have a rough end to end API. V3_GIT_ORIGIN_REV_ID: 57ce28eb5ad20f061e0ede37b0bf43fbaddaaf2a |
||
Daniel Harvey
|
6574ed7da0 |
Rename ir crate to graphql-ir crate (#1116)
<!-- The PR description should answer 2 important questions: --> ### What Make what is and is not graphql-centric a little clearer by renaming this crate and moving it into a `crates/graphql` folder. ### How No functional changes V3_GIT_ORIGIN_REV_ID: 3644ce32059e16db9b467b010430ba23fc436ed9 |