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

42 lines
1.5 KiB
Markdown

# 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
```bash
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