bascule-workspace/Cargo.toml
Tyler King b1865a0627 initial: bascule v0.1.0
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).
2026-03-18 16:40:48 -04:00

86 lines
1.8 KiB
TOML

[workspace]
resolver = "2"
members = [
"bascule-proto",
"bascule-filter-core",
"bascule-node-agent",
"bascule-shell",
"bascule-tail",
"bascule-agent",
"bascule-core",
"bascule-gateway",
"ceremony-engine",
]
[workspace.dependencies]
# Async runtime
tokio = { version = "1", features = ["full"] }
async-trait = "0.1"
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_json_canonicalizer = "0.3"
serde_yaml = "0.9"
# gRPC
tonic = "0.12"
tonic-build = "0.12"
prost = "0.13"
prost-types = "0.13"
# Kubernetes
kube = { version = "0.98", features = ["runtime", "derive"] }
k8s-openapi = { version = "0.24", features = ["latest"] }
schemars = "0.8"
# TLS
rustls = { version = "0.23", features = ["ring"] }
# Crypto
sha2 = "0.10"
hmac = "0.12"
# Observability
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
# Common
uuid = { version = "1", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
thiserror = "2"
anyhow = "1"
clap = { version = "4", features = ["derive", "env"] }
reqwest = { version = "0.12", features = ["json"] }
dashmap = "6"
regex = "1"
which = "7"
dirs = "6"
rand = "0.8"
hex = "0.4"
jsonwebtoken = "9"
# SSH
russh = "0.49"
russh-keys = "0.49"
ssh-key = { version = "0.6", features = ["ed25519", "rand_core"] }
# Database
sqlx = { version = "0.8", features = [
"runtime-tokio",
"tls-native-tls",
"postgres",
] }
# HTTP
axum = "0.8"
tower-http = { version = "0.6", features = ["trace"] }
config = "0.14"
tokio-stream = "0.1"
tempfile = "3"
# Internal crate deps
bascule-filter-core = { path = "./bascule-filter-core" }
bascule-core = { path = "./bascule-core" }
bascule-proto = { path = "./bascule-proto" }
ceremony-engine = { path = "./ceremony-engine" }