Files
vhaudiquet c1059c23e0 build: the cloud frontend stands alone
The Durable Object, the sandbox daemon, and their deploy assets
leave the rhema workspace for a repository of their own. The DO
was already a deployment artifact (publish = false, worker feature
wasm-only), and rhema-sandbox-server's only consumer was the image
beside it — both are product, not framework. The harness and the
seam stay behind: rhema-cloud-agent and the sandbox family join
the rhema repository's publish list, and this tree consumes them
from crates.io at 0.2.6, the same arrangement the claw keeps its
framework crates under.

The sandboxd image build carries the fix its extraction needed:
the old Dockerfile still staged the claw's workspace (claw and
tools manifests, integrations globs, the vendored crossterm) and
missed rhema-provider-registry's manifest entirely. The manifest
stage is now this workspace's two members, fetched from the
registry.

Not yet buildable: the rhema 0.2.6 batch (rhema-sandbox,
-local, -http, rhema-cloud-agent) must publish first — then one
cargo check generates Cargo.lock and CI goes green.
2026-11-13 12:05:30 +01:00

58 lines
1.8 KiB
TOML

[package]
name = "rhema-sandbox-server"
description = "`rhema-sandboxd`: the rhema sandbox wire protocol served from a host, one root directory per session"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
[dependencies]
# The seam, the protocol, and `FsRoot` (feature `spawn`)
rhema-sandbox = { version = "0.2.6", features = ["spawn"] }
# The exec and seed routes run on the local backend, one `LocalSandbox`
# per request
rhema-sandbox-local = { version = "0.2.6" }
# The daemon's HTTP surface: axum for the routes
axum = { workspace = true }
# The binary's args; the version pin mirrors the rest of the workspace's
clap = { version = "4.5", features = ["derive"] }
# File contents cross the put/get routes base64
base64 = "0.22"
# The error replies and the parsed request bodies
serde = { workspace = true }
serde_json = { workspace = true }
# Serving (rt-multi-thread, sockets) and the exec route's child
tokio = { workspace = true, features = [
"rt-multi-thread",
"net",
"macros",
"process",
"io-util",
"time",
"fs",
] }
[dev-dependencies]
# The loopback test drives the daemon with a raw HTTP/1.1 client
tokio = { workspace = true }
# The loopback test drives the real client over the real wire
rhema-sandbox-http = { version = "0.2.6" }
# The daemon roots in throwaway directories
tempfile = "3"
# `probe_healthz` speaks raw HTTP to `/healthz` — outside the protocol
# client — so the token middleware is tested on the wire itself; the
# pin and features mirror rhema-sandbox-http's native transport
reqwest = { version = "0.12", default-features = false, features = [
"json",
"rustls-tls",
] }
[[bin]]
name = "rhema-sandboxd"
path = "src/bin/rhema-sandboxd.rs"
[lints]
workspace = true