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::NodeInput;
pub use node::RunningNode;
pub use node::assemble;

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).
default_scope
Substrate-complete default-scope readiness detectors (v0.31.0 Finding 8): observe whether the default project’s BLOB + LIBSQL data is still un-re-homed, so the serve guard + boatramp migrate --finalize reach the same bar as the KV version-guard. Substrate-complete default-scope readiness (v0.31.0 Finding 8).
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).
pg_client
Pure builders for the Postgres export/import client invocation (argv + PG* env); the credential non-leak rule (password in env, never argv) lives here. Pure builders for the SQL export/import client invocation (Postgres + MySQL) that the driver runs inside run_ephemeral: the argv and the process environment.
project_bundle
The BRPROJ project export/import bundle format (tar + JSON MANIFEST + per-member SHA-256). Dependency-light + testable in every build; the driver that fills it is feature-gated. The BRPROJ project export/import bundle — the on-disk format a project export writes and a project import reads.
s3_credential
Node-level base S3 credential sourcing from the [secrets] sealed store (#505). Node-level base S3 credential sourcing (#505).