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

84 lines
2.1 KiB
Markdown

# Contributing to Bascule
## Development Setup
```bash
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
```bash
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) (DCO Version 1.1).
Every commit must include a `Signed-off-by` line:
```bash
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](GOVERNANCE.md) for the full IP and dispute resolution framework.
## License
By contributing, you agree your contributions are licensed under Apache 2.0.