Expand description
Node assembly for boatramp.
The boatramp binary was historically the only place that turned parsed
configuration into a running node (store + backends + handler runtime +
reconcile loops + router). That assembly is not reachable as a library, so an
embedder — or an in-process fidelity test — can’t exercise the same wiring the
boatramp serve binary runs (see PLAN-node-library).
This crate is the extraction target. It starts with the parsed config model
(config) and grows, incrementally and behaviour-preservingly, to host the
assemble(config) -> RunningNode path. The binary re-exports config under
its own crate::config, so moving the module here changes no call site.
It depends on the concrete backend crates (Docker, storage, …) that
boatramp-server deliberately does not, keeping boatramp-server a
backend-agnostic library while this crate is the batteries-included assembler.
Re-exports§
pub use error::Error;pub use node::assemble;pub use node::NodeInput;pub use node::RunningNode;
Modules§
- auth
- Control-plane auth assembly: build the
Authfrom the resolved root-key settings, and the fail-closed bind guard that refuses to expose an unauthenticated control plane on a public listener. - backends
- Backend-selection enums for a node’s blob + KV stores (node-library N2b).
- blobs
- Blob (object-store) backend construction: build the configured object store
(fs/S3/GCS/Azure, with optional blob-change notification provisioning) from a
resolved
BlobArgs. Each cloud backend is feature-gated; a disabled one returns an explanatory error rather than a misleading no-op. Moved out of the binary (node-library N2b.2c); the binary populatesBlobArgsfrom its CLIServeArgs. - compute
- Compute-backend assembly (moved from the binary — node-library N2).
- config
- Local configuration files (RON).
- error
- Assembly errors surfaced by the node-library helpers (moved out of the
binary’s
serve::Error, which absorbs them via#[from]). Scoped to the handler/SQL assembly today; grows as more ofassemble()moves here. - handlers
- WebAssembly handler-runtime assembly (moved from the binary — node-library N2b).
- node
- The node-graph assembly: given a built store (blobs + KV), a configured
Auth, and resolvedServerOptions, wire the deploy store, handler runtime, compute reconcile loop, and domain-verify reconcile loop into aRunningNodeready to hand to a transport (serve_with& friends).