pub struct AppState {Show 15 fields
pub db: DbPool,
pub config_path: PathBuf,
pub data_dir: PathBuf,
pub event_tx: Sender<WsEvent>,
pub api_token: String,
pub passphrase_hash: RwLock<Option<String>>,
pub bind_host: String,
pub bind_port: u16,
pub login_attempts: Mutex<HashMap<IpAddr, (u32, Instant)>>,
pub runtimes: Mutex<HashMap<String, Runtime>>,
pub content_generators: Mutex<HashMap<String, Arc<ContentGenerator>>>,
pub circuit_breaker: Option<Arc<CircuitBreaker>>,
pub watchtower_cancel: Option<CancellationToken>,
pub content_sources: ContentSourcesConfig,
pub deployment_mode: DeploymentMode,
}Expand description
Shared application state accessible by all route handlers.
Fields§
§db: DbPoolSQLite connection pool.
config_path: PathBufPath to the configuration file.
data_dir: PathBufData directory for media storage (parent of config file).
event_tx: Sender<WsEvent>Broadcast channel sender for real-time WebSocket events.
api_token: StringLocal bearer token for API authentication.
passphrase_hash: RwLock<Option<String>>Bcrypt hash of the web login passphrase (None if not configured).
bind_host: StringHost address the server is bound to.
bind_port: u16Port the server is listening on.
login_attempts: Mutex<HashMap<IpAddr, (u32, Instant)>>Per-IP login attempt tracking for rate limiting: (count, window_start).
runtimes: Mutex<HashMap<String, Runtime>>Per-account automation runtimes (keyed by account_id).
content_generators: Mutex<HashMap<String, Arc<ContentGenerator>>>Per-account content generators for AI assist endpoints.
circuit_breaker: Option<Arc<CircuitBreaker>>Optional circuit breaker for X API rate-limit protection.
watchtower_cancel: Option<CancellationToken>Cancellation token for the Watchtower filesystem watcher (None if not running).
content_sources: ContentSourcesConfigContent sources configuration for the Watchtower.
deployment_mode: DeploymentModeDeployment mode (desktop, self_host, or cloud).
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
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 more