From 0f668f15ed370ef149c245f6b634e6fed5b17d13 Mon Sep 17 00:00:00 2001 From: Matt Gibson Date: Thu, 15 Jan 2026 05:36:58 -0800 Subject: [PATCH] Add tracing to AKD config init --- akd/Cargo.lock | 5 +++++ .../bitwarden-akd-configuration/Cargo.toml | 4 +++- .../bitwarden-akd-configuration/src/lib.rs | 16 ++++++++++++++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/akd/Cargo.lock b/akd/Cargo.lock index 11ec513e72..4ee8bb0663 100644 --- a/akd/Cargo.lock +++ b/akd/Cargo.lock @@ -519,6 +519,7 @@ dependencies = [ "blake3", "config", "serde", + "tracing", "uuid", ] @@ -2249,11 +2250,15 @@ version = "0.1.0" dependencies = [ "akd", "akd_storage", + "anyhow", "bitwarden-akd-configuration", "common", + "config", + "serde", "tokio", "tracing", "tracing-subscriber", + "uuid", ] [[package]] diff --git a/akd/crates/bitwarden-akd-configuration/Cargo.toml b/akd/crates/bitwarden-akd-configuration/Cargo.toml index 32f07eece0..fb5ada4b4c 100644 --- a/akd/crates/bitwarden-akd-configuration/Cargo.toml +++ b/akd/crates/bitwarden-akd-configuration/Cargo.toml @@ -11,6 +11,7 @@ akd.workspace = true blake3.workspace = true config = { workspace = true, optional = true } serde = { workspace = true, optional = true } +tracing = { workspace = true, optional = true } uuid = { version = "1.18.1", features = ["serde"] } [lints] @@ -18,4 +19,5 @@ workspace = true [features] config = ["dep:config", "dep:serde"] -default = ["config"] +tracing = ["dep:tracing"] +default = ["tracing"] diff --git a/akd/crates/bitwarden-akd-configuration/src/lib.rs b/akd/crates/bitwarden-akd-configuration/src/lib.rs index ca81bb21d8..6396ddd9e7 100644 --- a/akd/crates/bitwarden-akd-configuration/src/lib.rs +++ b/akd/crates/bitwarden-akd-configuration/src/lib.rs @@ -50,19 +50,31 @@ impl BitwardenV1Configuration { /// /// # Panics /// Panics if called more than once. + #[cfg_attr( + feature = "tracing", + tracing::instrument(level = "info", name = "BitwardenV1Configuration::init") + )] pub fn init(installation_context: Uuid) { let installation_context = [BITWARDEN_V1, installation_context.as_bytes()].concat(); INSTALLATION_CONTEXT .set(installation_context) .expect("BitwardenV1Configuration already initialized"); + #[cfg(feature = "tracing")] + tracing::info!("BitwardenV1Configuration initialization successful"); } /// Get the installation context. Panics if not initialized. /// # Panics /// Panics if `BitwardenV1Configuration::init()` has not been called. fn get_context() -> &'static [u8] { - INSTALLATION_CONTEXT - .get() + let maybe_installation_context = INSTALLATION_CONTEXT.get(); + + #[cfg(feature = "tracing")] + if maybe_installation_context.is_none() { + tracing::error!("BitwardenV1Configuration::init() must be called before use"); + } + + maybe_installation_context .expect("BitwardenV1Configuration::init() must be called before use") }