Crate secret_store_sdk

Crate secret_store_sdk 

Source
Expand description

XJP Secret Store SDK for Rust

A comprehensive SDK for interacting with the XJP Secret Store service, providing secure storage and retrieval of secrets, configuration values, and sensitive data.

§Features

  • Async/await support with tokio runtime
  • Automatic retries with exponential backoff
  • Built-in caching with ETag/304 support
  • Multiple authentication methods (Bearer, API Key, XJP Key)
  • Batch operations with transactional support
  • Environment export in multiple formats
  • Version management and rollback
  • Comprehensive error handling
  • Secure value handling with zeroization

§Example

use secret_store_sdk::{Client, ClientBuilder, Auth};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = ClientBuilder::new("https://secret.example.com")
        .auth(Auth::bearer("your-api-key"))
        .build()?;

    let secret = client.get_secret("production", "database-url", Default::default()).await?;
    println!("Secret version: {}", secret.version);

    Ok(())
}

Structs§

ApiKeyInfo
API Key information
AuditEntry
Audit log entry
AuditQuery
Audit query parameters
AuditResult
Audit log results
BatchGetJsonResult
Batch get result in JSON format
BatchOp
Batch operation
BatchOperateResult
Result of batch operations
BatchOperationResult
Individual operation result in batch
BatchResultSummary
Batch results summary
BuildInfo
Build information
BulkDeleteFailure
Failure details for bulk delete
BulkDeleteOpts
Options for bulk delete across namespaces
BulkDeleteResult
Result of bulk delete operation
CacheConfig
Cache configuration
CacheStats
Cache statistics
Client
XJP Secret Store client
ClientBuilder
Builder for creating a configured Client
ClientConfig
Client configuration
CreateApiKeyRequest
API Key creation request
CreateNamespaceRequest
Request for creating a namespace
CreateNamespaceResult
Result of namespace creation
DeleteNamespaceResult
Result of namespace deletion
DeleteResult
Result of delete operation
Discovery
Service discovery information
EndpointInfo
Endpoint information
EnvJsonExport
Environment export in JSON format
ExportEnvOpts
Options for environment export
GetOpts
Options for getting a secret
HealthCheckResult
Individual health check result
HealthStatus
Health check result
InitNamespaceResult
Result of namespace initialization
ListApiKeysResult
List API keys result
ListNamespacesResult
List of namespaces
ListOpts
Options for listing secrets
ListSecretsResult
Result of list operation
NamespaceInfo
Namespace detailed information
NamespaceListItem
Namespace list item
NamespaceTemplate
Namespace template for initialization
PutOpts
Options for putting a secret
PutResult
Result of put operation
RevokeApiKeyResult
Revoke API key result
RollbackResult
Result of rollback operation
SearchMatch
A single search match result
SearchSecretsOpts
Options for cross-namespace secret search
SearchSecretsResult
Result of cross-namespace search
Secret
A secret value with metadata
SecretKeyInfo
Secret key info in list responses
VersionInfo
Version information
VersionList
List of secret versions

Enums§

Auth
Authentication method for the secret store API
BatchGetResult
Result of batch get operation
BatchKeys
Keys for batch get operation
EnvExport
Environment export result
Error
Main error type for the SDK
ErrorKind
Error categories returned by the server
ExportFormat
Export format for batch operations
SearchMode
Search mode for cross-namespace search

Constants§

DEFAULT_CACHE_MAX_ENTRIES
Maximum cache entries
DEFAULT_CACHE_TTL_SECS
Default cache TTL in seconds
DEFAULT_RETRIES
Default number of retries
DEFAULT_TIMEOUT_MS
Default timeout in milliseconds
VERSION
SDK version, matches Cargo.toml version

Traits§

TokenProvider
Trait for providing dynamic tokens that can be refreshed

Type Aliases§

Result
Result type alias for the SDK
SecretString
Secret strings