Skip to main content

AuthsContext

Struct AuthsContext 

Source
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

Source

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();

Trait Implementations§

Source§

impl From<&AuthsContext> for CommitSigningContext

Source§

fn from(ctx: &AuthsContext) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V