CredentialService overview
Credential Storage Service
Provides secure credential storage across multiple platforms. Supports keychain, encrypted file fallback, and environment variables.
Added in v0.0.3
Table of contents
layers
CredentialServiceLive
Live implementation of CredentialService.
Provides secure credential storage with automatic fallback:
- Environment variables (read-only)
- System keychain (preferred for storage)
- Encrypted file (fallback)
Signature
export declare const CredentialServiceLive: Layer.Layer<CredentialService, never, never>
Added in v0.0.3
services
CredentialService
Context tag for CredentialService.
Signature
export declare const CredentialService: Context.Tag<CredentialService, CredentialService>
Added in v0.0.3
utils
CredentialService (interface)
Credential storage service interface.
Provides methods for storing and retrieving OAuth credentials across different storage mechanisms.
Signature
export interface CredentialService {
/**
* Stores OAuth credentials securely.
*
* Attempts storage in this order:
* 1. System keychain (via keytar)
* 2. Encrypted file in ~/.ping-cli/credentials.enc
*
* @param credentials - OAuth credentials to store
* @returns Effect that succeeds with void or fails with CredentialStorageError
*
* @since 0.0.3
*/
readonly store: (credentials: StoredCredentials) => Effect.Effect<void, CredentialStorageError>
/**
* Retrieves stored OAuth credentials.
*
* Attempts retrieval in this order:
* 1. Environment variables (PINGONE_CLIENT_ID, PINGONE_CLIENT_SECRET, etc.)
* 2. System keychain (via keytar)
* 3. Encrypted file in ~/.ping-cli/credentials.enc
*
* @returns Effect that succeeds with StoredCredentials or fails with CredentialStorageError
*
* @since 0.0.3
*/
readonly retrieve: () => Effect.Effect<StoredCredentials, CredentialStorageError>
/**
* Deletes stored OAuth credentials.
*
* Removes credentials from:
* - System keychain
* - Encrypted file
*
* @returns Effect that succeeds with void or fails with CredentialStorageError
*
* @since 0.0.3
*/
readonly delete: () => Effect.Effect<void, CredentialStorageError>
}
Added in v0.0.3