pub struct TenantRuntime { /* private fields */ }Expand description
Runtime bundle for a tenant pack.
Implementations§
Source§impl TenantRuntime
impl TenantRuntime
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>
Sourcepub 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>
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.
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>
pub fn tenant(&self) -> &str
pub fn config(&self) -> &Arc<HostConfig> ⓘ
pub fn operator_registry(&self) -> &OperatorRegistry
pub fn operator_metrics(&self) -> &OperatorMetrics
pub fn contract_cache(&self) -> &ContractCache
pub fn contract_cache_stats(&self) -> ContractCacheStats
pub fn main_pack(&self) -> &Arc<PackRuntime> ⓘ
pub fn pack(&self) -> Arc<PackRuntime> ⓘ
pub fn overlays(&self) -> Vec<Arc<PackRuntime>>
Sourcepub fn all_packs(&self) -> &[Arc<PackRuntime>]
pub fn all_packs(&self) -> &[Arc<PackRuntime>]
Sourcepub fn pack_digests(&self) -> &[Option<String>]
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.
pub fn engine(&self) -> &Arc<FlowEngine> ⓘ
pub fn state_machine(&self) -> &Arc<StateMachineRuntime> ⓘ
Sourcepub fn session_store(&self) -> &Arc<dyn SessionStore> ⓘ
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.
pub fn http_client(&self) -> &Client
pub fn oauth_config(&self) -> Option<OAuthBrokerConfig>
pub fn digest(&self) -> Option<&str>
pub fn overlay_digests(&self) -> Vec<Option<String>>
pub fn required_secrets(&self) -> Vec<SecretRequirement>
pub fn missing_secrets(&self) -> Vec<SecretRequirement>
pub fn mocks(&self) -> Option<&Arc<MockLayer>>
pub fn register_timers(&self, handles: Vec<JoinHandle<()>>)
pub fn get_secret(&self, key: &str) -> Result<String, Error>
pub fn build_events_email_execution_plan( &self, tenant: &TenantCtx, request: &EmailSendRequest, ) -> Result<EmailExecutionPlan, Error>
pub async fn execute_events_email_request( &self, access_token: &str, request: &EmailSendRequest, ) -> Result<(), Error>
pub async fn execute_events_email_with_oauth( &self, tenant: &TenantCtx, request: &EmailSendRequest, ) -> Result<(), Error>
pub fn pack_for_component( &self, component_ref: &str, ) -> Option<Arc<PackRuntime>>
pub fn pack_for_component_with_digest( &self, component_ref: &str, ) -> Option<(Arc<PackRuntime>, Option<String>)>
pub fn resolve_component( &self, component_ref: &str, ) -> Option<ResolvedComponent>
Trait Implementations§
Source§impl Drop for TenantRuntime
impl Drop for TenantRuntime
Auto Trait Implementations§
impl !Freeze for TenantRuntime
impl !RefUnwindSafe for TenantRuntime
impl !UnwindSafe for TenantRuntime
impl Send for TenantRuntime
impl Sync for TenantRuntime
impl Unpin for TenantRuntime
impl UnsafeUnpin for TenantRuntime
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request