pub struct AppState {Show 13 fields
pub services: Arc<HashMap<String, Arc<dyn ServiceHandler>>>,
pub routes: Arc<HashMap<String, Vec<RouteDefinition>>>,
pub default_region: String,
pub default_account_id: String,
pub event_bus: EventBus,
pub request_count: Arc<AtomicU64>,
pub start_time: Instant,
pub authz: Arc<AuthzEngine>,
pub body_stores: Arc<Vec<BodyStoreHandle>>,
pub data_dir: Option<Arc<PathBuf>>,
pub events: RequestEventBus,
pub request_details: RequestDetailStore,
pub chaos: Arc<ChaosEngine>,
}Expand description
Shared application state passed to all request handlers.
Fields§
§services: Arc<HashMap<String, Arc<dyn ServiceHandler>>>Registered service handlers, keyed by signing name.
routes: Arc<HashMap<String, Vec<RouteDefinition>>>Route definitions for REST-protocol services, keyed by signing name.
default_region: StringDefault AWS region.
default_account_id: StringDefault AWS account ID.
event_bus: EventBusInternal event bus for cross-service fan-out (SNS→SQS, etc.).
request_count: Arc<AtomicU64>Total number of AWS API requests handled since startup.
start_time: InstantServer startup time.
authz: Arc<AuthzEngine>IAM authorization engine — opt-in via AWSIM_IAM_ENFORCE=true.
body_stores: Arc<Vec<BodyStoreHandle>>Per-service BodyStore handles, populated when persistence is enabled.
data_dir: Option<Arc<PathBuf>>Persistence root directory, when persistence is enabled.
events: RequestEventBusBroadcast bus for per-request observability events (consumed by SSE).
request_details: RequestDetailStoreRing buffer of recent per-request detail captures (headers + bodies).
chaos: Arc<ChaosEngine>Chaos engine — empty by default, populated by admin endpoints. Evaluated before dispatch to inject synthetic errors / latency.