bascule-oss/crates/bascule-core
Tyler King 72fa8cee92 feat: embedded management API (axum, port 9090)
Same binary, same process, two listeners:
  Port 2222: SSH proxy (russh)
  Port 9090: Management API (axum)

API endpoints:
  GET /api/sessions         — active sessions
  GET /api/sessions/history — recent history (last 500)
  GET /api/stats            — aggregate analytics
  GET /api/health           — server health + version
  GET /api/info             — server capabilities

Session tracking:
  Arc<SessionStore> shared between SSH handler and API
  In-memory: active sessions + 500-session history ring buffer
  Tracks: auth breakdown, peak concurrent, TPM attested %

Feature flag:
  --features dashboard (default on) — includes axum + tower-http
  --no-default-features — SSH-only, no HTTP dependency

Config:
  [dashboard] section: enabled, listen address

All smoke tests pass. 0 substrate deps.

Signed-off-by: Tyler King <tking@guildhouse.dev>
2026-04-05 15:09:26 -04:00
..
src feat: embedded management API (axum, port 9090) 2026-04-05 15:09:26 -04:00
Cargo.toml feat: bascule-shell — identity-aware shell with TPM attestation 2026-04-05 09:47:46 -04:00