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}