Skip to main content

TenantRuntime

Struct TenantRuntime 

Source
pub struct TenantRuntime { /* private fields */ }
Expand description

Runtime bundle for a tenant pack.

Implementations§

Source§

impl TenantRuntime

Source

pub async fn load( pack_path: &Path, config: Arc<HostConfig>, mocks: Option<Arc<MockLayer>>, archive_source: Option<&Path>, digest: Option<String>, wasi_policy: Arc<RunnerWasiPolicy>, session_host: Arc<dyn SessionHost>, session_store: Arc<dyn SessionStore>, state_store: Arc<dyn StateStore>, state_host: Arc<dyn StateHost>, secrets_manager: Arc<dyn SecretsManager>, ) -> Result<Arc<TenantRuntime>, Error>

Source

pub async fn load_revision( pack_refs: &[RevisionPackRef], config: Arc<HostConfig>, mocks: Option<Arc<MockLayer>>, wasi_policy: Arc<RunnerWasiPolicy>, session_host: Arc<dyn SessionHost>, session_store: Arc<dyn SessionStore>, state_store: Arc<dyn StateStore>, state_host: Arc<dyn StateHost>, secrets_manager: Arc<dyn SecretsManager>, deployment_id: DeploymentId, bundle_id: BundleId, revision_id: RevisionId, customer_id: Option<String>, runtime_configs_by_pack_id: &BTreeMap<String, Arc<BTreeMap<String, Value>>>, runtime_refs_by_pack_id: &BTreeMap<String, Arc<BTreeMap<String, String>>>, runtime_ref_resolver: Option<Arc<dyn RuntimeRefResolver>>, ) -> Result<Arc<TenantRuntime>, Error>

Build a revision-keyed runtime from its pinned pack list (the resolved pack_list of a deployment revision). The first entry is the main pack; the rest are overlays.

Fails closed if any pack file no longer matches the digest the deployment pinned it under — defending the stage→warm window against a swapped or stale cache path. The verified digests are threaded into the runtime so admin status, traces, and contract hashes report the real content (parity with the legacy index path). The rollout telemetry identity is derived from deployment_id / bundle_id / revision_id / customer_id, so the engine’s attribution cannot drift from the key the runtime is later inserted under.

Source

pub async fn from_packs( config: Arc<HostConfig>, packs: Vec<(Arc<PackRuntime>, Option<String>)>, mocks: Option<Arc<MockLayer>>, session_host: Arc<dyn SessionHost>, session_store: Arc<dyn SessionStore>, state_store: Arc<dyn StateStore>, state_host: Arc<dyn StateHost>, secrets_manager: Arc<dyn SecretsManager>, ) -> Result<Arc<TenantRuntime>, Error>

Source

pub fn tenant(&self) -> &str

Source

pub fn config(&self) -> &Arc<HostConfig>

Source

pub fn operator_registry(&self) -> &OperatorRegistry

Source

pub fn operator_metrics(&self) -> &OperatorMetrics

Source

pub fn contract_cache(&self) -> &ContractCache

Source

pub fn contract_cache_stats(&self) -> ContractCacheStats

Source

pub fn main_pack(&self) -> &Arc<PackRuntime>

Source

pub fn pack(&self) -> Arc<PackRuntime>

Source

pub fn overlays(&self) -> Vec<Arc<PackRuntime>>

Source

pub fn all_packs(&self) -> &[Arc<PackRuntime>]

All packs in declaration order: main pack at index 0, overlays after. Borrowed slice — no Arc clones, no allocation. Use this when you only need to iterate the full pack list; prefer pack/overlays when you need to hand out owned Arcs downstream.

Source

pub fn pack_digests(&self) -> &[Option<String>]

Resolved content digest of each loaded pack, index-aligned with the pack list. Some for revision runtimes (verified at load) and the legacy index path; None only when a digest was unavailable.

Source

pub fn engine(&self) -> &Arc<FlowEngine>

Source

pub fn state_machine(&self) -> &Arc<StateMachineRuntime>

Source

pub fn session_store(&self) -> &Arc<dyn SessionStore>

Shared session store. M1.5: lets apply_welcome_flow_override build a FlowResumeStore against the SAME bucket the state machine will read/write — important under revision mode where each revision is given its own store via load_revision.

Source

pub fn http_client(&self) -> &Client

Source

pub fn oauth_config(&self) -> Option<OAuthBrokerConfig>

Source

pub fn digest(&self) -> Option<&str>

Source

pub fn overlay_digests(&self) -> Vec<Option<String>>

Source

pub fn required_secrets(&self) -> Vec<SecretRequirement>

Source

pub fn missing_secrets(&self) -> Vec<SecretRequirement>

Source

pub fn mocks(&self) -> Option<&Arc<MockLayer>>

Source

pub fn register_timers(&self, handles: Vec<JoinHandle<()>>)

Source

pub fn get_secret(&self, key: &str) -> Result<String, Error>

Source

pub fn build_events_email_execution_plan( &self, tenant: &TenantCtx, request: &EmailSendRequest, ) -> Result<EmailExecutionPlan, Error>

Source

pub async fn execute_events_email_request( &self, access_token: &str, request: &EmailSendRequest, ) -> Result<(), Error>

Source

pub async fn execute_events_email_with_oauth( &self, tenant: &TenantCtx, request: &EmailSendRequest, ) -> Result<(), Error>

Source

pub fn pack_for_component( &self, component_ref: &str, ) -> Option<Arc<PackRuntime>>

Source

pub fn pack_for_component_with_digest( &self, component_ref: &str, ) -> Option<(Arc<PackRuntime>, Option<String>)>

Source

pub fn resolve_component( &self, component_ref: &str, ) -> Option<ResolvedComponent>

Trait Implementations§

Source§

impl Drop for TenantRuntime

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. 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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Pointee for T

Source§

type Pointer = u32

Source§

fn debug( pointer: <T as Pointee>::Pointer, f: &mut Formatter<'_>, ) -> Result<(), Error>

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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

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