Skip to content
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

Merged
merged 1 commit into from
Mar 17, 2024

Conversation

dani-garcia
Copy link
Owner

Based on the discussion on #4083

@tessus
Copy link
Contributor

tessus commented Dec 5, 2023

Nice change.

P.S.: Just to clarify, this means I can delete the rsa_key.pub.pem file from my vw data directory, correct?

@BlackDex
Copy link
Collaborator

Nice change.

P.S.: Just to clarify, this means I can delete the rsa_key.pub.pem file from my vw data directory, correct?

Yes it does.

@BlackDex
Copy link
Collaborator

@dani-garcia It looks ok too me.

The only thing i encountered is that if i generate a RSA key manually like openssl genrsa -out rsa_key.pem 3072 that works, but if i go heigher, like 5120, it will load, but it will also fail generating a JWT since the key size is too large.

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.

@zacknewman
Copy link
Contributor

zacknewman commented Dec 10, 2023

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 else block that the key size is 2048.

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 (ECC, 256) where ECC means specifically NIST curves (e.g., NIST P-256 aka secp256r1 aka prime256v1). The code changes for this are pretty minimal.

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".

@zacknewman
Copy link
Contributor

zacknewman commented Dec 11, 2023

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.

@tessus
Copy link
Contributor

tessus commented Dec 11, 2023

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?

@BlackDex
Copy link
Collaborator

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

@zacknewman
Copy link
Contributor

zacknewman commented Dec 11, 2023

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?

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 jsonwebtoken::EncodingKey does not like openssl::ec::EcKey::private_key_to_pem, so you'll have to pass the EcKey into PKey::from_ec_keyPKey::ec_gen only works for OpenSSL 3.0.0+.

@tessus
Copy link
Contributor

tessus commented Jan 13, 2024

May I ask what the status of this PR is? I am asking because maybe I can help with something.

@dani-garcia
Copy link
Owner Author

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.

@BlackDex
Copy link
Collaborator

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.

@dani-garcia dani-garcia merged commit a1fbd6d into main Mar 17, 2024
8 checks passed
@dani-garcia dani-garcia deleted the update_jwt_private_key branch March 17, 2024 14:11
ZhReimu pushed a commit to ZhReimu/vaultwarden that referenced this pull request Jul 9, 2024
renovate bot referenced this pull request in NorkzYT/Wolflith Jul 12, 2024
[![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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;gzfrozen](https://togithub.com/gzfrozen) in
[https://github.com/dani-garcia/vaultwarden/pull/4355](https://togithub.com/dani-garcia/vaultwarden/pull/4355)
- Fix
[#&#8203;3624](https://togithub.com/dani-garcia/vaultwarden/issues/3624):
fix manager permission within groups by
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[https://github.com/dani-garcia/vaultwarden/pull/4715](https://togithub.com/dani-garcia/vaultwarden/pull/4715)

#### New Contributors

- [@&#8203;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)
- [@&#8203;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)
- [@&#8203;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)
- [@&#8203;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)
- [@&#8203;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)
- [@&#8203;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)
- [@&#8203;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>
truecharts-admin referenced this pull request in truecharts/public Jul 24, 2024
…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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;gzfrozen](https://togithub.com/gzfrozen) in
[https://github.com/dani-garcia/vaultwarden/pull/4355](https://togithub.com/dani-garcia/vaultwarden/pull/4355)
- Fix
[#&#8203;3624](https://togithub.com/dani-garcia/vaultwarden/issues/3624):
fix manager permission within groups by
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[https://github.com/dani-garcia/vaultwarden/pull/4715](https://togithub.com/dani-garcia/vaultwarden/pull/4715)

#### New Contributors

- [@&#8203;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)
- [@&#8203;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)
- [@&#8203;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)
- [@&#8203;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)
- [@&#8203;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)
- [@&#8203;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)
- [@&#8203;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=-->
sp3nx0r referenced this pull request in sp3nx0r/homelab Aug 3, 2024
…#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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;gzfrozen](https://togithub.com/gzfrozen) in
[https://github.com/dani-garcia/vaultwarden/pull/4355](https://togithub.com/dani-garcia/vaultwarden/pull/4355)
- Fix
[#&#8203;3624](https://togithub.com/dani-garcia/vaultwarden/issues/3624):
fix manager permission within groups by
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;BlackDex](https://togithub.com/BlackDex) in
[https://github.com/dani-garcia/vaultwarden/pull/4715](https://togithub.com/dani-garcia/vaultwarden/pull/4715)

#### New Contributors

- [@&#8203;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)
- [@&#8203;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)
- [@&#8203;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)
- [@&#8203;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)
- [@&#8203;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)
- [@&#8203;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)
- [@&#8203;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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants