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.
This commit is contained in:
commit
c1059c23e0
26 files changed
+3304
No files matched your search
@@ -0,0 +1,57 @@
|
||||
[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
|
||||
Reference in new issue
Block a user