pub struct SpnClient { /* private fields */ }Expand description
Client for communicating with the spn daemon.
The client uses Unix socket IPC to communicate with the daemon, which handles all keychain access to avoid repeated auth prompts.
On non-Unix platforms (Windows), the client always operates in fallback mode, reading secrets from environment variables.
Implementations§
Source§impl SpnClient
impl SpnClient
Sourcepub async fn connect() -> Result<Self, Error>
pub async fn connect() -> Result<Self, Error>
Connect to the spn daemon.
Returns an error if the daemon is not running.
This method is only available on Unix platforms.
Sourcepub async fn connect_to(socket_path: &PathBuf) -> Result<Self, Error>
pub async fn connect_to(socket_path: &PathBuf) -> Result<Self, Error>
Connect to the daemon at a specific socket path.
This method is only available on Unix platforms.
Sourcepub async fn connect_with_fallback() -> Result<Self, Error>
pub async fn connect_with_fallback() -> Result<Self, Error>
Connect to the daemon, falling back to env vars if daemon is unavailable.
This is the recommended way to connect in applications that should work even without the daemon running.
On non-Unix platforms (Windows), this always returns a fallback client.
Sourcepub fn is_fallback_mode(&self) -> bool
pub fn is_fallback_mode(&self) -> bool
Check if the client is in fallback mode (daemon not connected).
Sourcepub async fn ping(&mut self) -> Result<String, Error>
pub async fn ping(&mut self) -> Result<String, Error>
Ping the daemon to verify the connection.
This method is only available on Unix platforms.
Sourcepub async fn get_secret(
&mut self,
provider: &str,
) -> Result<SecretString, Error>
pub async fn get_secret( &mut self, provider: &str, ) -> Result<SecretString, Error>
Get a secret for the given provider.
In fallback mode, attempts to read from the environment variable associated with the provider (e.g., ANTHROPIC_API_KEY).
Sourcepub async fn has_secret(&mut self, provider: &str) -> Result<bool, Error>
pub async fn has_secret(&mut self, provider: &str) -> Result<bool, Error>
Check if a secret exists for the given provider.