From c0d6e588f64be94f3b522d093395abbaa9fa1a58 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 19:04:14 +0000 Subject: [PATCH] build(deps): bump axum from 0.7.9 to 0.8.8 (#6) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): bump axum from 0.7.9 to 0.8.8 Bumps [axum](https://github.com/tokio-rs/axum) from 0.7.9 to 0.8.8. - [Release notes](https://github.com/tokio-rs/axum/releases) - [Changelog](https://github.com/tokio-rs/axum/blob/main/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/axum/compare/axum-v0.7.9...axum-v0.8.8) --- updated-dependencies: - dependency-name: axum dependency-version: 0.8.8 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * fix(deps): adapt code for axum 0.8 and tower-cookies 0.11 - Bump tower-cookies 0.10 → 0.11 (requires axum-core 0.5 / axum 0.8) - Remove axum::async_trait usage (axum 0.8 uses native async traits) - Migrate route path params from :param to {param} syntax * fix(deps): correct axum and tower version constraints Dependabot updated the lockfile for axum 0.8 but left the Cargo.toml constraint at "0.7", causing CI to resolve back to 0.7.9. It also incorrectly downgraded tower from "0.5" to "0.4", creating a duplicate tower version in the lockfile and trait mismatches with axum 0.8. --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jon Seager --- Cargo.lock | 38 ++++++++++++++----------------- Cargo.toml | 4 ++-- src/application/auth.rs | 2 -- src/application/routes/api/mod.rs | 18 +++++++-------- src/application/routes/app/mod.rs | 2 +- src/application/routes/support.rs | 2 -- 6 files changed, 29 insertions(+), 37 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d26636f..da83491 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -270,14 +270,14 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axum" -version = "0.7.9" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" +checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8" dependencies = [ - "async-trait", "axum-core", "axum-macros", "bytes", + "form_urlencoded", "futures-util", "http", "http-body", @@ -290,8 +290,7 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rustversion", - "serde", + "serde_core", "serde_json", "serde_path_to_error", "serde_urlencoded", @@ -305,19 +304,17 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.4.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" +checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" dependencies = [ - "async-trait", "bytes", - "futures-util", + "futures-core", "http", "http-body", "http-body-util", "mime", "pin-project-lite", - "rustversion", "sync_wrapper", "tower-layer", "tower-service", @@ -326,9 +323,9 @@ dependencies = [ [[package]] name = "axum-macros" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce" +checksum = "604fde5e028fea851ce1d8570bbdc034bec850d157f7569d10f347d06808c05c" dependencies = [ "proc-macro2", "quote", @@ -783,7 +780,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -1516,9 +1513,9 @@ dependencies = [ [[package]] name = "matchit" -version = "0.7.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "md-5" @@ -1946,7 +1943,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] @@ -2171,7 +2168,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -2759,7 +2756,7 @@ dependencies = [ "getrandom 0.3.4", "once_cell", "rustix", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -2947,11 +2944,10 @@ dependencies = [ [[package]] name = "tower-cookies" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fd0118512cf0b3768f7fcccf0bef1ae41d68f2b45edc1e77432b36c97c56c6d" +checksum = "151b5a3e3c45df17466454bb74e9ecedecc955269bdedbf4d150dfa393b55a36" dependencies = [ - "async-trait", "axum-core", "cookie", "futures-util", diff --git a/Cargo.toml b/Cargo.toml index 4945f20..122a353 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,7 +6,7 @@ edition = "2024" [dependencies] anyhow = "1.0" async-trait = "0.1" -axum = { version = "0.7", features = ["macros"] } +axum = { version = "0.8", features = ["macros"] } askama = "0.15" base64 = "0.22" chrono = { version = "0.4", features = ["serde", "clock"] } @@ -32,7 +32,7 @@ tokio = { version = "1.38", features = ["rt-multi-thread", "macros", "signal"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "json", "fmt"] } tower = "0.5" -tower-cookies = "0.10" +tower-cookies = "0.11" tower-http = { version = "0.6", features = ["compression-gzip", "limit", "set-header", "trace"] } slug = "0.1.6" url = "2" diff --git a/src/application/auth.rs b/src/application/auth.rs index 3061b34..30808c2 100644 --- a/src/application/auth.rs +++ b/src/application/auth.rs @@ -1,5 +1,4 @@ use axum::{ - async_trait, extract::{FromRequestParts, Request}, http::{StatusCode, header, request::Parts}, }; @@ -16,7 +15,6 @@ const SESSION_COOKIE_NAME: &str = "brewlog_session"; #[derive(Debug, Clone)] pub struct AuthenticatedUser(pub User); -#[async_trait] impl FromRequestParts for AuthenticatedUser { type Rejection = StatusCode; diff --git a/src/application/routes/api/mod.rs b/src/application/routes/api/mod.rs index ab93110..d7002a1 100644 --- a/src/application/routes/api/mod.rs +++ b/src/application/routes/api/mod.rs @@ -26,7 +26,7 @@ pub(super) fn router() -> axum::Router { get(roasters::list_roasters).post(roasters::create_roaster), ) .route( - "/roasters/:id", + "/roasters/{id}", get(roasters::get_roaster) .put(roasters::update_roaster) .delete(roasters::delete_roaster), @@ -36,33 +36,33 @@ pub(super) fn router() -> axum::Router { get(roasts::list_roasts).post(roasts::create_roast), ) .route( - "/roasts/:id", + "/roasts/{id}", get(roasts::get_roast) .put(roasts::update_roast) .delete(roasts::delete_roast), ) .route("/bags", get(bags::list_bags).post(bags::create_bag)) .route( - "/bags/:id", + "/bags/{id}", get(bags::get_bag) .put(bags::update_bag) .delete(bags::delete_bag), ) .route("/gear", get(gear::list_gear).post(gear::create_gear)) .route( - "/gear/:id", + "/gear/{id}", get(gear::get_gear) .put(gear::update_gear) .delete(gear::delete_gear), ) .route("/brews", get(brews::list_brews).post(brews::create_brew)) .route( - "/brews/:id", + "/brews/{id}", get(brews::get_brew).delete(brews::delete_brew), ) .route("/cafes", get(cafes::list_cafes).post(cafes::create_cafe)) .route( - "/cafes/:id", + "/cafes/{id}", get(cafes::get_cafe) .put(cafes::update_cafe) .delete(cafes::delete_cafe), @@ -74,15 +74,15 @@ pub(super) fn router() -> axum::Router { .route("/scan", post(scan::submit_scan)) .route("/check-in", post(checkin::submit_checkin)) .route("/cups", get(cups::list_cups).post(cups::create_cup)) - .route("/cups/:id", get(cups::get_cup).delete(cups::delete_cup)) + .route("/cups/{id}", get(cups::get_cup).delete(cups::delete_cup)) .route( "/tokens", post(tokens::create_token).get(tokens::list_tokens), ) - .route("/tokens/:id/revoke", post(tokens::revoke_token)) + .route("/tokens/{id}/revoke", post(tokens::revoke_token)) .route("/passkeys", get(account::list_passkeys)) .route( - "/passkeys/:id", + "/passkeys/{id}", axum::routing::delete(account::delete_passkey), ) .route("/backup", get(backup::export_backup)) diff --git a/src/application/routes/app/mod.rs b/src/application/routes/app/mod.rs index c6043f6..3e98e39 100644 --- a/src/application/routes/app/mod.rs +++ b/src/application/routes/app/mod.rs @@ -18,7 +18,7 @@ pub(super) fn router() -> axum::Router { .route("/login", get(auth::login_page)) .route("/logout", post(auth::logout)) .route("/account", get(account::account_page)) - .route("/register/:token", get(webauthn::register_page)) + .route("/register/{token}", get(webauthn::register_page)) .route("/auth/cli-callback", get(webauthn::cli_callback_page)) .route("/data", get(data::data_page)) .route("/add", get(add::add_page)) diff --git a/src/application/routes/support.rs b/src/application/routes/support.rs index 4599128..7ae408c 100644 --- a/src/application/routes/support.rs +++ b/src/application/routes/support.rs @@ -1,5 +1,4 @@ use askama::Template; -use axum::async_trait; use axum::extract::{Form, FromRequest, Json as JsonPayload, Request}; use axum::http::{HeaderMap, HeaderValue, header::CONTENT_TYPE}; use axum::response::{Html, IntoResponse, Response}; @@ -165,7 +164,6 @@ fn parse_direction(value: &str) -> Option { } } -#[async_trait] impl FromRequest for FlexiblePayload where S: Send + Sync,