Node management
Node states
Nodes in Jackadi can exist in one of three states:
| State | Description | Capabilities |
|---|---|---|
| Candidate | The initial state when an node first connects to the manager, not yet approved. | Cannot execute tasks, awaits approval. |
| Accepted | Nodes that have been approved and can execute tasks. | Can receive and execute tasks, full system access. |
| Rejected | Nodes that have been denied access to the system, e.g. duplicate nodes or manually rejected. | Cannot connect or execute tasks. |
List nodes
command
jack nodes listoutput
Accepted
• node1
• node2
Candidates
RejectedDetailed view
command
jack nodes list --verboseoutput
Accepted
• node1 (172.18.0.3 MIICIjANBgkqhkiG9w...EJEX0CAwEAAQ==)
• node2 (172.18.0.2 MIICIjANBgkqhkiG9w...HWGG0CAwEAAQ==)
Candidates
RejectedJSON output
command
jack nodes list --jsonoutput
{
"Accepted": [
{
"Id": "node1",
"Address": "172.18.0.3",
"Certificate": "MIICIjANBgkqhkiG9w...EJEX0CAwEAAQ==",
"IsConnected": true,
"Since": {
"Seconds": 1757578390,
"Nanos": 564026075
},
"LastMsg": {
"Seconds": 1757610077,
"Nanos": 274820288
},
"IsActive": true
},
{
"Id": "node2",
"Address": "172.18.0.2",
"Certificate": "MIICIjANBgkqhkiG9w...HWGG0CAwEAAQ==",
"IsConnected": true,
"Since": {
"Seconds": 1757578390,
"Nanos": 569209812
},
"LastMsg": {
"Seconds": 1757610077,
"Nanos": 274888616
},
"IsActive": true
}
],
"Candidates": null,
"Rejected": null
}Check node health
command
jack nodes healthoutput
Nodes
• node1 (connected, active)
• node2 (connected, active)node1is connected and had recent activity (e.g. a task has been executed).node2is connected and did not have any recent activity.node3is not connected to the manager anymore (e.g. due to service down, or network issue).
Detailed health view
command
jack nodes health --verboseoutput
Nodes
• node1
• state: connected, active
• connected since: September 11, 2025 at 08:13 UTC
• last active: September 11, 2025 at 17:02 UTC
• node2
• state: connected, active
• connected since: September 11, 2025 at 08:13 UTC
• last active: September 11, 2025 at 17:02 UTCAccept nodes
command
jack nodes accept <node_id>example
# Accept a candidate node
$ jack nodes accept node2output
node registered: id:"node2" address:"172.18.0.2" certificate:"MIICIjANBgkqhkiG9w...HWGG0CAwEAAQ=="Accept with specific configuration
command
jack nodes accept <node_id> --address <address> --certificate <cert>example
# Accept node with specific address and certificate
$ jack nodes accept node2 --address "192.168.1.101:8080" --certificate "node2.pem"output
node registered: id:"node2" address:"192.168.1.101:8080" certificate:"MIICIjANBgkqhkiG9w...HWGG0CAwEAAQ=="Reject nodes
command
jack nodes reject <node_id>example
# Reject a candidate node
$ jack nodes reject node5output
node rejected: node2Remove nodes
command
jack nodes remove <node_id>example
# Remove an accepted node
$ jack nodes remove node1output
node removed: node2Force accept rejected nodes
command
jack nodes accept <node_id> --forceexample
# Force accept a previously rejected node
$ jack nodes accept node4 --forceoutput
node registered: id:"node2" address:"172.18.0.2" certificate:"MIICIjANBgkqhkiG9w...HWGG0CAwEAAQ=="Auto-acceptance
For development or trusted environments, you can enable auto-acceptance on the manager:
command
manager --auto-accept-nodeThis automatically accepts new nodes when they connect without requiring manual approval.
Security considerations
- Production environments: Disable auto-accept and manually review all node connection requests.
- Rogue node protection: Jackadi prevents multiple nodes with the same ID - duplicates are automatically rejected.
- TLS certificates: Use certificates for secure node authentication in production.
- Regular auditing: Monitor node lists regularly to ensure only authorized nodes are connected.
Node workflow example
example
# 1. Start an node (from node machine)
$ node --id="web-server-01" --manager-address="manager.example.com:8080"
# 2. Check for new candidates (from manager machine)
$ jack nodes listoutput
Accepted
• node1
Candidates
• web-server-01
Rejectedexample
# 3. Accept the new node
$ jack nodes accept web-server-01output
node registered: id:"web-server-01" address:"172.18.0.4" certificate:"MIICIjANBgkqhkiG9w...HWGG0CAwEAAQ=="example
# 4. Verify the node is now accepted and connected
$ jack nodes healthoutput
Nodes
• node1 (connected, active)
• web-server-01 (connected, inactive)