bascule-oss/CLAUDE.md
Tyler King 6eb2de5dc0 docs: update all documentation for management API + dashboard
Updated 9 files to reflect:
  Management API (axum, port 9090) — embedded in bascule-server
  Dioxus dashboard components (WASM web target)
  6 crates in workspace (was 4)

README.md:
  Added Management API + Dashboard features section
  Added dashboard row to comparison table

docs/architecture.md:
  Updated diagram showing dual-listener architecture
  Added Management API section explaining Arc<SessionStore> sharing
  Updated crate table (6 crates)

docs/configuration.md:
  Added [dashboard] config section reference

docs/observability.md:
  Added Management API monitoring section with curl examples

docs/quickstart.md:
  Added Management API quick start section

docs/comparison.md:
  Added dashboard and TPM attestation rows

CLAUDE.md + CONTRIBUTING.md:
  Updated crate lists and feature flags

config/bascule.example.toml:
  Added [dashboard] section

All 17 README links verified valid. Build clean.

Signed-off-by: Tyler King <tking@guildhouse.dev>
2026-04-05 17:17:18 -04:00

1.5 KiB

CLAUDE.md — Context for Claude Code

What is this?

Bascule is an identity-aware SSH proxy. It authenticates operators via SSH keys or AI agent tokens, then connects them to a shell, remote host, or ephemeral container.

Workspace

  • crates/bascule-core/ — Library: SSH server, auth, session backends, hooks, session store
  • crates/bascule-server/ — Binary: SSH proxy + embedded management API (axum)
  • crates/bascule-auth-agent-id/ — Optional: Entra Agent ID auth provider
  • crates/bascule-shell/ — Binary: Identity-aware login shell with TPM attestation
  • crates/bascule-dashboard/ — Library: Dioxus UI components
  • crates/bascule-dashboard-web/ — Binary: WASM web dashboard target
  • charts/bascule/ — Helm chart for K8s deployment
  • images/ — Curated container images for operator environments

Key traits

  • AuthProvider (auth.rs) — implement to add auth methods
  • SessionHandler (hooks.rs) — implement to add session policy

Commands

cargo build --all            # Build everything
cargo test --all             # Run tests
cargo clippy --all-targets   # Lint
make ci                      # Full CI check
make dev                     # Run locally in dev mode

Feature flags (bascule-server)

  • dashboard — Management API on port 9090 (default on)
  • agent-id — Entra Agent ID auth

Rules

  • Zero substrate/chronicle/gsap dependencies
  • No unwrap() in production code
  • cargo fmt + cargo clippy must pass