server: api/health.rs — GET /api/health returns uptime, session/agent counts

This commit is contained in:
Butterfly Dev 2026-04-07 03:09:08 +00:00
parent 843c7bbbf2
commit 40bf516264

21
server/src/api/health.rs Normal file
View File

@ -0,0 +1,21 @@
use actix_web::{web, HttpResponse};
use std::sync::Arc;
use crate::models::{ApiResponse, HealthInfo};
use crate::state::AppState;
/// `GET /api/health`
///
/// Returns server uptime, active sessions, connected agents and version.
pub async fn health(state: web::Data<Arc<AppState>>) -> HttpResponse {
let uptime = state.started_at.elapsed().as_secs();
let (sessions, agents) = state.stats();
let info = HealthInfo {
status: "ok".into(),
uptime_secs: uptime,
active_sessions: sessions,
connected_agents: agents,
version: env!("CARGO_PKG_VERSION").into(),
};
HttpResponse::Ok().json(ApiResponse::ok(info))
}