API reference
Runner heartbeat
A runner says it is online; the answer lists the leases offered to it, the heartbeat interval (20 s) and the lease time (90 s).
Needs scope coordinator:runner.
bearerAuthorizationBearer <JWT>An access token from the identity provider: a person's, or a customer's from the client credentials grant with an API key (developers.inorbit.hr). The gateway verifies it; the audience is iohr-api.
runner_id*stringThe runner's id, rnr_ and a ULID.
iohr.coordinator.v1.RunnerHeartbeatRequest; path variables override their fields
application/json- body
iohr.coordinator.v1.RunnerHeartbeatRequest
account_id?stringcapabilities?iohr.coordinator.v1.RunnerCapabilities
capacity?integerint32kinds?array<string>providers?array<>runner_id?stringsignals?iohr.coordinator.v1.HostSignals
version?stringwait_seconds?integerint32iohr.coordinator.v1.RunnerHeartbeatResponse
application/json- response
iohr.coordinator.v1.RunnerHeartbeatResponse
heartbeat_interval_seconds*integerint32lease_seconds*integerint32offered*array<>runner?iohr.coordinator.v1.Runner
waited_seconds*integerint32import { ApiError, Public } from "@inorbithr/sdk";// Reads INORBIT_TOKEN, or INORBIT_KEY_ID and INORBIT_KEY_SECRET.const api = Public.fromEnv();try { const { value } = await api.coordinator.runnerHeartbeat("<runner_id>", { kinds: ["<kinds>"], version: "<version>", }); console.log(value);} catch (e) { if (!(e instanceof ApiError)) throw e; console.error(`${e.code}: ${e.problem} (request id ${e.raw.requestId})`); process.exitCode = 1;}npm install @inorbithr/sdk. Calls the package's public surface; an operation newer than your package needs the next release or a client generated for your account. The SDKs.
{ "heartbeat_interval_seconds": 0, "lease_seconds": 0, "offered": [ { "accepted_at": "string", "expired_at": "string", "expires_at": "string", "fencing_token": "string", "heartbeat_at": "string", "job_id": "string", "lease_id": "string", "progress_tool": "string", "progress_turns": 0, "released_at": "string", "runner_id": "string", "taken_at": "string", "turn_id": "string" } ], "runner": { "account_id": "string", "always_on": true, "arch": "string", "capacity": 0, "created_at": "string", "effective_capacity": 0, "holder_subject": "string", "image_digest": "string", "kinds": [ "string" ], "labels": [ "string" ], "last_seen_at": "string", "machine_provider": "string", "name": "string", "os": "string", "pool_id": "string", "providers": [ { "method": "string", "plan_window_until": "string", "provider": "string", "signed_in": true } ], "public_key": "string", "region": "string", "resources": { "cpu_cores": 0, "disk_bytes": "string", "memory_bytes": "string" }, "runner_id": "string", "shed_reason": "string", "signals": { "cache_hit_rate": 0.1, "cpu_throttle_pct": 0.1, "disks": [ { "free_bytes": "string", "mount": "string", "total_bytes": "string" } ], "load_1m": 0.1, "psi_cpu": 0.1, "psi_io": 0.1, "psi_memory": 0.1, "temperatures": [ { "celsius": 0.1, "limit_celsius": 0.1, "sensor": "string" } ] }, "signals_at": "string", "slots_used": 0, "status": "string", "trust_tier": "string", "user": "string", "version": "string" }, "waited_seconds": 0}