api.GetNodeResponse
node object
ID is the unique identifier for the node
identity object
Identity holds the cryptographic and provenance fields populated at enrollment. Nil until the node has been enrolled or migrated.
CredentialValidUntil is the wall-clock deadline after which the enrollment credential is no longer trusted. Enforced at every credential-issuance check. Zero value means no expiry (e.g. legacy bootstrap-token enrollments retained for backward compatibility).
EnrolledAt is when the identity row was first written.
EnrolledBy identifies the principal that triggered enrollment when
applicable (e.g. the operator who minted a bootstrap token, formatted as
"user:
EnrollmentClaims is the verifier-specific JSON of attributes extracted from the credential at enrollment, preserved as raw bytes so claim shape remains source-faithful for audit and downstream policy.
EnrollmentIdentityURI is the canonical identity string extracted from the verified credential at enrollment (e.g. an x509 SAN, an OIDC sub claim, a cloud instance ARN). Used to detect identity drift on refresh.
EnrollmentSourceID is a logical reference to the trust-anchor record that authorized this enrollment. Empty for bootstrap_token enrollments, which carry no anchor.
EnrollmentSourceType identifies the trust authority that validated the node at enrollment (e.g. bootstrap_token, x509_ca, oidc_issuer).
Possible values: [bootstrap_token, x509_ca, oidc_issuer, aws_iid, gcp_iit, azure_msi, tpm_ek, spire_bundle]
LastRevocationCheckAt is the timestamp of the most recent successful poll against the source's revocation mechanism (CRL/OCSP for x509, JWKS-availability for OIDC). Zero value means the source has no explicit revocation channel or has never been polled.
PublicKey is the node's locally-generated Ed25519 public key (32 bytes raw). The matching private key never leaves the node and is used to sign proof-of-possession on credential requests.
PublicKeyFingerprint is the lowercase hex SHA-256 of PublicKey, indexed for fast lookup. Set whenever PublicKey is set.
Status is the lifecycle state of this identity binding (active, suspended, or revoked). See NodeIdentityStatus for transition rules.
Possible values: [active, suspended, revoked]
StatusChangedAt is when Status was last updated.
StatusChangedBy identifies the actor that drove the most recent status
change (e.g. "user:
spec object
Spec contains the desired configuration and capabilities of the node
AgentVersion is the version of the agent software running on the node
Arch is the CPU architecture (amd64, arm64)
capabilities object
Capabilities defines what this node can do
Inputs are the data input types the node can handle (e.g., "syslog", "beats")
Outputs are the data output types the node can send to (e.g., "elasticsearch", "s3")
Processors are the data processors available (e.g., "grok", "json")
Runtimes are the execution runtimes available (e.g., "docker", "wasm")
HardwareFingerprint is a unique identifier for the hardware configuration
Hostname is the network hostname of the node
labels object
Labels are key-value pairs for node selection and filtering
Name is the human-readable name of the node
OS is the operating system (linux, windows, darwin)
status object
Status contains system-managed fields for the node
ConnectedSince is when the node connected in the current session
ConnectionState is the current connection state of the node
Possible values: [disconnected, connecting, connected, lost, deleted]
CreatedAt is when the node was first registered
DisconnectedSince is when the node last disconnected
LastHeartbeat is when the last heartbeat was received
Message provides additional context about the current state
resource_usage object
ResourceUsage contains the current resource usage metrics (updated with each heartbeat)
CPUPercent is the CPU usage percentage (0-100)
DiskCapacityBytes is the total disk capacity in bytes
DiskPercent is the disk usage percentage (0-100)
DiskUsedBytes is the disk space used in bytes
MemoryCapacityBytes is the total available memory in bytes
MemoryPercent is the memory usage percentage (0-100)
MemoryUsedBytes is the memory currently in use in bytes
Revision is incremented on each update for optimistic concurrency control
SessionID uniquely identifies the current connection session
UpdatedAt is when the node was last updated
{
"node": {
"id": "node-edge-us-west-01",
"spec": {
"agent_version": "1.2.0",
"arch": "amd64",
"hardware_fingerprint": "hw-abc123",
"hostname": "edge01.example.com",
"labels": {
"env": "production",
"gpu": "nvidia-t4",
"region": "us-west",
"role": "app-server"
},
"name": "edge-us-west-01",
"os": "linux"
},
"status": {
"connected_since": "2025-01-15T10:00:00Z",
"connection_state": "connected",
"created_at": "2025-01-10T08:00:00Z",
"last_heartbeat": "2025-01-15T12:45:30Z",
"message": "Healthy",
"resource_usage": {
"cpu_percent": 45.5,
"disk_capacity_bytes": 536870912000,
"disk_percent": 20,
"disk_used_bytes": 107374182400,
"memory_capacity_bytes": 17179869184,
"memory_percent": 25,
"memory_used_bytes": 4294967296
},
"revision": 42,
"session_id": "sess-xyz789",
"updated_at": "2025-01-15T12:45:30Z"
}
}
}