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>
84 lines
2.1 KiB
Markdown
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.
|