NodeConfig class

Configuration for a NodeRuntime.

Constructors

NodeConfig({required Uri hubUri, required NodeId nodeId, required CredentialProvider credentials, required ShellBackend backend, NodeCapabilities? capabilities, String displayName = '', Map<String, String> labels = const {}, SecurityContext? securityContext, bool onBadCertificate(X509Certificate cert, String host, int port)?, Duration heartbeatInterval = const Duration(seconds: 10), Duration pingInterval = const Duration(seconds: 20), ReconnectPolicy? reconnectPolicy, String agentVersion = omnyShellVersion, bool driveEnabled = true, bool tunnelEnabled = true, List<String> driveRoots = const [], String? gitCredentialsHome, String? home, bool autoDetachOnDisconnect = true, Duration? autoDetachTimeout, Duration cleanupInterval = const Duration(minutes: 1), Clock clock = const SystemClock(), void logger(String message)?})
Creates a node configuration.

Properties

agentVersion → String
The OmnyShell build version this node advertises about itself, reported in PlatformInfo.agentVersion and shown to clients (e.g. Agent: … in :info). Defaults to omnyShellVersion; SDK embedders may override it with their own agent string.
final
autoDetachOnDisconnect → bool
Whether a client connection that drops (network loss, crash, terminal closed) automatically detaches its session — keeping the PTY, shell and child processes alive for a later resume — instead of terminating it. Reuses the same detach path as the :detach command. Default true.
final
autoDetachTimeout → Duration?
Expiry applied to sessions detached automatically on disconnect, or null to keep them indefinitely. (Explicit :detach <timeout> overrides this.)
final
backend → ShellBackend
Starts sessions on behalf of authorized clients.
final
capabilities → NodeCapabilities
Advertised capabilities.
final
cleanupInterval → Duration
How often the cleanup service scans for expired detached sessions.
final
clock → Clock
The clock (overridable in tests).
final
credentials → CredentialProvider
How the node authenticates to the Hub.
final
displayName → String
A human-friendly display name.
final
driveEnabled → bool
Whether this node accepts OmnyDrive mount sessions (SessionMode.drive).
final
driveRoots → List<String>
Absolute path prefixes a mount may target. Empty allows any path (the operator is trusted, as with exec). A non-empty list rejects mounts whose resolved path is not under one of these roots.
final
gitCredentialsHome → String?
Overrides the home directory used to load/save this node's git credentials (<home>/.omnyshell/git-credentials.json). null uses the process default (omnyshellHome). Mainly for tests and multi-node isolation.
final
hashCode → int
The hash code for this object.
no setterinherited
heartbeatInterval → Duration
How often to send heartbeats.
final
home → String?
Overrides the home directory this node persists its UID under (<home>/.omnyshell/node.uid). null uses the process default (omnyshellHome).
final
hubUri → Uri
The Hub WebSocket URL (wss://host:port/...).
final
labels → Map<String, String>
Operator labels (drive discovery and authorization policy).
final
logger → void Function(String message)?
Optional diagnostic logger.
final
nodeId → NodeId
This node's stable id.
final
onBadCertificate → bool Function(X509Certificate cert, String host, int port)?
Optional TLS certificate override (pinning / self-signed test certs). null enforces standard verification.
final
pingInterval → Duration
WebSocket ping interval used to detect a silently-dropped Hub connection. If a ping goes unanswered within this interval the socket closes, which drives reconnection.
final
reconnectPolicy → ReconnectPolicy
The reconnect backoff policy.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
securityContext → SecurityContext?
TLS trust roots for verifying the Hub certificate. null uses the system trust store.
final
tunnelEnabled → bool
Whether this node accepts tunnel connections (SessionMode.tunnel) — i.e. dials a local target and bridges bytes when the Hub forwards a public TCP connection. Default true.
final

Methods

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