Crate bitwarden

source
Expand description

§Bitwarden

A Rust client SDK to interact with the Bitwarden Secrets Manager. This is a beta release and might be missing some functionality.

To use this crate, add it to your Cargo.toml:

[dependencies]
bitwarden = { "*", features = ["secrets"] }

§Basic setup

All operations in this crate are done via a Client:

use bitwarden::{
    auth::login::AccessTokenLoginRequest,
    error::Result,
    secrets_manager::{secrets::SecretIdentifiersRequest, ClientSecretsExt},
    Client, ClientSettings, DeviceType,
};
use uuid::Uuid;

async fn test() -> Result<()> {
    // Use the default values
    let mut client = Client::new(None);

    // Or set your own values
    let settings = ClientSettings {
        identity_url: "https://identity.bitwarden.com".to_string(),
        api_url: "https://api.bitwarden.com".to_string(),
        user_agent: "Bitwarden Rust-SDK".to_string(),
        device_type: DeviceType::SDK,
    };
    let mut client = Client::new(Some(settings));

    // Before we operate, we need to authenticate with a token
    let token = AccessTokenLoginRequest {
        access_token: String::from(""),
        state_file: None,
    };
    client.auth().login_access_token(&token).await.unwrap();

    let org_id = SecretIdentifiersRequest {
        organization_id: Uuid::parse_str("00000000-0000-0000-0000-000000000000").unwrap(),
    };
    println!(
        "Stored secrets: {:#?}",
        client.secrets().list(&org_id).await.unwrap()
    );
    Ok(())
}

Re-exports§

Modules§

Macros§

  • This macro is used to require that a value is present or return an error otherwise. It is equivalent to using val.ok_or(Error::MissingFields)?, but easier to use and with a more descriptive error message. Note that this macro will return early from the function if the value is not present.

Structs§

  • The main struct to interact with the Bitwarden SDK.
  • Basic client behavior settings. These settings specify the various targets and behavior of the Bitwarden Client. They are optional and uneditable once the client is initialized.
  • Custom allocator that zeroizes memory before deallocating it

Enums§

Functions§