Bascule shell runtime workspace — governed shell access layer for Substrate/Guildhouse FFC deployments. Crates: - bascule-agent: node agent with SSH server + command filtering - bascule-core: audit, grant engine, ceremony types, session - bascule-filter-core: log line filtering (stdio protocol) - bascule-gateway: OIDC auth, session management, SAT validation - bascule-node-agent: k8s DaemonSet agent (pod watcher, BPF manager) - bascule-proto: protobuf definitions - bascule-shell: governed SSH shell (commands, elevation, REPL) - bascule-tail: chronicle log tail + fanout - ceremony-engine: ceremony lifecycle (6 types + request/resolution) 172 tests passing. Implements SBS-SPEC-0001 shell model. Reference impl for SPEC-SHELLOPS-0001 Layer 1 (root shell).
62 lines
1.4 KiB
TOML
62 lines
1.4 KiB
TOML
[package]
|
|
name = "bascule-shell"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "Bascule governance shell — CLI for governed cluster access"
|
|
|
|
[lib]
|
|
name = "bascule_shell"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "bascule"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
bascule-core = { workspace = true }
|
|
bascule-proto = { workspace = true }
|
|
|
|
# Cross-workspace path deps — Guildhouse services.
|
|
# Future: extract to standalone crates.
|
|
registry-protocol = { path = "../../guildhouse/services/registry-protocol" }
|
|
# workspace::v1 proto for attach command (workspace-controller gRPC)
|
|
guildhouse-proto = { path = "../../guildhouse/services/guildhouse-proto" }
|
|
|
|
# CLI
|
|
clap = { workspace = true }
|
|
|
|
# Command module discovery
|
|
which = { workspace = true }
|
|
|
|
# gRPC
|
|
tonic = { workspace = true }
|
|
|
|
# Async
|
|
tokio = { workspace = true }
|
|
async-trait = { workspace = true }
|
|
|
|
# HTTP (for OIDC token exchange)
|
|
reqwest = { workspace = true }
|
|
|
|
# Serialization
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
serde_yaml = { workspace = true }
|
|
|
|
# Observability
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true }
|
|
|
|
# SSH
|
|
russh = { workspace = true }
|
|
russh-keys = { workspace = true }
|
|
ssh-key = { workspace = true }
|
|
rand = { workspace = true }
|
|
|
|
# Common
|
|
chrono = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
uuid = { workspace = true }
|
|
rustls = { workspace = true }
|
|
dirs = { workspace = true }
|