-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve JWT RSA key initialization and avoid saving public key #4085
Conversation
Nice change. P.S.: Just to clarify, this means I can delete the |
Yes it does. |
@dani-garcia It looks ok too me. The only thing i encountered is that if i generate a RSA key manually like Maybe we want to put a limit on the size or at least check the size? Or maybe even allow a different key type? ECDSA for example? That is smaller, though not sure if that the generated JWT's are also smaller though. |
The proposed change was made under the assumption that we only wanted 2048-bit RSA keys; and consequently, I should have added a check in the If we want to allow different key sizes and types, then I think that should be configurable. Personally I prefer non-NIST elliptic curves, but NIST curves have more support (e.g., IANA only recommends NIST elliptic curves for TLS—sans the non-NIST Edwards curves (e.g., X25519)—not necessarily on "security" grounds but also how popular they are (e.g., NIST P-521 is not recommended)). Additionally we may not want to have a bunch of granular config options. For that reason I think a config option that is a tuple of type and size would be nice with the two types being ECC and RSA and the sizes being 256 and 384 for ECC and 2048 and 4096 for RSA, and whose default value is If the argument for this though is purely based on an admin generating the private key outside of the application, then I think only a check that verifies the key size is 2048 should happen. The key generation is part of the application logic no different than how things are stored in the database, and I don't think that should be supported. Obviously an admin that knows what they're doing can alter or manually generate such things, but they do so under "no warranty". |
Not sure why I didn't think of this before, but can't we just remove the file altogether? What's the point of storing the key? It does not take long to generate a private key especially if the decision is to switch to something like NIST P-256, and I have never had issues changing keys. One could even argue this improves security a bit since it makes the key at least semi-ephemeral—yes, this is an abuse of terminology; but the lifetime of the key is the lifetime of the running daemon which is shorter than a persistent key that requires manual deletion to generate a new one. On my personal fork, I went ahead and removed the file and decided to use the twisted Edwards curve birationally equivalent to Curve25519; and much to my delight, the clients my wife and I use have no issues. The only clients we use though are the web vault accessed via Firefox on Arch Linux and macOS Ventura, the Firefox extension on those same OSes, the app on iOS 17, and the app on Android 11. Using the curve used by Ed25519 may cause issues for other clients though, so it probably makes sense to just use NIST P-256 with the possibility of making that configurable. For my use case though, the code looks like below: use crate::error::Error;
use jsonwebtoken::{Algorithm, DecodingKey, EncodingKey};
use openssl::pkey::PKey;
use std::sync::OnceLock;
const JWT_ALGORITHM: Algorithm = Algorithm::EdDSA;
static ED_KEYS: OnceLock<(EncodingKey, DecodingKey)> = OnceLock::new();
#[allow(clippy::map_err_ignore)]
pub fn init_ed_keys() -> Result<(), Error> {
PKey::generate_ed25519()
.map_err(Error::from)
.and_then(|key| {
ED_KEYS
.set((
EncodingKey::from_ed_pem(key.private_key_to_pem_pkcs8()?.as_slice())?,
DecodingKey::from_ed_pem(key.public_key_to_pem()?.as_slice())?,
))
.map_err(|_| Error::from(String::from("ED_KEYS must only be initialized once")))
})
}
fn get_private_ed_key() -> &'static EncodingKey {
&ED_KEYS
.get()
.expect("ED_KEYS must be initialized in main")
.0
}
fn get_public_ed_key() -> &'static DecodingKey {
&ED_KEYS
.get()
.expect("ED_KEYS must be initialized in main")
.1
} Fewer lines of code, no need to access the file system, the gold standard of public key algorithms/curves, a semi-ephemeral key, no sensitive data stored on the file system, smaller key sizes, and smaller signatures. A win-win-win-win-win-win-win. |
In theory that makes sense, but I see a case where you'd run into an issue. You start vw and the key is generated and used. You invite someone or add someone to an org. Then you restart the vw server. What now? The tokens are no longer valid, because they were created with a key that no longer exists. Neither on disk, nor in memory. Or did I miss something? |
Not only invites, but also refresh tokens, auth tokens etc.. are invalid after that |
No, that seems like a great reason to generate a file. The code would look like below: use crate::config::Config;
use crate::error::Error;
use jsonwebtoken::{Algorithm, DecodingKey, EncodingKey};
use openssl::pkey::{Id, PKey};
use std::fs::File;
use std::io::{Read, Write};
use std::sync::OnceLock;
const JWT_ALGORITHM: Algorithm = Algorithm::EdDSA;
static ED_KEYS: OnceLock<(EncodingKey, DecodingKey)> = OnceLock::new();
#[allow(clippy::map_err_ignore, clippy::verbose_file_reads)]
pub fn init_ed_keys() -> Result<(), Error> {
let mut file = File::options()
.create(true)
.read(true)
.write(true)
.open(CONFIG.private_ed25519_key())?;
let mut priv_pem = Vec::with_capacity(128);
let ed_key = if file.read_to_end(&mut priv_pem)? == 0 {
let ed_key = PKey::generate_ed25519()?;
priv_pem = ed_key.private_key_to_pem_pkcs8()?;
file.write_all(priv_pem.as_slice())?;
ed_key
} else {
let ed_key = PKey::private_key_from_pem(priv_pem.as_slice())?;
if ed_key.id() == Id::ED25519 {
ed_key
} else {
return Err(Error::from(format!(
"{} is not a private Ed25519 key",
CONFIG.private_ed25519_key()
)));
}
};
ED_KEYS
.set((
EncodingKey::from_ed_pem(priv_pem.as_slice())?,
DecodingKey::from_ed_pem(ed_key.public_key_to_pem()?.as_slice())?,
))
.map_err(|_| Error::from(String::from("ED_KEYS must only be initialized once")))
} Only a win-win-win :(. In the likely case NIST P-256 is chosen, I did find |
May I ask what the status of this PR is? I am asking because maybe I can help with something. |
ae996b3
to
314ca91
Compare
We can merge this as is and leave the discussion of different ciphers for another PR. I think migrating to ed25519 would make the most sense, as it would also cut down on the generated JWTs signature sizes (a quick test with the admin page JWT reduced it's size from 499 bytes with RSA2048 to 243 bytes with ED25519). The clients aren't checking the JWT signature so this change shouldn't cause any compatibility issues. We might need to consider keeping the RSA decoding at least for one release to still be able to handle older invites etc, but in my opinion this shouldn't need to be configurable as long as we use a secure algorithm and key size. If any admins want to use a different key size, well they are on their own for that. |
I agree. Merging as is seems good to me. The rest would be extra for later. |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [vaultwarden/server](https://togithub.com/dani-garcia/vaultwarden) | minor | `1.30.5` -> `1.31.0` | --- ### Release Notes <details> <summary>dani-garcia/vaultwarden (vaultwarden/server)</summary> ### [`v1.31.0`](https://togithub.com/dani-garcia/vaultwarden/releases/tag/1.31.0) [Compare Source](https://togithub.com/dani-garcia/vaultwarden/compare/1.30.5...1.31.0) #### Major changes and New Features - Initial support for the beta releases of the new native mobile apps - Removed support for WebSocket traffic on port 3012, as it's been integrated on the main HTTP port for a few releases - Updated included web vault to 2024.5.1 #### General mention Bitwarden has changed the push API endpoints which affects the EU region endpoint users. So if you use the push functionality and use the EU region you need to make some changes. You have to update `push.bitwarden.eu` to `api.bitwarden.eu`. This is also an issue with any previous version of Vaultwarden. #### What's Changed - chore: remove repetitive words by [@​one230six](https://togithub.com/one230six) in [https://github.com/dani-garcia/vaultwarden/pull/4422](https://togithub.com/dani-garcia/vaultwarden/pull/4422) - Fix comment in events.rs by [@​KrappRamiro](https://togithub.com/KrappRamiro) in [https://github.com/dani-garcia/vaultwarden/pull/4408](https://togithub.com/dani-garcia/vaultwarden/pull/4408) - Improve JWT RSA key initialization and avoid saving public key by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4085](https://togithub.com/dani-garcia/vaultwarden/pull/4085) - Remove custom WebSocket code by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4001](https://togithub.com/dani-garcia/vaultwarden/pull/4001) - refactor: replace panic with a graceful exit by [@​tessus](https://togithub.com/tessus) in [https://github.com/dani-garcia/vaultwarden/pull/4402](https://togithub.com/dani-garcia/vaultwarden/pull/4402) - Small improvements around email change by [@​Timshel](https://togithub.com/Timshel) in [https://github.com/dani-garcia/vaultwarden/pull/4415](https://togithub.com/dani-garcia/vaultwarden/pull/4415) - Change timestamp data type. by [@​gzfrozen](https://togithub.com/gzfrozen) in [https://github.com/dani-garcia/vaultwarden/pull/4355](https://togithub.com/dani-garcia/vaultwarden/pull/4355) - Fix [#​3624](https://togithub.com/dani-garcia/vaultwarden/issues/3624): fix manager permission within groups by [@​matlink](https://togithub.com/matlink) in [https://github.com/dani-garcia/vaultwarden/pull/3754](https://togithub.com/dani-garcia/vaultwarden/pull/3754) - automatically use email address as 2fa provider by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4317](https://togithub.com/dani-garcia/vaultwarden/pull/4317) - fix: typos by [@​testwill](https://togithub.com/testwill) in [https://github.com/dani-garcia/vaultwarden/pull/4440](https://togithub.com/dani-garcia/vaultwarden/pull/4440) - Update chrono and sqlite by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4436](https://togithub.com/dani-garcia/vaultwarden/pull/4436) - Update Rust and crates by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4445](https://togithub.com/dani-garcia/vaultwarden/pull/4445) - Use async verify for Yubikey by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4448](https://togithub.com/dani-garcia/vaultwarden/pull/4448) - update web-vault to v2024.3.1 (new vertical layout) by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4468](https://togithub.com/dani-garcia/vaultwarden/pull/4468) - Update crates and some Clippy fixes by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4475](https://togithub.com/dani-garcia/vaultwarden/pull/4475) - Update Key Rotation web-vault v2024.3.x by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4446](https://togithub.com/dani-garcia/vaultwarden/pull/4446) - Update Crate and Rust by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4522](https://togithub.com/dani-garcia/vaultwarden/pull/4522) - Implement custom DNS resolver by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/3988](https://togithub.com/dani-garcia/vaultwarden/pull/3988) - Add extra (unsupported) container build arch's by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4524](https://togithub.com/dani-garcia/vaultwarden/pull/4524) - Pass in collection ids to notifier when sharing cipher. by [@​kristof-mattei](https://togithub.com/kristof-mattei) in [https://github.com/dani-garcia/vaultwarden/pull/4517](https://togithub.com/dani-garcia/vaultwarden/pull/4517) - improve access to collections via groups by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4441](https://togithub.com/dani-garcia/vaultwarden/pull/4441) - fix emergency access invites by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4337](https://togithub.com/dani-garcia/vaultwarden/pull/4337) - Some fixes for the new mobile apps by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4526](https://togithub.com/dani-garcia/vaultwarden/pull/4526) - Update Rust, crates and web-vault by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4558](https://togithub.com/dani-garcia/vaultwarden/pull/4558) - Improve Commentary Aesthetics by [@​rich-purnell](https://togithub.com/rich-purnell) in [https://github.com/dani-garcia/vaultwarden/pull/4549](https://togithub.com/dani-garcia/vaultwarden/pull/4549) - Optimize Dockerfiles by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4532](https://togithub.com/dani-garcia/vaultwarden/pull/4532) - also delete organization_api_key when deleting organizations by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4557](https://togithub.com/dani-garcia/vaultwarden/pull/4557) - Fix public api for domains with path prefix by [@​FDHoho007](https://togithub.com/FDHoho007) in [https://github.com/dani-garcia/vaultwarden/pull/4500](https://togithub.com/dani-garcia/vaultwarden/pull/4500) - Update crates by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4587](https://togithub.com/dani-garcia/vaultwarden/pull/4587) - Fix web-vault version in Docker(files/Settings) by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4575](https://togithub.com/dani-garcia/vaultwarden/pull/4575) - Update Alpine to version 3.20 by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4583](https://togithub.com/dani-garcia/vaultwarden/pull/4583) - differentiate external groups by organization id by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4586](https://togithub.com/dani-garcia/vaultwarden/pull/4586) - Remove old knowndevice route by [@​Timshel](https://togithub.com/Timshel) in [https://github.com/dani-garcia/vaultwarden/pull/4578](https://togithub.com/dani-garcia/vaultwarden/pull/4578) - Update admin interface dependencies by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4581](https://togithub.com/dani-garcia/vaultwarden/pull/4581) - Update rust and remove unused header values by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4645](https://togithub.com/dani-garcia/vaultwarden/pull/4645) - Update crates, web-vault and GHA by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4648](https://togithub.com/dani-garcia/vaultwarden/pull/4648) - Fix some nightly build errors by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4657](https://togithub.com/dani-garcia/vaultwarden/pull/4657) - Fix some more nightly errors and remove lint that will become an error by default by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4661](https://togithub.com/dani-garcia/vaultwarden/pull/4661) - Change API and structs to camelCase by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4386](https://togithub.com/dani-garcia/vaultwarden/pull/4386) - Fix cipher creation on new android app by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4670](https://togithub.com/dani-garcia/vaultwarden/pull/4670) - Remove mimalloc workaround by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4606](https://togithub.com/dani-garcia/vaultwarden/pull/4606) - Change some missing PascalCase keys by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4671](https://togithub.com/dani-garcia/vaultwarden/pull/4671) - Fix collections and native app issue by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4685](https://togithub.com/dani-garcia/vaultwarden/pull/4685) - Fix duplicate folder creations during import by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4702](https://togithub.com/dani-garcia/vaultwarden/pull/4702) - Remove duplicate registry step by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4703](https://togithub.com/dani-garcia/vaultwarden/pull/4703) - add group support for Cipher::get_collections() by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4592](https://togithub.com/dani-garcia/vaultwarden/pull/4592) - Switch registry cache compression algorithm to zstd by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4704](https://togithub.com/dani-garcia/vaultwarden/pull/4704) - Update crates and web-vault by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4714](https://togithub.com/dani-garcia/vaultwarden/pull/4714) - Some fixes for emergency access by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4715](https://togithub.com/dani-garcia/vaultwarden/pull/4715) #### New Contributors - [@​one230six](https://togithub.com/one230six) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4422](https://togithub.com/dani-garcia/vaultwarden/pull/4422) - [@​KrappRamiro](https://togithub.com/KrappRamiro) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4408](https://togithub.com/dani-garcia/vaultwarden/pull/4408) - [@​testwill](https://togithub.com/testwill) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4440](https://togithub.com/dani-garcia/vaultwarden/pull/4440) - [@​kristof-mattei](https://togithub.com/kristof-mattei) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4517](https://togithub.com/dani-garcia/vaultwarden/pull/4517) - [@​rich-purnell](https://togithub.com/rich-purnell) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4549](https://togithub.com/dani-garcia/vaultwarden/pull/4549) - [@​dfunkt](https://togithub.com/dfunkt) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4532](https://togithub.com/dani-garcia/vaultwarden/pull/4532) - [@​FDHoho007](https://togithub.com/FDHoho007) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4500](https://togithub.com/dani-garcia/vaultwarden/pull/4500) **Full Changelog**: dani-garcia/vaultwarden@1.30.5...1.31.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 10pm every weekday,every weekend,before 5am every weekday" in timezone America/New_York, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/NorkzYT/Wolflith). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjUuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQyNS4xIiwidGFyZ2V0QnJhbmNoIjoic3RhZ2luZyIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJtaW5vciIsInJlbm92YXRlIl19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…1.31.0@4e28425 by renovate (#24153) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [docker.io/vaultwarden/server](https://togithub.com/dani-garcia/vaultwarden) | minor | `1.30.5` -> `1.31.0` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>dani-garcia/vaultwarden (docker.io/vaultwarden/server)</summary> ### [`v1.31.0`](https://togithub.com/dani-garcia/vaultwarden/releases/tag/1.31.0) [Compare Source](https://togithub.com/dani-garcia/vaultwarden/compare/1.30.5...1.31.0) #### Major changes and New Features - Initial support for the beta releases of the new native mobile apps - Removed support for WebSocket traffic on port 3012, as it's been integrated on the main HTTP port for a few releases - Updated included web vault to 2024.5.1 #### General mention Bitwarden has changed the push API endpoints which affects the EU region endpoint users. So if you use the push functionality and use the EU region you need to make some changes. You have to update `push.bitwarden.eu` to `api.bitwarden.eu`. This is also an issue with any previous version of Vaultwarden. #### What's Changed - chore: remove repetitive words by [@​one230six](https://togithub.com/one230six) in [https://github.com/dani-garcia/vaultwarden/pull/4422](https://togithub.com/dani-garcia/vaultwarden/pull/4422) - Fix comment in events.rs by [@​KrappRamiro](https://togithub.com/KrappRamiro) in [https://github.com/dani-garcia/vaultwarden/pull/4408](https://togithub.com/dani-garcia/vaultwarden/pull/4408) - Improve JWT RSA key initialization and avoid saving public key by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4085](https://togithub.com/dani-garcia/vaultwarden/pull/4085) - Remove custom WebSocket code by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4001](https://togithub.com/dani-garcia/vaultwarden/pull/4001) - refactor: replace panic with a graceful exit by [@​tessus](https://togithub.com/tessus) in [https://github.com/dani-garcia/vaultwarden/pull/4402](https://togithub.com/dani-garcia/vaultwarden/pull/4402) - Small improvements around email change by [@​Timshel](https://togithub.com/Timshel) in [https://github.com/dani-garcia/vaultwarden/pull/4415](https://togithub.com/dani-garcia/vaultwarden/pull/4415) - Change timestamp data type. by [@​gzfrozen](https://togithub.com/gzfrozen) in [https://github.com/dani-garcia/vaultwarden/pull/4355](https://togithub.com/dani-garcia/vaultwarden/pull/4355) - Fix [#​3624](https://togithub.com/dani-garcia/vaultwarden/issues/3624): fix manager permission within groups by [@​matlink](https://togithub.com/matlink) in [https://github.com/dani-garcia/vaultwarden/pull/3754](https://togithub.com/dani-garcia/vaultwarden/pull/3754) - automatically use email address as 2fa provider by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4317](https://togithub.com/dani-garcia/vaultwarden/pull/4317) - fix: typos by [@​testwill](https://togithub.com/testwill) in [https://github.com/dani-garcia/vaultwarden/pull/4440](https://togithub.com/dani-garcia/vaultwarden/pull/4440) - Update chrono and sqlite by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4436](https://togithub.com/dani-garcia/vaultwarden/pull/4436) - Update Rust and crates by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4445](https://togithub.com/dani-garcia/vaultwarden/pull/4445) - Use async verify for Yubikey by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4448](https://togithub.com/dani-garcia/vaultwarden/pull/4448) - update web-vault to v2024.3.1 (new vertical layout) by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4468](https://togithub.com/dani-garcia/vaultwarden/pull/4468) - Update crates and some Clippy fixes by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4475](https://togithub.com/dani-garcia/vaultwarden/pull/4475) - Update Key Rotation web-vault v2024.3.x by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4446](https://togithub.com/dani-garcia/vaultwarden/pull/4446) - Update Crate and Rust by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4522](https://togithub.com/dani-garcia/vaultwarden/pull/4522) - Implement custom DNS resolver by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/3988](https://togithub.com/dani-garcia/vaultwarden/pull/3988) - Add extra (unsupported) container build arch's by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4524](https://togithub.com/dani-garcia/vaultwarden/pull/4524) - Pass in collection ids to notifier when sharing cipher. by [@​kristof-mattei](https://togithub.com/kristof-mattei) in [https://github.com/dani-garcia/vaultwarden/pull/4517](https://togithub.com/dani-garcia/vaultwarden/pull/4517) - improve access to collections via groups by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4441](https://togithub.com/dani-garcia/vaultwarden/pull/4441) - fix emergency access invites by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4337](https://togithub.com/dani-garcia/vaultwarden/pull/4337) - Some fixes for the new mobile apps by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4526](https://togithub.com/dani-garcia/vaultwarden/pull/4526) - Update Rust, crates and web-vault by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4558](https://togithub.com/dani-garcia/vaultwarden/pull/4558) - Improve Commentary Aesthetics by [@​rich-purnell](https://togithub.com/rich-purnell) in [https://github.com/dani-garcia/vaultwarden/pull/4549](https://togithub.com/dani-garcia/vaultwarden/pull/4549) - Optimize Dockerfiles by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4532](https://togithub.com/dani-garcia/vaultwarden/pull/4532) - also delete organization_api_key when deleting organizations by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4557](https://togithub.com/dani-garcia/vaultwarden/pull/4557) - Fix public api for domains with path prefix by [@​FDHoho007](https://togithub.com/FDHoho007) in [https://github.com/dani-garcia/vaultwarden/pull/4500](https://togithub.com/dani-garcia/vaultwarden/pull/4500) - Update crates by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4587](https://togithub.com/dani-garcia/vaultwarden/pull/4587) - Fix web-vault version in Docker(files/Settings) by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4575](https://togithub.com/dani-garcia/vaultwarden/pull/4575) - Update Alpine to version 3.20 by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4583](https://togithub.com/dani-garcia/vaultwarden/pull/4583) - differentiate external groups by organization id by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4586](https://togithub.com/dani-garcia/vaultwarden/pull/4586) - Remove old knowndevice route by [@​Timshel](https://togithub.com/Timshel) in [https://github.com/dani-garcia/vaultwarden/pull/4578](https://togithub.com/dani-garcia/vaultwarden/pull/4578) - Update admin interface dependencies by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4581](https://togithub.com/dani-garcia/vaultwarden/pull/4581) - Update rust and remove unused header values by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4645](https://togithub.com/dani-garcia/vaultwarden/pull/4645) - Update crates, web-vault and GHA by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4648](https://togithub.com/dani-garcia/vaultwarden/pull/4648) - Fix some nightly build errors by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4657](https://togithub.com/dani-garcia/vaultwarden/pull/4657) - Fix some more nightly errors and remove lint that will become an error by default by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4661](https://togithub.com/dani-garcia/vaultwarden/pull/4661) - Change API and structs to camelCase by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4386](https://togithub.com/dani-garcia/vaultwarden/pull/4386) - Fix cipher creation on new android app by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4670](https://togithub.com/dani-garcia/vaultwarden/pull/4670) - Remove mimalloc workaround by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4606](https://togithub.com/dani-garcia/vaultwarden/pull/4606) - Change some missing PascalCase keys by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4671](https://togithub.com/dani-garcia/vaultwarden/pull/4671) - Fix collections and native app issue by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4685](https://togithub.com/dani-garcia/vaultwarden/pull/4685) - Fix duplicate folder creations during import by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4702](https://togithub.com/dani-garcia/vaultwarden/pull/4702) - Remove duplicate registry step by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4703](https://togithub.com/dani-garcia/vaultwarden/pull/4703) - add group support for Cipher::get_collections() by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4592](https://togithub.com/dani-garcia/vaultwarden/pull/4592) - Switch registry cache compression algorithm to zstd by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4704](https://togithub.com/dani-garcia/vaultwarden/pull/4704) - Update crates and web-vault by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4714](https://togithub.com/dani-garcia/vaultwarden/pull/4714) - Some fixes for emergency access by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4715](https://togithub.com/dani-garcia/vaultwarden/pull/4715) #### New Contributors - [@​one230six](https://togithub.com/one230six) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4422](https://togithub.com/dani-garcia/vaultwarden/pull/4422) - [@​KrappRamiro](https://togithub.com/KrappRamiro) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4408](https://togithub.com/dani-garcia/vaultwarden/pull/4408) - [@​testwill](https://togithub.com/testwill) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4440](https://togithub.com/dani-garcia/vaultwarden/pull/4440) - [@​kristof-mattei](https://togithub.com/kristof-mattei) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4517](https://togithub.com/dani-garcia/vaultwarden/pull/4517) - [@​rich-purnell](https://togithub.com/rich-purnell) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4549](https://togithub.com/dani-garcia/vaultwarden/pull/4549) - [@​dfunkt](https://togithub.com/dfunkt) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4532](https://togithub.com/dani-garcia/vaultwarden/pull/4532) - [@​FDHoho007](https://togithub.com/FDHoho007) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4500](https://togithub.com/dani-garcia/vaultwarden/pull/4500) **Full Changelog**: dani-garcia/vaultwarden@1.30.5...1.31.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNiIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC42IiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImF1dG9tZXJnZSIsInVwZGF0ZS9kb2NrZXIvZ2VuZXJhbC9ub24tbWFqb3IiXX0=-->
…#272) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [docker.io/vaultwarden/server](https://togithub.com/dani-garcia/vaultwarden) | minor | `1.30.5` -> `1.31.0` | --- ### Release Notes <details> <summary>dani-garcia/vaultwarden (docker.io/vaultwarden/server)</summary> ### [`v1.31.0`](https://togithub.com/dani-garcia/vaultwarden/releases/tag/1.31.0) [Compare Source](https://togithub.com/dani-garcia/vaultwarden/compare/1.30.5...1.31.0) #### Major changes and New Features - Initial support for the beta releases of the new native mobile apps - Removed support for WebSocket traffic on port 3012, as it's been integrated on the main HTTP port for a few releases - Updated included web vault to 2024.5.1 #### General mention Bitwarden has changed the push API endpoints which affects the EU region endpoint users. So if you use the push functionality and use the EU region you need to make some changes. You have to update `push.bitwarden.eu` to `api.bitwarden.eu`. This is also an issue with any previous version of Vaultwarden. #### What's Changed - chore: remove repetitive words by [@​one230six](https://togithub.com/one230six) in [https://github.com/dani-garcia/vaultwarden/pull/4422](https://togithub.com/dani-garcia/vaultwarden/pull/4422) - Fix comment in events.rs by [@​KrappRamiro](https://togithub.com/KrappRamiro) in [https://github.com/dani-garcia/vaultwarden/pull/4408](https://togithub.com/dani-garcia/vaultwarden/pull/4408) - Improve JWT RSA key initialization and avoid saving public key by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4085](https://togithub.com/dani-garcia/vaultwarden/pull/4085) - Remove custom WebSocket code by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4001](https://togithub.com/dani-garcia/vaultwarden/pull/4001) - refactor: replace panic with a graceful exit by [@​tessus](https://togithub.com/tessus) in [https://github.com/dani-garcia/vaultwarden/pull/4402](https://togithub.com/dani-garcia/vaultwarden/pull/4402) - Small improvements around email change by [@​Timshel](https://togithub.com/Timshel) in [https://github.com/dani-garcia/vaultwarden/pull/4415](https://togithub.com/dani-garcia/vaultwarden/pull/4415) - Change timestamp data type. by [@​gzfrozen](https://togithub.com/gzfrozen) in [https://github.com/dani-garcia/vaultwarden/pull/4355](https://togithub.com/dani-garcia/vaultwarden/pull/4355) - Fix [#​3624](https://togithub.com/dani-garcia/vaultwarden/issues/3624): fix manager permission within groups by [@​matlink](https://togithub.com/matlink) in [https://github.com/dani-garcia/vaultwarden/pull/3754](https://togithub.com/dani-garcia/vaultwarden/pull/3754) - automatically use email address as 2fa provider by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4317](https://togithub.com/dani-garcia/vaultwarden/pull/4317) - fix: typos by [@​testwill](https://togithub.com/testwill) in [https://github.com/dani-garcia/vaultwarden/pull/4440](https://togithub.com/dani-garcia/vaultwarden/pull/4440) - Update chrono and sqlite by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4436](https://togithub.com/dani-garcia/vaultwarden/pull/4436) - Update Rust and crates by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4445](https://togithub.com/dani-garcia/vaultwarden/pull/4445) - Use async verify for Yubikey by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4448](https://togithub.com/dani-garcia/vaultwarden/pull/4448) - update web-vault to v2024.3.1 (new vertical layout) by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4468](https://togithub.com/dani-garcia/vaultwarden/pull/4468) - Update crates and some Clippy fixes by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4475](https://togithub.com/dani-garcia/vaultwarden/pull/4475) - Update Key Rotation web-vault v2024.3.x by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4446](https://togithub.com/dani-garcia/vaultwarden/pull/4446) - Update Crate and Rust by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4522](https://togithub.com/dani-garcia/vaultwarden/pull/4522) - Implement custom DNS resolver by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/3988](https://togithub.com/dani-garcia/vaultwarden/pull/3988) - Add extra (unsupported) container build arch's by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4524](https://togithub.com/dani-garcia/vaultwarden/pull/4524) - Pass in collection ids to notifier when sharing cipher. by [@​kristof-mattei](https://togithub.com/kristof-mattei) in [https://github.com/dani-garcia/vaultwarden/pull/4517](https://togithub.com/dani-garcia/vaultwarden/pull/4517) - improve access to collections via groups by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4441](https://togithub.com/dani-garcia/vaultwarden/pull/4441) - fix emergency access invites by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4337](https://togithub.com/dani-garcia/vaultwarden/pull/4337) - Some fixes for the new mobile apps by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4526](https://togithub.com/dani-garcia/vaultwarden/pull/4526) - Update Rust, crates and web-vault by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4558](https://togithub.com/dani-garcia/vaultwarden/pull/4558) - Improve Commentary Aesthetics by [@​rich-purnell](https://togithub.com/rich-purnell) in [https://github.com/dani-garcia/vaultwarden/pull/4549](https://togithub.com/dani-garcia/vaultwarden/pull/4549) - Optimize Dockerfiles by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4532](https://togithub.com/dani-garcia/vaultwarden/pull/4532) - also delete organization_api_key when deleting organizations by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4557](https://togithub.com/dani-garcia/vaultwarden/pull/4557) - Fix public api for domains with path prefix by [@​FDHoho007](https://togithub.com/FDHoho007) in [https://github.com/dani-garcia/vaultwarden/pull/4500](https://togithub.com/dani-garcia/vaultwarden/pull/4500) - Update crates by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4587](https://togithub.com/dani-garcia/vaultwarden/pull/4587) - Fix web-vault version in Docker(files/Settings) by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4575](https://togithub.com/dani-garcia/vaultwarden/pull/4575) - Update Alpine to version 3.20 by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4583](https://togithub.com/dani-garcia/vaultwarden/pull/4583) - differentiate external groups by organization id by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4586](https://togithub.com/dani-garcia/vaultwarden/pull/4586) - Remove old knowndevice route by [@​Timshel](https://togithub.com/Timshel) in [https://github.com/dani-garcia/vaultwarden/pull/4578](https://togithub.com/dani-garcia/vaultwarden/pull/4578) - Update admin interface dependencies by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4581](https://togithub.com/dani-garcia/vaultwarden/pull/4581) - Update rust and remove unused header values by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4645](https://togithub.com/dani-garcia/vaultwarden/pull/4645) - Update crates, web-vault and GHA by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4648](https://togithub.com/dani-garcia/vaultwarden/pull/4648) - Fix some nightly build errors by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4657](https://togithub.com/dani-garcia/vaultwarden/pull/4657) - Fix some more nightly errors and remove lint that will become an error by default by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4661](https://togithub.com/dani-garcia/vaultwarden/pull/4661) - Change API and structs to camelCase by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4386](https://togithub.com/dani-garcia/vaultwarden/pull/4386) - Fix cipher creation on new android app by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4670](https://togithub.com/dani-garcia/vaultwarden/pull/4670) - Remove mimalloc workaround by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4606](https://togithub.com/dani-garcia/vaultwarden/pull/4606) - Change some missing PascalCase keys by [@​dani-garcia](https://togithub.com/dani-garcia) in [https://github.com/dani-garcia/vaultwarden/pull/4671](https://togithub.com/dani-garcia/vaultwarden/pull/4671) - Fix collections and native app issue by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4685](https://togithub.com/dani-garcia/vaultwarden/pull/4685) - Fix duplicate folder creations during import by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4702](https://togithub.com/dani-garcia/vaultwarden/pull/4702) - Remove duplicate registry step by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4703](https://togithub.com/dani-garcia/vaultwarden/pull/4703) - add group support for Cipher::get_collections() by [@​stefan0xC](https://togithub.com/stefan0xC) in [https://github.com/dani-garcia/vaultwarden/pull/4592](https://togithub.com/dani-garcia/vaultwarden/pull/4592) - Switch registry cache compression algorithm to zstd by [@​dfunkt](https://togithub.com/dfunkt) in [https://github.com/dani-garcia/vaultwarden/pull/4704](https://togithub.com/dani-garcia/vaultwarden/pull/4704) - Update crates and web-vault by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4714](https://togithub.com/dani-garcia/vaultwarden/pull/4714) - Some fixes for emergency access by [@​BlackDex](https://togithub.com/BlackDex) in [https://github.com/dani-garcia/vaultwarden/pull/4715](https://togithub.com/dani-garcia/vaultwarden/pull/4715) #### New Contributors - [@​one230six](https://togithub.com/one230six) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4422](https://togithub.com/dani-garcia/vaultwarden/pull/4422) - [@​KrappRamiro](https://togithub.com/KrappRamiro) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4408](https://togithub.com/dani-garcia/vaultwarden/pull/4408) - [@​testwill](https://togithub.com/testwill) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4440](https://togithub.com/dani-garcia/vaultwarden/pull/4440) - [@​kristof-mattei](https://togithub.com/kristof-mattei) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4517](https://togithub.com/dani-garcia/vaultwarden/pull/4517) - [@​rich-purnell](https://togithub.com/rich-purnell) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4549](https://togithub.com/dani-garcia/vaultwarden/pull/4549) - [@​dfunkt](https://togithub.com/dfunkt) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4532](https://togithub.com/dani-garcia/vaultwarden/pull/4532) - [@​FDHoho007](https://togithub.com/FDHoho007) made their first contribution in [https://github.com/dani-garcia/vaultwarden/pull/4500](https://togithub.com/dani-garcia/vaultwarden/pull/4500) **Full Changelog**: dani-garcia/vaultwarden@1.30.5...1.31.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "on saturday" (UTC), 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 this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/sp3nx0r/homelab). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjUuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Based on the discussion on #4083