Releases: get-convex/convex-backend
Releases · get-convex/convex-backend
Precompiled 2024-10-21-a0e777c
precompiled-2024-10-21-a0e777c Add knob for configuring analyze timeout and up the default to 2s (#3…
Precompiled 2024-10-18-1dbda04
make export worker use independent storage tracking (#30797) GitOrigin-RevId: 52a773a5a2c971f91c7cb718ab3c5fdd91ba7f00
Precompiled 2024-10-17-083e3fa
CLI key=value parser side quest (#30799) There are a bunch of places where we needed to parse arguments of the type `key=value` into various different types. The code had been duplicated a few times now, so this moves it into `common/` and uses some type magic to make it more versatile. GitOrigin-RevId: eed6adc871910219068e31cdd02bd9c76df67a02
Precompiled 2024-10-16-d5e45b0
breakdown file bandwidth by tag (#30752) GitOrigin-RevId: afd71770e3d201b3949303863626f5279945731f
Precompiled 2024-10-15-9a936da
Update Rust crate tonic to v0.12.3 [SECURITY] (#30272) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [tonic](https://redirect.github.com/hyperium/tonic) | dependencies | minor | `0.11` -> `0.12` | | [tonic](https://redirect.github.com/hyperium/tonic) | workspace.dependencies | patch | `0.12.1` -> `0.12.3` | ### GitHub Vulnerability Alerts #### [CVE-2024-47609](https://redirect.github.com/hyperium/tonic/security/advisories/GHSA-4jwc-w2hc-78qv) ### Impact **note:** this only affects v0.12.0 - v0.12.2 When using `tonic::transport::Server` there is a remote DoS attack that can cause the server to exit cleanly on accepting a tcp/tls stream. This can be triggered via causing the accept call to error out with errors there were not covered correctly causing the accept loop to exit. More information can be found [here](https://redirect.github.com/hyperium/tonic/issues/1897) ### Patches Upgrading to tonic `0.12.3` and above contains the fix. ### Workarounds A custom accept loop is a possible workaround. --- ### Release Notes <details> <summary>hyperium/tonic (tonic)</summary> ### [`v0.12.3`](https://redirect.github.com/hyperium/tonic/blob/HEAD/CHANGELOG.md#0123-2024-08-29) [Compare Source](https://redirect.github.com/hyperium/tonic/compare/v0.12.2...v0.12.3) ##### Features - **server:** Added support for grpc max_connection_age ([#​1865](https://redirect.github.com/hyperium/tonic/issues/1865)) - **build:** Add `#[deprecated]` to deprecated client methods ([#​1879](https://redirect.github.com/hyperium/tonic/issues/1879)) - **build:** plumb skip_debug through prost Builder and add test ([#​1900](https://redirect.github.com/hyperium/tonic/issues/1900)) ##### Bug Fixes - **build:** Revert "fix tonic-build cargo build script outputs ([#​1821](https://redirect.github.com/hyperium/tonic/issues/1821))" which accidentally increases MSRV ([#​1898](https://redirect.github.com/hyperium/tonic/issues/1898)) - **server:** ignore more error kinds in incoming socket stream ([#​1885](https://redirect.github.com/hyperium/tonic/issues/1885)) - **transport**: do not shutdown server on broken connections ([#​1948](https://redirect.github.com/hyperium/tonic/issues/1948)) ### [`v0.12.2`](https://redirect.github.com/hyperium/tonic/blob/HEAD/CHANGELOG.md#0122-2024-08-23) [Compare Source](https://redirect.github.com/hyperium/tonic/compare/v0.12.1...v0.12.2) ##### Features - Move TimeoutExpired out of transport ([#​1826](https://redirect.github.com/hyperium/tonic/issues/1826)) - Move ConnectError type from transport ([#​1828](https://redirect.github.com/hyperium/tonic/issues/1828)) - **channel:** allow setting max_header_list_size ([#​1835](https://redirect.github.com/hyperium/tonic/issues/1835)) - **router:** Add RoutesBuilder constructor ([#​1855](https://redirect.github.com/hyperium/tonic/issues/1855)) - **tls:** Rename tls-roots feature with tls-native-roots ([#​1860](https://redirect.github.com/hyperium/tonic/issues/1860)) - **router:** Rename Routes::into_router with into_axum_router ([#​1862](https://redirect.github.com/hyperium/tonic/issues/1862)) - **router:** Implement from axum::Router for Routes ([#​1863](https://redirect.github.com/hyperium/tonic/issues/1863)) - **channel:** Re-enable TLS based on Cargo features in generated clients ([#​1866](https://redirect.github.com/hyperium/tonic/issues/1866)) - **server:** allow setting max_header_list_size ([#​1870](https://redirect.github.com/hyperium/tonic/issues/1870)) - **build:** Expose formatted service name ([#​1684](https://redirect.github.com/hyperium/tonic/issues/1684)) - **reflection:** add back support for v1alpha reflection protocol ([#​1888](https://redirect.github.com/hyperium/tonic/issues/1888)) ##### Bug Fixes - **router:** Add missing unimplemented fallback to RoutesBuilder ([#​1864](https://redirect.github.com/hyperium/tonic/issues/1864)) - **server:** Prevent server from exiting on ECONNABORTED ([#​1874](https://redirect.github.com/hyperium/tonic/issues/1874)) - **web:** fix panic in trailer parsing on multiple trailers ([#​1880](https://redirect.github.com/hyperium/tonic/issues/1880)) - **web:** fix empty trailer parsing causing infinite parser loop ([#​1883](https://redirect.github.com/hyperium/tonic/issues/1883)) ### [`v0.12.1`](https://redirect.github.com/hyperium/tonic/blob/HEAD/CHANGELOG.md#0121-2024-07-17) [Compare Source](https://redirect.github.com/hyperium/tonic/compare/v0.12.0...v0.12.1) ##### Bug Fixes - Reduce tokio-stream feature ([#​1795](https://redirect.github.com/hyperium/tonic/issues/1795)) ### [`v0.12.0`](https://redirect.github.com/hyperium/tonic/blob/HEAD/CHANGELOG.md#0120-2024-07-08) [Compare Source](https://redirect.github.com/hyperium/tonic/compare/v0.11.0...v0.12.0) This breaking release updates tonic to the hyper `1.0` ecosystem and also updates to prost `v0.13.0`. ##### Features - **build:** Custom codecs for generated code ([#​1599](https://redirect.github.com/hyperium/tonic/issues/1599)) ([18a2b30](https://redirect.github.com/hyperium/tonic/commit/18a2b30922460be02829706cf9dd0cd1ec6a19c1)) - **channel:** Make channel feature additive ([#​1574](https://redirect.github.com/hyperium/tonic/issues/1574)) ([b947e1a](https://redirect.github.com/hyperium/tonic/commit/b947e1ac0727ceb0a0267a30854ada4ba18931db)) - **codec:** Make error when not utf8 value in compression encoding ([#​1768](https://redirect.github.com/hyperium/tonic/issues/1768)) ([f8e1f87](https://redirect.github.com/hyperium/tonic/commit/f8e1f87eb862676147fd6215b58c9090d259104d)) - Implement http_body::Body::size_hint for custom body ([#​1713](https://redirect.github.com/hyperium/tonic/issues/1713)) ([9728c01](https://redirect.github.com/hyperium/tonic/commit/9728c01132bd64dca046675198edc751c4547966)) - Make boxed function public ([#​1754](https://redirect.github.com/hyperium/tonic/issues/1754)) ([2cc868f](https://redirect.github.com/hyperium/tonic/commit/2cc868f80b20379d6635ac182f523b4971d016b7)) - Relax GrpcMethod lifetime ([#​1598](https://redirect.github.com/hyperium/tonic/issues/1598)) ([68bf17d](https://redirect.github.com/hyperium/tonic/commit/68bf17d67ad71af44c34d565566c3dd58ea3ab87)) - **tls:** Add ability to add multiple ca certificates ([#​1724](https://redirect.github.com/hyperium/tonic/issues/1724)) ([3457f92](https://redirect.github.com/hyperium/tonic/commit/3457f9203226f88524b31bf5d64ce6e5ec7c993c)) - **tls:** Use rustls_pki_types::CertificateDer to describe DER encoded certificate ([#​1707](https://redirect.github.com/hyperium/tonic/issues/1707)) ([96a8cbc](https://redirect.github.com/hyperium/tonic/commit/96a8cbc04d0cad6d30d2944dba6b32aac8975f91)) - **tls:** Remove tls roots implicit configuration ([#​1731](https://redirect.github.com/hyperium/tonic/issues/1731)) ([de73617](https://redirect.github.com/hyperium/tonic/commit/de736171f20ec5d485c26ee5eda4a9ccf5fc75e5)) - **transport:** Make service router independent from transport ([#​1572](https://redirect.github.com/hyperium/tonic/issues/1572)) ([da48235](https://redirect.github.com/hyperium/tonic/commit/da482359933f52e84c0263b28a5a83ab1efe6c33)) - **transport:** Make transport server and channel independent ([#​1630](https://redirect.github.com/hyperium/tonic/issues/1630)) ([654289f](https://redirect.github.com/hyperium/tonic/commit/654289fdc24f56d6845ec0ceb233deb46b640fac)) - **transport:** Rename reexported axum body ([#​1752](https://redirect.github.com/hyperium/tonic/issues/1752)) ([5d7bfc2](https://redirect.github.com/hyperium/tonic/commit/5d7bfc22c590982463f2d93464b0a7fb90e17083)) - Use http::Extensions directly ([#​1710](https://redirect.github.com/hyperium/tonic/issues/1710)) ([ed95d27](https://redirect.github.com/hyperium/tonic/commit/ed95d2762146f001970b74941f3bad77b7560426)) ##### Bug Fixes - **tonic:** flush accumulated ready messages when status received ([#​1756](https://redirect.github.com/hyperium/tonic/issues/1756)) ([d312dcc](https://redirect.github.com/hyperium/tonic/commit/d312dcc0ec362cb12f6e54072622761d7466a650)), closes [#​1423](https://redirect.github.com/hyperium/tonic/issues/1423) ##### BREAKING CHANGES - `tonic` and crates updated to hyper 1.0 ([#​1670](https://redirect.github.com/hyperium/tonic/issues/1670)) - `tonic` and crates updated to prost 0.13 ([#​1779](https://redirect.github.com/hyperium/tonic/issues/1779)) - `tonic_reflection::server` is updated to use the generated `tonic_reflection::pb::v1` code. - Make compression encoding configuration more malleable ([#​1757](https://redirect.github.com/hyperium/tonic/issues/1757)) - Removed implicit configuration of client TLS roots setup ([#​1731](https://redirect.github.com/hyperium/tonic/issues/1731)) [v1.8.8]: https://redirect.github.com/fullstorydev/grpcurl/releases/tag/v1.8.8 [proto]: https://redirect.github.com/grpc/grpc/blob/master/src/proto/grpc/reflection/v1/reflection.proto [grpcurl]: https://redirect.github.com/fullstorydev/grpcurl </details> --- ### Configuration 📅 **Schedule**: Branch creation - "" in timezone America/Los_Angeles, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/get-convex/convex). GitOrigin-RevId: 6afe9dbab05f64afcf70356203949080bd58053c
Precompiled 2024-10-14-dfdc0ad
Port the HTTP streaming response to Tokio mpsc (#30534) GitOrigin-RevId: b9c6bd60d9749c11789c4e7a077c8527304e57f5
Precompiled 2024-10-11-aca14be
ModuleMetadata parse args and returns lazily (#30589) Some function have enormous arg validators, which can take a while to parse. And we parse these whenever we look up a ModuleMetadata, which happens whenever the module gets imported by another module. Avoid bad performance on imports by leaving the arg and return validators as unparsed JSON strings. GitOrigin-RevId: 8b503b565db8ea38cb9be4b927025baf13607873
Precompiled 2024-10-10-78129b8
Use tokio's oneshot everywhere (#30516) Switch our oneshots from `futures` to `tokio` so they're coop budget aware -- if a Tokio task has exhausted its coop budget, `oneshot::Receivers` will preempt the task if awaited. This does require that our futures are all executed within the Tokio runtime, however. GitOrigin-RevId: da8f8017fd0f07f8e50332682c43ce514ba8c3d4
Precompiled 2024-10-09-7bcb6cb
Open source the system cleanup worker (#30519) 1. Good for cleaning up the session metadata for mutations 2. Will be good to have when we are using it for export expiration which feels more of a product feature. GitOrigin-RevId: 6c5630c765bac8b8915bf6aa1b1644a2d2ce2655
Precompiled 2024-10-08-2af06f9
Improve error handling for access token (#30443) Avoid the misclassification of access token errors as admin key errors. Properly 500 in the case of inability to talk to big-brain, so we appropriately classify/track the downtime. Before it was coming back as a 403 authentication error like this which incorrectly blames the issue on the client https://convex-dev.sentry.io/issues/5740756429/?project=6316453&query=%22The%20provided%20admin%20key%20was%20invalid%20for%20this%20instance%22&referrer=issue-stream&sort=date&statsPeriod=24h&stream_index=0 GitOrigin-RevId: e4d958c3f692f3d4f151b68f6044afdd7797bde5