greentic_secrets_lib/
env.rs1use async_trait::async_trait;
2use greentic_secrets_api::{Result, SecretError, SecretsManager};
3
4pub 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}