From 356d0407b79bc946467670f4a4b0454d29ddca1c Mon Sep 17 00:00:00 2001 From: Daniel Albert Date: Tue, 24 Feb 2026 00:44:18 +0100 Subject: [PATCH 1/2] vaultwarden: 1.35.3 -> 1.35.4, vaultwarden.webvault: 2026.1.0+0 -> 2026.1.1+0 --- pkgs/by-name/va/vaultwarden/package.nix | 6 +++--- pkgs/by-name/va/vaultwarden/webvault.nix | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/va/vaultwarden/package.nix b/pkgs/by-name/va/vaultwarden/package.nix index 9d382ee3b552..7e6808d5fa5d 100644 --- a/pkgs/by-name/va/vaultwarden/package.nix +++ b/pkgs/by-name/va/vaultwarden/package.nix @@ -19,16 +19,16 @@ in rustPlatform.buildRustPackage (finalAttrs: { pname = "vaultwarden"; - version = "1.35.3"; + version = "1.35.4"; src = fetchFromGitHub { owner = "dani-garcia"; repo = "vaultwarden"; tag = finalAttrs.version; - hash = "sha256-Q/kMdrKMBB5Tbfi4Cy9ucI6iH8eOr+fzi876+ef2kV4="; + hash = "sha256-NphgKTlyVsH42TEGU8unhL798jTQMkS5JyNckKhk8YM="; }; - cargoHash = "sha256-3wS8LoFMYhd8uwjDyNfWLMQEK3USotTzTHEJNimG3pM="; + cargoHash = "sha256-PkFxHhFrdVB/hfSoT6j87K4IEknl+ZO1omGHrXBWEMg="; # used for "Server Installed" version in admin panel env.VW_VERSION = finalAttrs.version; diff --git a/pkgs/by-name/va/vaultwarden/webvault.nix b/pkgs/by-name/va/vaultwarden/webvault.nix index 15d63918b5de..04454d9e4c44 100644 --- a/pkgs/by-name/va/vaultwarden/webvault.nix +++ b/pkgs/by-name/va/vaultwarden/webvault.nix @@ -11,7 +11,7 @@ buildNpmPackage rec { pname = "vaultwarden-webvault"; - version = "2026.1.0+0"; + version = "2026.1.1+0"; # doesn't build with newer versions nodejs = nodejs_22; @@ -20,10 +20,10 @@ buildNpmPackage rec { owner = "vaultwarden"; repo = "vw_web_builds"; tag = "v${version}"; - hash = "sha256-u0axJFwXZr3iPcDskD6oDfuh3uWjOawoWEYFfSwiN5g="; + hash = "sha256-ehL3DDjCav20XJgUR+ED2x0lax4fm1jMZ0rRiqR78a4="; }; - npmDepsHash = "sha256-wzndpxxxgc7DfVcriAC7C8OxvhMBcXW6VcY33k0CEdc="; + npmDepsHash = "sha256-/S0itw2m2k7GiiwBEzeqFQ8oUYD4yIO4knTTn37qkfA="; nativeBuildInputs = [ python3 From b6a5bcc79226435bf59d02bbf04bafe700aca8f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Tue, 24 Feb 2026 18:14:56 +0100 Subject: [PATCH 2/2] nixos/tests/vaultwarden: fix web ui test, disable cli tests as they require internet now --- nixos/tests/vaultwarden.nix | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/nixos/tests/vaultwarden.nix b/nixos/tests/vaultwarden.nix index 18115d8a2259..329ee3fdf963 100644 --- a/nixos/tests/vaultwarden.nix +++ b/nixos/tests/vaultwarden.nix @@ -30,6 +30,7 @@ let libraries = [ pkgs.python3Packages.selenium ]; flakeIgnore = [ "E501" ]; } + # python '' from selenium.webdriver.common.by import By @@ -80,6 +81,13 @@ let wait.until_not(EC.title_contains("Set a strong password")) + wait.until_not(EC.title_contains("Join organization")) + + # NOTE: When testing this locally, the extensions must not be installed, otherwise this screen does not appear + click_when_unobstructed((By.XPATH, "//button[contains(., 'Add it later')]")) + + click_when_unobstructed((By.XPATH, "//a[contains(., 'Skip to web app')]")) + click_when_unobstructed((By.XPATH, "//button[contains(., 'New item')]")) driver.find_element(By.XPATH, '//input[@formcontrolname="name"]').send_keys( @@ -205,7 +213,7 @@ let testScript else '' - import json + # import json start_all() server.wait_for_unit("vaultwarden.service") @@ -222,18 +230,20 @@ let with subtest("use the web interface to sign up, log in, and save a password"): server.succeed("PYTHONUNBUFFERED=1 systemd-cat -t test-runner test-runner") - with subtest("log in with the cli"): - key = client.succeed( - "bw --nointeraction --raw login ${userEmail} ${userPassword}" - ).strip() + # Upstreams sees offline usage as a new feature... + # https://github.com/bitwarden/clients/issues/18110 + # with subtest("log in with the cli"): + # key = client.succeed( + # "bw --nointeraction --raw login ${userEmail} ${userPassword}" + # ).strip() - with subtest("sync with the cli"): - client.succeed(f"bw --nointeraction --raw --session {key} sync -f") + # with subtest("sync with the cli"): + # client.succeed(f"bw --nointeraction --raw --session {key} sync -f") - with subtest("get the password with the cli"): - output = json.loads(client.succeed(f"bw --nointeraction --raw --session {key} list items")) + # with subtest("get the password with the cli"): + # output = json.loads(client.succeed(f"bw --nointeraction --raw --session {key} list items")) - assert output[0]['login']['password'] == "${storedPassword}" + # assert output[0]['login']['password'] == "${storedPassword}" ''; } );