diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 2e8182b66..d4525ad2d 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -46,7 +46,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
with:
# Need a full clone so that `git describe` reports the right version
fetch-depth: 0
@@ -67,7 +67,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- uses: ./.github/actions/build-frontend
- uses: ./.github/actions/build-policies
@@ -112,7 +112,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
@@ -162,19 +162,19 @@ jobs:
steps:
- name: Download assets
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@v5
with:
name: assets
path: assets-dist
- name: Download binary x86_64
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@v5
with:
name: binary-x86_64-unknown-linux-gnu
path: binary-x86_64
- name: Download binary aarch64
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@v5
with:
name: binary-aarch64-unknown-linux-gnu
path: binary-aarch64
@@ -320,7 +320,7 @@ jobs:
- build-image
steps:
- name: Download the artifacts from the previous job
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@v5
with:
pattern: mas-cli-*
path: artifacts
@@ -376,13 +376,13 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
with:
sparse-checkout: |
.github/scripts
- name: Download the artifacts from the previous job
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@v5
with:
pattern: mas-cli-*
path: artifacts
@@ -454,7 +454,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
with:
sparse-checkout: |
.github/scripts
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index f290e7796..50ef76b8c 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -34,7 +34,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- uses: ./.github/actions/build-policies
@@ -60,7 +60,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Node
uses: actions/setup-node@v4.4.0
@@ -84,7 +84,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Node
uses: actions/setup-node@v4.4.0
@@ -108,7 +108,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Node
uses: actions/setup-node@v4.4.0
@@ -132,7 +132,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
@@ -155,10 +155,10 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Run `cargo-deny`
- uses: EmbarkStudios/cargo-deny-action@v2.0.12
+ uses: EmbarkStudios/cargo-deny-action@v2.0.13
with:
rust-version: stable
@@ -171,7 +171,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Rust toolchain
run: |
@@ -212,10 +212,10 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Rust toolchain
- uses: dtolnay/rust-toolchain@1.87.0
+ uses: dtolnay/rust-toolchain@1.89.0
with:
components: clippy
@@ -237,7 +237,7 @@ jobs:
steps:
- name: Checkout
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
@@ -290,7 +290,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
@@ -304,7 +304,7 @@ jobs:
- uses: ./.github/actions/build-policies
- name: Download archive
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@v5
with:
name: nextest-archive
diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml
index ca3860aaa..82d0483a0 100644
--- a/.github/workflows/coverage.yaml
+++ b/.github/workflows/coverage.yaml
@@ -29,7 +29,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- uses: ./.github/actions/build-policies
@@ -54,7 +54,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- uses: ./.github/actions/build-frontend
env:
@@ -99,7 +99,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
index 84170931e..a0ebd9361 100644
--- a/.github/workflows/docs.yaml
+++ b/.github/workflows/docs.yaml
@@ -25,7 +25,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
@@ -53,7 +53,7 @@ jobs:
done
- name: Upload GitHub Pages artifacts
- uses: actions/upload-pages-artifact@v3.0.1
+ uses: actions/upload-pages-artifact@v4.0.0
with:
path: target/book/
diff --git a/.github/workflows/merge-back.yaml b/.github/workflows/merge-back.yaml
index 5cb8ebdf1..17b0e0804 100644
--- a/.github/workflows/merge-back.yaml
+++ b/.github/workflows/merge-back.yaml
@@ -24,7 +24,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
sparse-checkout: |
.github/scripts
diff --git a/.github/workflows/release-branch.yaml b/.github/workflows/release-branch.yaml
index 72f24c4af..1d52cd60b 100644
--- a/.github/workflows/release-branch.yaml
+++ b/.github/workflows/release-branch.yaml
@@ -34,7 +34,7 @@ jobs:
run: exit 1
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
@@ -61,7 +61,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Node
uses: actions/setup-node@v4.4.0
@@ -106,7 +106,7 @@ jobs:
needs: [tag, compute-version, localazy]
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
with:
sparse-checkout: |
.github/scripts
diff --git a/.github/workflows/release-bump.yaml b/.github/workflows/release-bump.yaml
index 3b147a2ce..22b157a5e 100644
--- a/.github/workflows/release-bump.yaml
+++ b/.github/workflows/release-bump.yaml
@@ -33,7 +33,7 @@ jobs:
run: exit 1
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
@@ -76,7 +76,7 @@ jobs:
needs: [tag, compute-version]
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
with:
sparse-checkout: |
.github/scripts
diff --git a/.github/workflows/tag.yaml b/.github/workflows/tag.yaml
index 631221145..cf894e8af 100644
--- a/.github/workflows/tag.yaml
+++ b/.github/workflows/tag.yaml
@@ -30,7 +30,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
diff --git a/.github/workflows/translations-download.yaml b/.github/workflows/translations-download.yaml
index 130a76d38..1832e2b9c 100644
--- a/.github/workflows/translations-download.yaml
+++ b/.github/workflows/translations-download.yaml
@@ -19,7 +19,7 @@ jobs:
run: exit 1
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Node
uses: actions/setup-node@v4.4.0
diff --git a/.github/workflows/translations-upload.yaml b/.github/workflows/translations-upload.yaml
index 9fbe53c00..3121617a4 100644
--- a/.github/workflows/translations-upload.yaml
+++ b/.github/workflows/translations-upload.yaml
@@ -18,7 +18,7 @@ jobs:
steps:
- name: Checkout the code
- uses: actions/checkout@v4.2.2
+ uses: actions/checkout@v5
- name: Install Node
uses: actions/setup-node@v4.4.0
diff --git a/Cargo.lock b/Cargo.lock
index e053eb86d..4b2c82f0f 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -831,9 +831,9 @@ dependencies = [
[[package]]
name = "camino"
-version = "1.1.10"
+version = "1.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab"
+checksum = "5d07aa9a93b00c76f71bc35d598bed923f6d4f3a9ca5c24b7737ae1a292841c0"
dependencies = [
"serde",
]
@@ -980,9 +980,9 @@ dependencies = [
[[package]]
name = "clap"
-version = "4.5.42"
+version = "4.5.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed87a9d530bb41a67537289bafcac159cb3ee28460e0a4571123d2a778a6a882"
+checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318"
dependencies = [
"clap_builder",
"clap_derive",
@@ -990,9 +990,9 @@ dependencies = [
[[package]]
name = "clap_builder"
-version = "4.5.42"
+version = "4.5.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64f4f3f3c77c94aff3c7e9aac9a2ca1974a5adf392a8bb751e827d6d127ab966"
+checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8"
dependencies = [
"anstream",
"anstyle",
@@ -1002,9 +1002,9 @@ dependencies = [
[[package]]
name = "clap_derive"
-version = "4.5.41"
+version = "4.5.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491"
+checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6"
dependencies = [
"heck 0.5.0",
"proc-macro2",
@@ -2084,9 +2084,9 @@ dependencies = [
[[package]]
name = "governor"
-version = "0.10.0"
+version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cbe789d04bf14543f03c4b60cd494148aa79438c8440ae7d81a7778147745c3"
+checksum = "444405bbb1a762387aa22dd569429533b54a1d8759d35d3b64cb39b0293eaa19"
dependencies = [
"cfg-if",
"dashmap",
diff --git a/Cargo.toml b/Cargo.toml
index cf7db8b93..b19077253 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -137,7 +137,7 @@ version = "1.10.1"
# UTF-8 paths
[workspace.dependencies.camino]
-version = "1.1.10"
+version = "1.1.11"
features = ["serde1"]
# ChaCha20Poly1305 AEAD
@@ -167,7 +167,7 @@ features = ["serde", "clock"]
# CLI argument parsing
[workspace.dependencies.clap]
-version = "4.5.42"
+version = "4.5.45"
features = ["derive"]
# Object Identifiers (OIDs) as constants
@@ -239,7 +239,7 @@ version = "0.14.7"
# Rate-limiting
[workspace.dependencies.governor]
-version = "0.10.0"
+version = "0.10.1"
default-features = false
features = ["std", "dashmap", "quanta"]
diff --git a/Dockerfile b/Dockerfile
index 1c1c66b56..14eda1924 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -12,7 +12,7 @@
# The Debian version and version name must be in sync
ARG DEBIAN_VERSION=12
ARG DEBIAN_VERSION_NAME=bookworm
-ARG RUSTC_VERSION=1.87.0
+ARG RUSTC_VERSION=1.89.0
ARG NODEJS_VERSION=20.15.0
ARG OPA_VERSION=1.1.0
ARG CARGO_AUDITABLE_VERSION=0.6.6
diff --git a/clippy.toml b/clippy.toml
index 41d584369..218811441 100644
--- a/clippy.toml
+++ b/clippy.toml
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
# Please see LICENSE files in the repository root for full details.
-doc-valid-idents = ["OpenID", "OAuth", "..", "PostgreSQL", "SQLite"]
+doc-valid-idents = ["OpenID", "OAuth", "UserInfo", "..", "PostgreSQL", "SQLite"]
disallowed-methods = [
{ path = "rand::thread_rng", reason = "do not create rngs on the fly, pass them as parameters" },
diff --git a/crates/cli/build.rs b/crates/cli/build.rs
index 7bad5d337..fd111273b 100644
--- a/crates/cli/build.rs
+++ b/crates/cli/build.rs
@@ -12,13 +12,13 @@ fn main() -> anyhow::Result<()> {
// At build time, we override the version through the environment variable
// VERGEN_GIT_DESCRIBE. In some contexts, it means this variable is set but
// empty, so we unset it here.
- if let Ok(ver) = std::env::var("VERGEN_GIT_DESCRIBE") {
- if ver.is_empty() {
- #[allow(unsafe_code)]
- // SAFETY: This is safe because the build script is running a single thread
- unsafe {
- std::env::remove_var("VERGEN_GIT_DESCRIBE");
- }
+ if let Ok(ver) = std::env::var("VERGEN_GIT_DESCRIBE")
+ && ver.is_empty()
+ {
+ #[allow(unsafe_code)]
+ // SAFETY: This is safe because the build script is running a single thread
+ unsafe {
+ std::env::remove_var("VERGEN_GIT_DESCRIBE");
}
}
diff --git a/crates/cli/src/app_state.rs b/crates/cli/src/app_state.rs
index 4c6066463..f9f761338 100644
--- a/crates/cli/src/app_state.rs
+++ b/crates/cli/src/app_state.rs
@@ -273,10 +273,10 @@ fn infer_client_ip(
let peer = if let Some(info) = connection_info {
// We can always trust the proxy protocol to give us the correct IP address
- if let Some(proxy) = info.get_proxy_ref() {
- if let Some(source) = proxy.source() {
- return Some(source.ip());
- }
+ if let Some(proxy) = info.get_proxy_ref()
+ && let Some(source) = proxy.source()
+ {
+ return Some(source.ip());
}
info.get_peer_addr().map(|addr| addr.ip())
diff --git a/crates/cli/src/commands/manage.rs b/crates/cli/src/commands/manage.rs
index 3a1d3dda1..a6a8e67a0 100644
--- a/crates/cli/src/commands/manage.rs
+++ b/crates/cli/src/commands/manage.rs
@@ -619,13 +619,12 @@ impl Options {
let txn = conn.begin().await?;
let mut repo = PgRepository::from_conn(txn);
- if let Some(password) = &password {
- if !ignore_password_complexity
- && !password_manager.is_password_complex_enough(password)?
- {
- error!("That password is too weak.");
- return Ok(ExitCode::from(1));
- }
+ if let Some(password) = &password
+ && !ignore_password_complexity
+ && !password_manager.is_password_complex_enough(password)?
+ {
+ error!("That password is too weak.");
+ return Ok(ExitCode::from(1));
}
// If the username is provided, check if it's available and normalize it.
diff --git a/crates/cli/src/sync.rs b/crates/cli/src/sync.rs
index 18c5faf13..4b8c388c3 100644
--- a/crates/cli/src/sync.rs
+++ b/crates/cli/src/sync.rs
@@ -209,11 +209,11 @@ pub async fn config_sync(
// private key to hold the content of the private key file.
// private key (raw) takes precedence so both can be defined
// without issues
- if siwa.private_key.is_none() {
- if let Some(private_key_file) = siwa.private_key_file.take() {
- let key = tokio::fs::read_to_string(private_key_file).await?;
- siwa.private_key = Some(key);
- }
+ if siwa.private_key.is_none()
+ && let Some(private_key_file) = siwa.private_key_file.take()
+ {
+ let key = tokio::fs::read_to_string(private_key_file).await?;
+ siwa.private_key = Some(key);
}
let encoded = serde_json::to_vec(&siwa)?;
Some(encrypter.encrypt_to_string(&encoded)?)
diff --git a/crates/config/src/sections/secrets.rs b/crates/config/src/sections/secrets.rs
index 7886e9a57..4bfd30ce3 100644
--- a/crates/config/src/sections/secrets.rs
+++ b/crates/config/src/sections/secrets.rs
@@ -149,7 +149,7 @@ impl KeyConfig {
/// Returns the password in case any is provided.
///
/// If `password_file` was given, the password is read from that file.
- async fn password(&self) -> anyhow::Result