Sign in
Docs
API referenceCoordinator

API reference

Revoke a runner

Have a token? Manage tokens in the console
DELETE
/v1/coordinator/runners/{runner_id}

Retire a runner for good: status revoked, offered no work, its heartbeat refused, and its key refused if it registers again (a runner that should work again registers with a new key). Its live leases go through the sweep. The runner's own person or an admin of the account; anyone else's runner answers not found. A runner that beat in the last minute is refused unless force. Revoking a revoked runner succeeds and changes nothing.

Needs scope coordinator:write.

Authorization

bearer
headerAuthorizationBearer <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.

Path Parameters

runner_id*string

The runner's id, rnr_ and a ULID.

Query Parameters

account_id?string

The account's id: org in GET /v1/me.

force?boolean

Revoke a runner that beat in the last minute; its live leases expire now and the next sweep requeues them.

Response Body

iohr.coordinator.v1.RevokeRunnerResponse

application/json
  1. response

iohr.coordinator.v1.RevokeRunnerResponse

changed*boolean
leases_expired*integer
Formatint32
runner?

iohr.coordinator.v1.Runner

import { 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.revokeRunner("<runner_id>");  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.

Example Response
{  "changed": true,  "leases_expired": 0,  "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"  }}