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>
42 lines
1.5 KiB
Markdown
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
|