Skip to main content

greentic_secrets_lib/
env.rs

1use async_trait::async_trait;
2use greentic_secrets_api::{Result, SecretError, SecretsManager};
3
4/// Simple secrets manager backed by `std::env` for fast iteration.
5pub struct EnvSecretsManager;
6
7#[async_trait]
8impl SecretsManager for EnvSecretsManager {
9    async fn read(&self, path: &str) -> Result<Vec<u8>> {
10        match std::env::var(path) {
11            Ok(value) => Ok(value.into_bytes()),
12            Err(_) => Err(SecretError::NotFound(path.to_string())),
13        }
14    }
15
16    async fn write(&self, _path: &str, _bytes: &[u8]) -> Result<()> {
17        Err(SecretError::Permission("env is read-only".into()))
18    }
19
20    async fn delete(&self, _path: &str) -> Result<()> {
21        Err(SecretError::Permission("env is read-only".into()))
22    }
23}