bascule-oss/CONTRIBUTING.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

2.1 KiB

Contributing to Bascule

Development Setup

git clone https://github.com/your-org/bascule.git
cd bascule
cargo build --all
cargo test --all

Architecture

Bascule is a Rust workspace:

Crate Purpose
bascule-core Library — SSH server, auth, PTY, proxy, container, hooks, store
bascule-server Binary — SSH proxy + management API (axum)
bascule-auth-agent-id Optional — Entra Agent ID auth
bascule-shell Binary — Identity-aware login shell with TPM
bascule-dashboard Library — Dioxus UI components
bascule-dashboard-web Binary — WASM web dashboard target

Testing

cargo test --all

Code Style

  • cargo fmt before committing
  • cargo clippy must pass
  • No unwrap() in production code
  • All public items need doc comments

Pull Request Process

  1. Create a feature branch
  2. Ensure make ci passes
  3. Update docs if adding features
  4. Submit PR against main

Commit Messages

Format: type: description Types: feat, fix, docs, chore, refactor, test

Developer Certificate of Origin (DCO)

All contributions must be signed off under the Developer Certificate of Origin (DCO Version 1.1).

Every commit must include a Signed-off-by line:

git commit -s -m "feat: my contribution"
# Result includes: Signed-off-by: Your Name <your.email@example.com>

What DCO means

  • You certify you have the right to submit the contribution
  • Your contribution is licensed under Apache 2.0
  • You retain copyright to your contribution
  • You do NOT assign ownership to Guildhouse

Corporate contributions

If contributing on behalf of your employer, ensure your employer permits the contribution under Apache 2.0.

Why DCO (not CLA)

  • DCO doesn't assign rights — you keep your copyright
  • DCO is lightweight — one line per commit, no legal review
  • DCO is standard — used by Linux, Kubernetes, CNCF projects

See GOVERNANCE.md for the full IP and dispute resolution framework.

License

By contributing, you agree your contributions are licensed under Apache 2.0.