Files
honey-biscuit-workshop/workshop-vault/examples/usage.rs
T
2025-11-09 22:55:18 +08:00

38 lines
1.2 KiB
Rust

use workshop_vault::*;
use env_logger;
use log::info;
#[tokio::main]
async fn main() -> Result<()> {
env_logger::init();
// 从环境变量创建客户端
let client = create_vault_client_from_env()?;
// 检查是否初始化 Vault
let initialized = client.is_initialized().await?;
info!("Vault initialized: {}", initialized);
// 创建 CI/CD 密钥管理器
let client = create_vault_client_from_env()?;
let secret_manager = WorkshopSecretManager::new(client, "my-ci-pipeline".to_string());
info!("Vault initialized: {}", initialized);
// 存储 CI/CD 变量
secret_manager.store_cicd_variable("DATABASE_URL", "postgres://user:pass@localhost/db").await?;
info!("Vault initialized: {}", initialized);
secret_manager.store_cicd_variable("API_SECRET", "super-secret-key").await?;
// 读取变量
let db_url = secret_manager.get_cicd_variable("DATABASE_URL").await?;
println!("Database URL: {}", db_url);
// 存储密钥文件
secret_manager.store_secret_file("id_rsa", "-----BEGIN PRIVATE KEY-----\n...").await?;
// 列出所有变量
let variables = secret_manager.list_cicd_variables().await?;
println!("Available variables: {:?}", variables);
Ok(())
}