Schemas / Other

rig.dev.machine

v0.31.0 · draft 8 fields 1 required

Fields

FieldTypeMeaning
kind enumlocal · vm · ci · container required Advisory target class: local, vm, ci, or container.
provider string optional Optional. Advisory fulfillment id (hyper-v, freestyle, docker, local). Host may ignore or remap. Absent = host default.
base string optional Optional. Advisory stack / guest label (node-22, ubuntu-22.04, pi-bookworm-arm64); not a Dockerfile path or image digest. Absent = host default.
requiresAuth array<string> optional Optional. Kebab auth catalog ids the host must satisfy before the machine is ready (github, gcloud). Never secrets or tokens. Absent = none declared.
snapshotRef string optional Optional. Opaque id or URI of a prepared state the host already knows (checkpoint name, Freestyle snapshot id). The blob stays in the host. Absent = none / create fresh.
memoryBytes int optional Optional. Advisory RAM in bytes. Absent = host default.
diskBytes int optional Optional. Advisory disk size in bytes. Absent = host default.
cpus int optional Optional. Advisory virtual CPU count. Absent = host default.

Portable development-environment recipe. Format when present.

This is not rig.audio.bus or rig.mod.trigger, and not a UI workspace dock (ui.md); docks stay fulfillment. Secrets, provider API clients, and cache fingerprints stay in the host - see dev.md.

Display name and stable id compose rig.meta.named. Named operations compose rig.dev.op.

Required: kind.

JSON Schema

Resolves at https://rig.works/schemas/rig.dev.machine.schema.jsonraw file.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://rig.works/schemas/rig.dev.machine.schema.json",
  "title": "rig.dev.machine",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "local",
        "vm",
        "ci",
        "container"
      ]
    },
    "provider": {
      "$ref": "./_defs.schema.json#/$defs/string"
    },
    "base": {
      "$ref": "./_defs.schema.json#/$defs/string"
    },
    "requiresAuth": {
      "type": "array",
      "items": {
        "$ref": "./_defs.schema.json#/$defs/string"
      }
    },
    "snapshotRef": {
      "$ref": "./_defs.schema.json#/$defs/string"
    },
    "memoryBytes": {
      "$ref": "./_defs.schema.json#/$defs/int"
    },
    "diskBytes": {
      "$ref": "./_defs.schema.json#/$defs/int"
    },
    "cpus": {
      "$ref": "./_defs.schema.json#/$defs/int"
    }
  },
  "required": [
    "kind"
  ]
}

Seen in

dev-hyperv.json · dev-kvm.json · dev-machine.json