Skip to main content

key_value/
key_value.rs

1use std::env;
2
3use libvault_rs::{
4    client::vault::{VaultHttpClient, AuthenticatedVaultClient}, 
5    auth::approle::requests::{ApproleCredentials, login}, 
6    secrets::key_value::requests::{KeyValue, KeyValueVersion}
7};
8
9#[tokio::main]
10async fn main() {
11    let vault_client: VaultHttpClient = VaultHttpClient::new(
12        "localhost",
13        8200,
14        false,
15        None as Option<String>
16    );
17    
18    let role_id = env::var("ROLE_ID").expect("ROLE_ID not set");
19    let secret_id = env::var("SECRET_ID").expect("SECRET_ID not set");
20    let approle_credentials = ApproleCredentials::new(role_id, secret_id);
21    let response = login(&vault_client, approle_credentials).await;
22    let token: String = response.unwrap().auth.client_token;
23    let authenticated_client: AuthenticatedVaultClient = AuthenticatedVaultClient::new(Box::new(vault_client), token);
24    
25    let key_value: KeyValue = KeyValue::new(KeyValueVersion::Two, "secret");
26    println!("{:#?}", key_value.read(&authenticated_client, "hello").await);
27
28    let key_value_legacy: KeyValue = KeyValue::new(KeyValueVersion::One, "legacy");
29    println!("{:#?}", key_value_legacy.read(&authenticated_client, "hello").await);
30}