Skip to content

Node Management

Nodes represent compute resources (typically at hospitals or research institutions) that participate in federated analyses. Administrators register and manage nodes through the Hub.

Registration

Nodes are registered in the Hub with:

  • A unique name and identifier
  • A public key for secure communication
  • Realm assignment (organizational scope)
  • Registry project association (for receiving analysis containers)

Node Lifecycle

  1. Register — administrator creates the node entry in Hub
  2. Configure — node operator sets up credentials and connectivity
  3. Assign to projects — nodes are added to projects via ProjectNode associations
  4. Execute analyses — the worker distributes analysis containers to assigned nodes

Registry Connection

A node pushes and pulls analysis images through its own registry project — a dedicated project in the docker registry with its own robot account. This is managed on the node's Registry tab (/admin/nodes/:id/registry):

  • Connect — pick a registry and connect. Hub provisions a registry project and robot account for the node and links them in the registry.
  • Disconnect — clears the node's registry assignment and removes its registry project together with the robot account. The node itself is kept; reconnecting provisions a new project, so the node has to pull fresh credentials.

The tab also shows the node's current registry credentials (host, project, account name and secret) and a secondary link/unlink action that repairs the registry-side state of an already-provisioned project without changing the node's assignment.

Deleting a registry or a registry project never deletes the nodes referencing it — those nodes are simply left unassigned and can be reconnected.

API Endpoints

MethodEndpointDescription
GET/nodesList all nodes
GET/nodes/:idGet node details
POST/nodesRegister a new node
PUT/nodes/:idUpdate node
DELETE/nodes/:idRemove node

Credential Management

Each node has an accountSecret field that is not returned by default in API responses. To retrieve it, the requesting user must have the appropriate permission and explicitly request the field:

GET /nodes/:id?fields=+accountSecret

This field-level access control is enforced by the Node service's permission checker.