pub struct AppState {
pub registry: Arc<AnyRegistry>,
pub admin_api_key: String,
pub token_config: TokenConfig,
pub session_store: AnySessionStore,
pub policy_config: Arc<Sender<Arc<Option<PolicyConfig>>>>,
pub audit_sink: Option<Arc<AuditSink>>,
pub policy_file_path: Option<String>,
pub warning_threshold_pct: f64,
pub default_rate_limit_window_secs: u64,
pub metrics: Arc<ArbiterMetrics>,
pub max_concurrent_sessions_per_agent: Option<u64>,
pub admin_rate_limiter: Arc<AdminRateLimiter>,
}Expand description
Shared application state for the lifecycle API.
Fields§
§registry: Arc<AnyRegistry>§admin_api_key: String§token_config: TokenConfig§session_store: AnySessionStore§policy_config: Arc<Sender<Arc<Option<PolicyConfig>>>>§audit_sink: Option<Arc<AuditSink>>Audit sink for querying per-session stats on close.
policy_file_path: Option<String>Path to the policy TOML file (for hot-reload).
warning_threshold_pct: f64Percentage threshold for session budget/time warnings.
default_rate_limit_window_secs: u64Default rate-limit window duration in seconds for new sessions.
metrics: Arc<ArbiterMetrics>Shared metrics for gauge updates (active_sessions, registered_agents).
max_concurrent_sessions_per_agent: Option<u64>Maximum concurrent active sessions per agent (None = no limit). P0: Per-agent session cap to prevent session multiplication attacks.
admin_rate_limiter: Arc<AdminRateLimiter>Rate limiter for admin API endpoints. Shared via Arc so the Clone-based axum state sharing works correctly.
Implementations§
Source§impl AppState
impl AppState
Sourcepub fn new(admin_api_key: String) -> Self
pub fn new(admin_api_key: String) -> Self
Create a new application state with the given admin API key.
Sourcepub fn with_token_config(
admin_api_key: String,
token_config: TokenConfig,
) -> Self
pub fn with_token_config( admin_api_key: String, token_config: TokenConfig, ) -> Self
Create a new application state with custom token config.
Sourcepub fn with_admin_rate_limit(self, max_requests_per_minute: u64) -> Self
pub fn with_admin_rate_limit(self, max_requests_per_minute: u64) -> Self
Create a rate limiter with a custom max requests per minute.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for AppState
impl !RefUnwindSafe for AppState
impl Send for AppState
impl Sync for AppState
impl Unpin for AppState
impl UnsafeUnpin for AppState
impl !UnwindSafe 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
Mutably borrows from an owned value. Read more