Files
clawmates/crates/tc-sandbox/Cargo.toml
T
Omar SobhandClaude Fable 5 a26939d7bc Plan hardening: socket-proxy allowlist, gateway load test, offline verify
- The compose server NEVER sees the raw Docker socket (plan risk #5):
  tecnativa/docker-socket-proxy on an isolated engine_net with exactly
  CONTAINERS/POST/EXEC/DELETE/VERSION allowed; server reaches it via
  DOCKER_HOST. DockerDriver honors DOCKER_HOST (connect_to). Proven by a
  REAL proxy test: full sandbox lifecycle works through the allowlist
  while /networks, /secrets, and /images all 403 — the blast-radius cap
  if the server is ever owned. (This also fixes compose deployments,
  where sandbox provisioning previously had no engine access at all.)
- Gateway load test (plan P6): 40 concurrent SSE streams against one
  server — every run completes with the full §13 event vocabulary,
  every journal strictly monotonic, every resumeFrom=0 replay byte-equal
  to its live stream
- release.yml: SBOMs (syft, spdx-json) for all four images shipped
  INSIDE the signed bundle; final verification now runs in a
  --network none container — proving the customer's verify path needs
  no internet, not just claiming it

159 Rust tests.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-06-10 10:50:55 -05:00

33 lines
1.0 KiB
TOML

[package]
name = "tc-sandbox"
version = "0.1.0"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
publish.workspace = true
[dependencies]
async-trait = "0.1"
bollard = "0.19"
futures = "0.3"
k8s-openapi = { version = "0.25", features = ["latest"], optional = true }
kube = { version = "1", features = ["client", "rustls-tls", "ws"], default-features = false, optional = true }
rustls = { version = "0.23", features = ["ring"], default-features = false, optional = true }
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true }
[features]
# The Kubernetes driver (kube-rs is a heavy dependency tree; the Docker
# driver alone serves dev and the air-gapped target).
k8s = ["dep:kube", "dep:k8s-openapi", "dep:rustls"]
# Live kind-cluster tests for the K8s driver (dedicated CI job).
k8s-tests = ["k8s"]
[dev-dependencies]
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
[lints]
workspace = true