fluentci-secrets 0.1.0

Programmable CI/CD engine without Containers, built on top of Nix ❄️
Documentation
use anyhow::Result;
use async_trait::async_trait;
use serde::{Deserialize, Serialize};

pub mod aws;
pub mod azure;
pub mod convert;
pub mod google;
pub mod vault;

#[derive(Serialize, Deserialize)]
pub enum Provider {
    Google(google::GoogleConfig),
    Aws(aws::AwsConfig),
    Azure(azure::AzureConfig),
    Hashicorp(vault::HashicorpVaultConfig),
}

#[async_trait]
pub trait Vault {
    async fn download_prefixed(&self, prefix: &str) -> Result<Vec<(String, String)>>;
    async fn download_json(&self, secret_name: &str) -> Result<Vec<(String, String)>>;
}

pub trait VaultConfig {
    type Vault: Vault;
    fn into_vault(self) -> Result<Self::Vault>;
}

pub fn download_env() {}