Expand description
Secret management with multiple backend support
This crate provides a unified interface for resolving secrets from various backends:
- OS Keychain (
keychain://service/key): macOS Keychain, Windows Credential Manager, Linux Secret Service - 1Password CLI (
op://vault/item/field): RequiresopCLI to be installed and authenticated - Environment variables (
env://VAR_NAME): Read from process environment - Files (
file:///pathor just/path): Read content from filesystem - Plain values: Any string without a URI scheme is treated as a literal value
§Example
ⓘ
use siphon_secrets::{SecretUri, SecretResolver};
// Parse a secret URI from config
let uri: SecretUri = "keychain://myapp/api-token".parse()?;
// Resolve to actual value
let resolver = SecretResolver::new();
let secret = resolver.resolve(&uri)?;§Features
keychain(default): Enable OS keychain support viakeyringcrateonepassword(default): Enable 1Password CLI supportenv(default): Enable environment variable supportfile(default): Enable file reading support
Modules§
Structs§
- Secret
Resolver - Resolves secrets from various backends based on URI scheme
Enums§
- Secret
Error - Errors that can occur during secret resolution
- Secret
Uri - Represents a secret reference that can be resolved from various backends.