Skip to main content

HttpAuthority

Struct HttpAuthority 

Source
pub struct HttpAuthority { /* private fields */ }

Implementations§

Source§

impl HttpAuthority

Source

pub fn builder() -> HttpAuthorityBuilder

Start building an authority whose embedded kernel is backed by durable receipt and revocation stores. Stores must be attached before the kernel is wrapped in an Arc, which is what this builder does.

Source

pub fn new(keypair: Keypair, policy_hash: String) -> Self

Fail-closed constructor: no receipt or revocation store is attached and both ephemeral opt-ins are off. Existing callers compile unchanged, but the first mediated call now denies with a durable-persistence error until a durable store is wired through HttpAuthority::builder. This matches the kernel-backed lanes, which already deny when durable persistence is missing.

Source

pub fn new_ephemeral(keypair: Keypair, policy_hash: String) -> Self

Explicitly ephemeral constructor (in-memory receipt log and revocation store) for local scaffolds and tests that intend ephemerality.

Source

pub fn new_with_approval_store( keypair: Keypair, policy_hash: String, approval_store: Arc<dyn ApprovalStore>, ) -> Self

Fail-closed constructor with a caller-provided approval store. Like HttpAuthority::new, no receipt or revocation store is attached and both ephemeral opt-ins stay off, so a mediated side-effect call denies with a durable-persistence error until durable stores are wired through HttpAuthority::builder. Reach for HttpAuthority::new_ephemeral_with_approval_store_and_trusted_issuers when in-memory receipts and revocations are intended.

Source

pub fn new_with_approval_store_and_trusted_issuers( keypair: Keypair, policy_hash: String, approval_store: Arc<dyn ApprovalStore>, trusted_capability_issuers: Vec<PublicKey>, ) -> Self

Fail-closed constructor with a caller-provided approval store and trusted issuers. Side-effect calls deny until durable stores are attached; see HttpAuthority::new_with_approval_store.

Source

pub fn new_ephemeral_with_approval_store_and_trusted_issuers( keypair: Keypair, policy_hash: String, approval_store: Arc<dyn ApprovalStore>, trusted_capability_issuers: Vec<PublicKey>, ) -> Self

Explicitly ephemeral constructor with a caller-provided approval store and trusted issuers: the embedded kernel keeps its receipt log and revocation state in memory, and both are lost on restart. Ephemerality is opted into through the constructor name (unlike the fail-closed HttpAuthority::new_with_approval_store_and_trusted_issuers) for local scaffolds and tests that intend it.

Source

pub fn approval_store(&self) -> Arc<dyn ApprovalStore>

Source

pub fn set_execution_nonce_store( &mut self, config: ExecutionNonceConfig, store: Box<dyn ExecutionNonceStore>, ) -> Result<(), HttpAuthorityError>

Source

pub fn evaluate( &self, input: HttpAuthorityInput<'_>, ) -> Result<HttpAuthorityEvaluation, HttpAuthorityError>

Source

pub fn prepare( &self, input: HttpAuthorityInput<'_>, ) -> Result<PreparedHttpEvaluation, HttpAuthorityError>

Source

pub fn sign_decision_receipt( &self, prepared: &PreparedHttpEvaluation, ) -> Result<HttpReceipt, HttpAuthorityError>

Source

pub fn finalize_receipt( &self, prepared: &PreparedHttpEvaluation, response_status: u16, decision_receipt_id: Option<&str>, ) -> Result<HttpReceipt, HttpAuthorityError>

Source

pub fn sign_transport_deny_receipt( &self, input: TransportDenyInput<'_>, ) -> Result<HttpReceipt, HttpAuthorityError>

Sign a deny receipt for a request that was rejected before the kernel ever evaluated it (for example, an oversized HTTP body that the transport layer refused to buffer). The caller supplies the verdict and the surface-level identification fields directly because no kernel receipt id, content hash, or capability id exists yet. The receipt carries final HTTP status scope metadata so downstream auditors can distinguish it from in-band kernel decisions.

Source

pub fn finalize_decision_receipt( &self, decision_receipt: &HttpReceipt, response_status: u16, ) -> Result<HttpReceipt, HttpAuthorityError>

Trait Implementations§

Source§

impl Clone for HttpAuthority

Source§

fn clone(&self) -> HttpAuthority

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for HttpAuthority

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more