1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//! Secret Managers
//!
//! This module provides implementations for secret management across different backends.
//!
//! # Available Backends
//!
//! - **Environment Variables** (`EnvSecretManager`): Read secrets from environment variables
//! - **File-based** (`FileSecretManager`): Read secrets from files (for development)
//! - **AWS Secrets Manager** (`AwsSecretManager`): AWS Secrets Manager integration (requires `aws-secrets` feature)
//! - **Google Cloud Secret Manager** (`GcpSecretManager`): GCP Secret Manager integration (requires `gcp-secrets` feature)
//! - **Azure Key Vault** (`AzureSecretManager`): Azure Key Vault integration (requires `azure-secrets` feature)
//! - **HashiCorp Vault** (`VaultSecretManager`): HashiCorp Vault integration (requires `vault-secrets` feature)
//!
//! # Usage
//!
//! ```rust,ignore
//! use litellm_rs::core::secret_managers::{SecretManagerRegistry, EnvSecretManager};
//!
//! let registry = SecretManagerRegistry::new();
//! registry.register("env", Box::new(EnvSecretManager::new()));
//!
//! // Read a secret
//! let api_key = registry.read_secret("env", "OPENAI_API_KEY").await?;
//! ```
//!
//! # Secret Reference Syntax
//!
//! Secrets can be referenced in configuration files using the following syntax:
//! - `${secret:env:SECRET_NAME}` - Read from environment variable
//! - `${secret:file:path/to/secret}` - Read from file
//! - `${secret:aws:secret-name}` - Read from AWS Secrets Manager
//! - `${secret:gcp:secret-name}` - Read from Google Cloud Secret Manager
//! - `${secret:azure:secret-name}` - Read from Azure Key Vault
//! - `${secret:vault:path/to/secret}` - Read from HashiCorp Vault
// Cloud secret managers
pub use EnvSecretManager;
pub use FileSecretManager;
pub use SecretManagerRegistry;
// Re-export cloud secret managers
pub use ;
pub use ;
pub use ;
pub use ;
// Re-export trait types for convenience
pub use crate;