NodeConfig class

Configuration for a NodeRuntime.

Constructors

NodeConfig({required Uri hubUri, required NodeId nodeId, Set<String> capabilities = const {}, Map<String, String> labels = const {}, Map<String, String> metadata = const {}, Map<String, dynamic> attributes = const {}, String agentVersion = 'unknown', Map<String, dynamic> headers = const {}, Duration heartbeatInterval = const Duration(seconds: 10), Duration registerTimeout = const Duration(seconds: 10), ReconnectPolicy? reconnect, SecurityContext? securityContext, bool onBadCertificate(X509Certificate cert, String host, int port)?, NodeActionHandler? onRequest, Future<Map<String, dynamic>> registerPayload()?, Future<void> onRegistered(NodeRegistered ack)?, Future<void> onHandshake(HandshakeConnection connection)?, Future<Map<String, dynamic>> heartbeatPayload()?, Duration? pingInterval, Future<Connection> connect()?, bool isTerminal(Object error)?, Future<NodeDescriptor> descriptorBuilder()?})
Creates a node configuration.

Properties

agentVersion → String
The node agent version string.
final
attributes → Map<String, dynamic>
Structured, JSON-typed application data advertised alongside metadata (see NodeDescriptor.attributes).
final
capabilities → Set<String>
Advertised capabilities.
final
connect → Future<Connection> Function()?
Opens the control connection, replacing the default wss:///ws:// dial to hubUri.
final
descriptor → NodeDescriptor
The descriptor advertised at registration.
no setter
descriptorBuilder → Future<NodeDescriptor> Function()?
Builds the descriptor to advertise, replacing the static one assembled from capabilities/labels/metadata/attributes.
final
hashCode → int
The hash code for this object.
no setterinherited
headers → Map<String, dynamic>
Headers sent on the WebSocket upgrade (e.g. Authorization).
final
heartbeatInterval → Duration
Fallback heartbeat interval if the hub does not advertise one.
final
heartbeatPayload → Future<Map<String, dynamic>> Function()?
Builds the application data piggy-backed on every Heartbeat (e.g. a resource-metrics snapshot), consumed hub-side by NodeGateway.onHeartbeat.
final
hubUri → Uri
The hub control endpoint (ws:///wss://…/_node).
final
isTerminal → bool Function(Object error)?
Whether the given error is unrecoverable, ending the runtime instead of retrying.
final
labels → Map<String, String>
Discovery labels.
final
metadata → Map<String, String>
Free-form metadata.
final
nodeId → NodeId
This node's id.
final
onBadCertificate → bool Function(X509Certificate cert, String host, int port)?
Escape hatch for accepting a self-signed certificate.
final
onHandshake → Future<void> Function(HandshakeConnection connection)?
Runs an in-band handshake over the freshly-opened control connection, before the node registers — the node-side counterpart of the hub's ConnectionAuthenticator (e.g. a challenge/response or signature exchange).
final
onRegistered → Future<void> Function(NodeRegistered ack)?
Called with the hub's NodeRegistered ack once registration succeeds — the counterpart of registerPayload (e.g. to persist a signed certificate). Runs on every (re)registration.
final
onRequest → NodeActionHandler?
Handles NodeRequest RPCs from the hub, if the node serves any.
final
pingInterval → Duration?
The WebSocket-level ping interval, for keepalive through idle-timing proxies. null (the default) disables it; the protocol's own Heartbeat is what the hub uses for liveness.
final
reconnect → ReconnectPolicy
The reconnection backoff policy.
final
registerPayload → Future<Map<String, dynamic>> Function()?
Builds the application payload submitted with NodeRegister (e.g. a certificate signing request), evaluated on every connection attempt so it can be refreshed across reconnects.
final
registerTimeout → Duration
How long to wait for a registration acknowledgement.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
securityContext → SecurityContext?
TLS trust for wss:// (e.g. a self-signed test cert).
final

Methods

buildDescriptor() → Future<NodeDescriptor>
The descriptor for this connection attempt: descriptorBuilder's, or the static descriptor.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited