Skip to main content

Module secrets

Module secrets 

Source
Available on crate feature secrets only.
Expand description

Secrets management with multi-provider support and resilient caching.

Provides a unified interface for loading certificates, credentials, and other sensitive data from multiple sources with automatic caching for resilience.

§Providers

  • File: Local filesystem (always available)
  • OpenBao/Vault: HashiCorp Vault API (requires secrets-vault feature)
  • AWS Secrets Manager: AWS SDK (requires secrets-aws feature)

§Features

  • Multi-provider support with unified API
  • Local disk cache with TTL for resilience
  • Stale cache fallback when providers are unavailable
  • Background refresh for proactive secret renewal
  • Rotation callbacks for application notification

§Example

use hyperi_rustlib::secrets::{SecretsManager, SecretsConfig, SecretSource};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Simple file-based usage
    let secrets = SecretsManager::new(SecretsConfig::default())?;
    let cert = secrets.get_file("/etc/ssl/cert.pem").await?;

    // With named sources
    let config = SecretsConfig {
        sources: vec![
            ("tls_cert".into(), SecretSource::File { path: "/etc/ssl/cert.pem".into() }),
        ].into_iter().collect(),
        ..Default::default()
    };
    let secrets = SecretsManager::new(config)?;
    let cert = secrets.get("tls_cert").await?;

    Ok(())
}

Structs§

CacheConfig
Cache configuration.
CacheStats
Cache statistics.
FileProvider
Provider that loads secrets from local filesystem.
OpenBaoConfig
OpenBao/Vault connection configuration.
OpenBaoProvider
OpenBao/Vault secret provider.
RotationEvent
Event emitted when a secret is rotated.
SecretCache
Secret cache with memory and disk tiers.
SecretMetadata
Metadata about a secret.
SecretValue
Value retrieved from a secrets provider.
SecretsConfig
Main configuration for the secrets manager.
SecretsManager
Secrets manager that coordinates providers and caching.

Enums§

OpenBaoAuth
OpenBao/Vault authentication method.
SecretSource
Configuration for a secret source.
SecretsError
Secrets module errors.

Traits§

SecretProvider
Trait for secret providers.

Type Aliases§

SecretsResult
Result type for secrets operations.