pub struct AppState {
pub fleet: Arc<dyn FleetProvider>,
pub admin: Option<Arc<dyn FleetAdmin>>,
pub store: Arc<dyn Store>,
pub bus: Arc<dyn EventBus>,
pub auth: Arc<AuthState>,
pub automations: Option<Arc<AutomationEngine>>,
}Expand description
Shared application state handed to every handler. Backend-agnostic (#76):
the control plane is a FleetProvider, the workspace-registry plane an
optional FleetAdmin (None under k8s → those routes 405), and
observability (history/SSE) reads the shared Store/EventBus directly.
Fields§
§fleet: Arc<dyn FleetProvider>The fleet control plane (ensure/stop/restart/snapshot/readiness/metrics/
remove_agent/send_input). LocalFleet or K8sFleet.
admin: Option<Arc<dyn FleetAdmin>>The workspace-registry/config plane. Some for local; None for k8s.
store: Arc<dyn Store>Shared durable event store — agent history reads route here.
bus: Arc<dyn EventBus>Shared event bus — SSE subscribe routes here.
auth: Arc<AuthState>Inbound auth configuration (#2).
automations: Option<Arc<AutomationEngine>>The automation runtime (#220). None when the backend has no shared
config store to hold automations in — those routes then 405 rather
than pretending to schedule something nothing will fire.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for AppState
impl !UnwindSafe for AppState
impl Freeze for AppState
impl Send for AppState
impl Sync for AppState
impl Unpin for AppState
impl UnsafeUnpin for AppState
Blanket Implementations§
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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 more