mod.rs
1 //! Remote source module for fetching secrets from external secret managers. 2 //! 3 //! This module provides the infrastructure for integrating with remote secret 4 //! management services via external providers. 5 //! 6 //! ## External Providers 7 //! 8 //! Out-of-process binaries communicating via JSON-RPC 2.0 over stdio. This provides: 9 //! - Full process isolation 10 //! - Independent versioning and releases 11 //! - Users install only providers they need 12 //! - Community can create providers without touching core 13 //! - Security boundaries for credential handling 14 //! 15 //! External providers are managed via the `ExternalProviderAdapter` and `ProviderManager`. 16 //! 17 //! ## Available Providers 18 //! 19 //! - `ecolog-provider-doppler` - Doppler secrets manager 20 //! 21 //! Install providers to the configured `providers_path` directory. 22 23 mod traits; 24 25 // External provider infrastructure 26 pub mod discovery; 27 pub mod external; 28 pub mod manager; 29 pub mod protocol; 30 pub mod transport; 31 32 pub use traits::*; 33 34 // Re-export external provider types 35 pub use discovery::{DiscoveryConfig, ProviderBinaryInfo, ProviderDiscovery}; 36 pub use protocol::{ 37 AuthField as ProtocolAuthField, AuthStatus as ProtocolAuthStatus, 38 AuthenticateParams, AuthenticateResult, AuthFieldsResult, AuthStatusResult, 39 ClientCapabilities, ClientInfo, ErrorCode, InitializeParams, InitializeResult, 40 JsonRpcError, JsonRpcId, JsonRpcMessage, JsonRpcNotification, JsonRpcRequest, 41 JsonRpcResponse, PingParams, PingResult, ProviderCapabilities, ProviderInfo, 42 ScopeLevel as ProtocolScopeLevel, ScopeLevelsResult, ScopeOption as ProtocolScopeOption, 43 ScopeOptionsParams, ScopeOptionsResult, ScopeSelection as ProtocolScopeSelection, 44 Secret, SecretsFetchParams, SecretsFetchResult, SecretsGetParams, SecretsGetResult, 45 SecretsSetParams, SecretsSetResult, SecretsDeleteParams, SecretsDeleteResult, 46 SecretsChangedParams, LogLevel, LogParams, PROTOCOL_VERSION, 47 }; 48 pub use transport::{StdioTransport, SyncStdioTransport, TransportError, spawn_provider}; 49 pub use external::{ExternalProviderAdapter, ProviderState}; 50 pub use manager::ProviderManager;