Skip to main content

Crate boatramp_node

Crate boatramp_node 

Source
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 Auth from 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 populates BlobArgs from its CLI ServeArgs.
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 of assemble() 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 resolved ServerOptions, wire the deploy store, handler runtime, compute reconcile loop, and domain-verify reconcile loop into a RunningNode ready to hand to a transport (serve_with & friends).