pub struct AuthsContext {
pub registry: Arc<dyn RegistryBackend + Send + Sync>,
pub key_storage: Arc<dyn KeyStorage + Send + Sync>,
pub clock: Arc<dyn ClockProvider + Send + Sync>,
pub event_sink: Arc<dyn EventSink>,
pub identity_storage: Arc<dyn IdentityStorage + Send + Sync>,
pub attestation_sink: Arc<dyn AttestationSink + Send + Sync>,
pub attestation_source: Arc<dyn AttestationSource + Send + Sync>,
pub passphrase_provider: Arc<dyn PassphraseProvider + Send + Sync>,
pub uuid_provider: Arc<dyn UuidProvider + Send + Sync>,
pub agent_signing: Arc<dyn AgentSigningPort + Send + Sync>,
}Expand description
All runtime dependencies for auths-sdk operations.
Construct via AuthsContext::builder(). Config structs carry serializable
data; AuthsContext carries injected infrastructure adapters. This separation
allows the SDK to operate as a headless, storage-agnostic library that can be
embedded in cloud SaaS, WASM, or C-FFI runtimes without pulling in tokio,
git2, or std::fs.
Usage:
use std::sync::Arc;
use auths_sdk::context::AuthsContext;
let ctx = AuthsContext::builder()
.registry(Arc::new(my_registry))
.key_storage(Arc::new(my_keychain))
.clock(Arc::new(SystemClock))
.build();
sdk::setup_developer(config, &ctx)?;Fields§
§registry: Arc<dyn RegistryBackend + Send + Sync>Pre-initialized registry storage backend.
key_storage: Arc<dyn KeyStorage + Send + Sync>Platform keychain or test fake for key material storage.
clock: Arc<dyn ClockProvider + Send + Sync>Wall-clock provider for deterministic testing.
event_sink: Arc<dyn EventSink>Telemetry sink (defaults to [NoopSink] when not specified).
identity_storage: Arc<dyn IdentityStorage + Send + Sync>Identity storage adapter (load/save managed identity).
attestation_sink: Arc<dyn AttestationSink + Send + Sync>Attestation sink for writing signed attestations.
attestation_source: Arc<dyn AttestationSource + Send + Sync>Attestation source for reading existing attestations.
passphrase_provider: Arc<dyn PassphraseProvider + Send + Sync>Passphrase provider for key decryption during signing operations.
Defaults to [NoopPassphraseProvider] — set via .passphrase_provider(...) when
SDK functions need to sign with encrypted key material.
uuid_provider: Arc<dyn UuidProvider + Send + Sync>UUID generator port. Defaults to SystemUuidProvider (random v4 UUIDs).
Override with a deterministic stub in tests.
agent_signing: Arc<dyn AgentSigningPort + Send + Sync>Agent-based signing port for delegating operations to a running agent process.
Defaults to NoopAgentProvider — set via .agent_signing(...) when the
platform supports agent-based signing (Unix with auths-agent).
Implementations§
Source§impl AuthsContext
impl AuthsContext
Sourcepub fn builder() -> AuthsContextBuilder<Missing, Missing, Missing>
pub fn builder() -> AuthsContextBuilder<Missing, Missing, Missing>
Creates a builder for AuthsContext.
Required fields are registry, key_storage, and clock. Omitting any
of these produces a compile-time error — the build() method is only
available once all three are set.
Usage:
let ctx = AuthsContext::builder()
.registry(Arc::new(my_registry))
.key_storage(Arc::new(my_keychain))
.clock(Arc::new(SystemClock))
.build();