Coder · Schema

WorkspaceAgent

Developer ToolsRemote DevelopmentCloud Development EnvironmentsAI AgentsInfrastructureWorkspaces

Properties

Name Type Description
api_version string
apps array
architecture string
connection_timeout_seconds integer
created_at string
directory string
disconnected_at string
display_apps array
environment_variables object
expanded_directory string
first_connected_at string
health object Health reports the health of the agent.
id string
instance_id string
last_connected_at string
latency object DERPLatency is mapped by region name (e.g. "New York City", "Seattle").
lifecycle_state object
log_sources array
logs_length integer
logs_overflowed boolean
name string
operating_system string
parent_id object
ready_at string
resource_id string
scripts array
started_at string
startup_script_behavior object StartupScriptBehavior is a legacy field that is deprecated in favor of the `coder_script` resource. It's only referenced by old clients. Deprecated: Remove in the future!
status object
subsystems array
troubleshooting_url string
updated_at string
version string
View JSON Schema on GitHub

JSON Schema

coder-workspaceagent-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://coder.com/schemas/codersdk-workspaceagent.json",
  "title": "WorkspaceAgent",
  "$defs": {
    "codersdk.AgentSubsystem": {
      "type": "string",
      "enum": [
        "envbox",
        "envbuilder",
        "exectrace"
      ]
    },
    "codersdk.DERPRegion": {
      "type": "object",
      "properties": {
        "latency_ms": {
          "type": "number"
        },
        "preferred": {
          "type": "boolean"
        }
      }
    },
    "codersdk.DisplayApp": {
      "type": "string",
      "enum": [
        "vscode",
        "vscode_insiders",
        "web_terminal",
        "port_forwarding_helper",
        "ssh_helper"
      ]
    },
    "codersdk.Healthcheck": {
      "type": "object",
      "properties": {
        "interval": {
          "type": "integer",
          "description": "Interval specifies the seconds between each health check."
        },
        "threshold": {
          "type": "integer",
          "description": "Threshold specifies the number of consecutive failed health checks before returning \"unhealthy\"."
        },
        "url": {
          "type": "string",
          "description": "URL specifies the endpoint to check for the app health."
        }
      }
    },
    "codersdk.WorkspaceAgentHealth": {
      "type": "object",
      "properties": {
        "healthy": {
          "type": "boolean",
          "description": "Healthy is true if the agent is healthy.",
          "example": false
        },
        "reason": {
          "type": "string",
          "description": "Reason is a human-readable explanation of the agent's health. It is empty if Healthy is true.",
          "example": "agent has lost connection"
        }
      }
    },
    "codersdk.WorkspaceAgentLifecycle": {
      "type": "string",
      "enum": [
        "created",
        "starting",
        "start_timeout",
        "start_error",
        "ready",
        "shutting_down",
        "shutdown_timeout",
        "shutdown_error",
        "off"
      ]
    },
    "codersdk.WorkspaceAgentLogSource": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string",
          "format": "date-time"
        },
        "display_name": {
          "type": "string"
        },
        "icon": {
          "type": "string"
        },
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "workspace_agent_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "codersdk.WorkspaceAgentScript": {
      "type": "object",
      "properties": {
        "cron": {
          "type": "string"
        },
        "display_name": {
          "type": "string"
        },
        "exit_code": {
          "type": "integer"
        },
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "log_path": {
          "type": "string"
        },
        "log_source_id": {
          "type": "string",
          "format": "uuid"
        },
        "run_on_start": {
          "type": "boolean"
        },
        "run_on_stop": {
          "type": "boolean"
        },
        "script": {
          "type": "string"
        },
        "start_blocks_login": {
          "type": "boolean"
        },
        "status": {
          "$ref": "#/$defs/codersdk.WorkspaceAgentScriptStatus"
        },
        "timeout": {
          "type": "integer"
        }
      }
    },
    "codersdk.WorkspaceAgentScriptStatus": {
      "type": "string",
      "enum": [
        "ok",
        "exit_failure",
        "timed_out",
        "pipes_left_open"
      ]
    },
    "codersdk.WorkspaceAgentStartupScriptBehavior": {
      "type": "string",
      "enum": [
        "blocking",
        "non-blocking"
      ]
    },
    "codersdk.WorkspaceAgentStatus": {
      "type": "string",
      "enum": [
        "connecting",
        "connected",
        "disconnected",
        "timeout"
      ]
    },
    "codersdk.WorkspaceApp": {
      "type": "object",
      "properties": {
        "command": {
          "type": "string"
        },
        "display_name": {
          "type": "string",
          "description": "DisplayName is a friendly name for the app."
        },
        "external": {
          "type": "boolean",
          "description": "External specifies whether the URL should be opened externally on\nthe client or not."
        },
        "group": {
          "type": "string"
        },
        "health": {
          "$ref": "#/$defs/codersdk.WorkspaceAppHealth"
        },
        "healthcheck": {
          "description": "Healthcheck specifies the configuration for checking app health.",
          "allOf": [
            {
              "$ref": "#/$defs/codersdk.Healthcheck"
            }
          ]
        },
        "hidden": {
          "type": "boolean"
        },
        "icon": {
          "type": "string",
          "description": "Icon is a relative path or external URL that specifies\nan icon to be displayed in the dashboard."
        },
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "open_in": {
          "$ref": "#/$defs/codersdk.WorkspaceAppOpenIn"
        },
        "sharing_level": {
          "enum": [
            "owner",
            "authenticated",
            "organization",
            "public"
          ],
          "allOf": [
            {
              "$ref": "#/$defs/codersdk.WorkspaceAppSharingLevel"
            }
          ]
        },
        "slug": {
          "type": "string",
          "description": "Slug is a unique identifier within the agent."
        },
        "statuses": {
          "type": "array",
          "description": "Statuses is a list of statuses for the app.",
          "items": {
            "$ref": "#/$defs/codersdk.WorkspaceAppStatus"
          }
        },
        "subdomain": {
          "type": "boolean",
          "description": "Subdomain denotes whether the app should be accessed via a path on the\n`coder server` or via a hostname-based dev URL. If this is set to true\nand there is no app wildcard configured on the server, the app will not\nbe accessible in the UI."
        },
        "subdomain_name": {
          "type": "string",
          "description": "SubdomainName is the application domain exposed on the `coder server`."
        },
        "tooltip": {
          "type": "string",
          "description": "Tooltip is an optional markdown supported field that is displayed\nwhen hovering over workspace apps in the UI."
        },
        "url": {
          "type": "string",
          "description": "URL is the address being proxied to inside the workspace.\nIf external is specified, this will be opened on the client."
        }
      }
    },
    "codersdk.WorkspaceAppHealth": {
      "type": "string",
      "enum": [
        "disabled",
        "initializing",
        "healthy",
        "unhealthy"
      ]
    },
    "codersdk.WorkspaceAppOpenIn": {
      "type": "string",
      "enum": [
        "slim-window",
        "tab"
      ]
    },
    "codersdk.WorkspaceAppSharingLevel": {
      "type": "string",
      "enum": [
        "owner",
        "authenticated",
        "organization",
        "public"
      ]
    },
    "codersdk.WorkspaceAppStatus": {
      "type": "object",
      "properties": {
        "agent_id": {
          "type": "string",
          "format": "uuid"
        },
        "app_id": {
          "type": "string",
          "format": "uuid"
        },
        "created_at": {
          "type": "string",
          "format": "date-time"
        },
        "icon": {
          "type": "string",
          "description": "Deprecated: This field is unused and will be removed in a future version.\nIcon is an external URL to an icon that will be rendered in the UI."
        },
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "message": {
          "type": "string"
        },
        "needs_user_attention": {
          "type": "boolean",
          "description": "Deprecated: This field is unused and will be removed in a future version.\nNeedsUserAttention specifies whether the status needs user attention."
        },
        "state": {
          "$ref": "#/$defs/codersdk.WorkspaceAppStatusState"
        },
        "uri": {
          "type": "string",
          "description": "URI is the URI of the resource that the status is for.\ne.g. https://github.com/org/repo/pull/123\ne.g. file:///path/to/file"
        },
        "workspace_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "codersdk.WorkspaceAppStatusState": {
      "type": "string",
      "enum": [
        "working",
        "idle",
        "complete",
        "failure"
      ]
    },
    "uuid.NullUUID": {
      "type": "object",
      "properties": {
        "uuid": {
          "type": "string"
        },
        "valid": {
          "type": "boolean",
          "description": "Valid is true if UUID is not NULL"
        }
      }
    }
  },
  "type": "object",
  "properties": {
    "api_version": {
      "type": "string"
    },
    "apps": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/codersdk.WorkspaceApp"
      }
    },
    "architecture": {
      "type": "string"
    },
    "connection_timeout_seconds": {
      "type": "integer"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "directory": {
      "type": "string"
    },
    "disconnected_at": {
      "type": "string",
      "format": "date-time"
    },
    "display_apps": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/codersdk.DisplayApp"
      }
    },
    "environment_variables": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "expanded_directory": {
      "type": "string"
    },
    "first_connected_at": {
      "type": "string",
      "format": "date-time"
    },
    "health": {
      "description": "Health reports the health of the agent.",
      "allOf": [
        {
          "$ref": "#/$defs/codersdk.WorkspaceAgentHealth"
        }
      ]
    },
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "instance_id": {
      "type": "string"
    },
    "last_connected_at": {
      "type": "string",
      "format": "date-time"
    },
    "latency": {
      "type": "object",
      "description": "DERPLatency is mapped by region name (e.g. \"New York City\", \"Seattle\").",
      "additionalProperties": {
        "$ref": "#/$defs/codersdk.DERPRegion"
      }
    },
    "lifecycle_state": {
      "$ref": "#/$defs/codersdk.WorkspaceAgentLifecycle"
    },
    "log_sources": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/codersdk.WorkspaceAgentLogSource"
      }
    },
    "logs_length": {
      "type": "integer"
    },
    "logs_overflowed": {
      "type": "boolean"
    },
    "name": {
      "type": "string"
    },
    "operating_system": {
      "type": "string"
    },
    "parent_id": {
      "format": "uuid",
      "allOf": [
        {
          "$ref": "#/$defs/uuid.NullUUID"
        }
      ]
    },
    "ready_at": {
      "type": "string",
      "format": "date-time"
    },
    "resource_id": {
      "type": "string",
      "format": "uuid"
    },
    "scripts": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/codersdk.WorkspaceAgentScript"
      }
    },
    "started_at": {
      "type": "string",
      "format": "date-time"
    },
    "startup_script_behavior": {
      "description": "StartupScriptBehavior is a legacy field that is deprecated in favor\nof the `coder_script` resource. It's only referenced by old clients.\nDeprecated: Remove in the future!",
      "allOf": [
        {
          "$ref": "#/$defs/codersdk.WorkspaceAgentStartupScriptBehavior"
        }
      ]
    },
    "status": {
      "$ref": "#/$defs/codersdk.WorkspaceAgentStatus"
    },
    "subsystems": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/codersdk.AgentSubsystem"
      }
    },
    "troubleshooting_url": {
      "type": "string"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    },
    "version": {
      "type": "string"
    }
  }
}