Crate coult[][src]

Expand description

Coult, is crate to getting from hashicorp vault

Usage

Coult use hyper client instead of reqwest for more simpler and lightweight crate, it will help you to send GET request to Vault for retrieving the secret. This crate will help you to automatically parsing using serde, and make sure your struct has Deserialize derive.

Example

use coult::{Config, Vault};
use serde::Deserialize;

#[derive(Debug, Deserialize)]
struct Secret {
   password: String,
}

#[tokio::main]
async fn main() {
tracing_subscriber::fmt::init();
let config = Config::new(
    "http".to_string(),                           # Vault Http Protocol http/https
   "127.0.0.1".to_string(),                       # Vault Host
    8200,                                         # Port
   "config/path".to_string(),                     # Secret Path
   "vault-plaintext-root-tokenzqwe".to_string(),  # Vault Token
   );
   let vault = Vault::new(config).await.unwrap();
   let data = vault.get_secret::<Secret>().await.unwrap();
   println!("{:?}", data)
}

Re-exports

pub use client::Vault;
pub use config::Config;

Modules

Client instance to get secret from Hashicorp Vault

Config struct to match the address of vault

HTTP response that maybe happen in Vault

Schema is response struct from hashicorp vault when we hit /v1/secret/path