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 |
JSON Schema
{
"$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"
}
}
}