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
- Register — administrator creates the node entry in Hub
- Configure — node operator sets up credentials and connectivity
- Assign to projects — nodes are added to projects via
ProjectNodeassociations - 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
| Method | Endpoint | Description |
|---|---|---|
GET | /nodes | List all nodes |
GET | /nodes/:id | Get node details |
POST | /nodes | Register a new node |
PUT | /nodes/:id | Update node |
DELETE | /nodes/:id | Remove 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=+accountSecretThis field-level access control is enforced by the Node service's permission checker.
Related
- Realms — nodes are scoped to realms
- Approval Workflows — how nodes participate in approved projects