mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat: include agent metadata in workspace list responses (#27934)
Closes #27933. Related: #27897 (single-agent GET). Agent metadata is only readable via a per-agent watch stream, so reading it across N workspaces costs N+1 requests. This adds a batch read to the list endpoint: ```text GET /api/v2/workspaces?q=param:"pool=demo" include_agent_metadata:task_status ``` - New `include_agent_metadata` search key, repeatable and key-scoped. It expands the response, it does not filter workspaces. - `GetWorkspaces` aggregates the requested keys as JSON behind a `CASE`: without opt-in the response is unchanged and the subquery never runs. Runs only for the returned page, inside the same authorized query. - Agents in the response gain `metadata` (`[]codersdk.WorkspaceAgentMetadata`, `omitempty`), mapped by the `workspace_agent_id` each element carries. The collection script is omitted; it can be long. - `codersdk.WorkspaceFilter` gains `IncludeAgentMetadata []string`. - No wildcard, no schema change, no migration. --- Authored by Coder Agents on behalf of @Emyrk.
This commit is contained in:
Generated
+7
@@ -10661,6 +10661,13 @@ export interface WorkspaceAgent {
|
||||
readonly display_apps: readonly DisplayApp[];
|
||||
readonly log_sources: readonly WorkspaceAgentLogSource[];
|
||||
readonly scripts: readonly WorkspaceAgentScript[];
|
||||
/**
|
||||
* Metadata is only populated on the workspaces list endpoint when the
|
||||
* request opts in with the include_agent_metadata search key, and it
|
||||
* only carries the requested keys. The description's script is always
|
||||
* empty here: it can be long, and list consumers want values.
|
||||
*/
|
||||
readonly metadata?: readonly WorkspaceAgentMetadata[];
|
||||
/**
|
||||
* StartupScriptBehavior is a legacy field that is deprecated in favor
|
||||
* of the `coder_script` resource. It's only referenced by old clients.
|
||||
|
||||
@@ -811,6 +811,7 @@ type _UncoveredAgentFields = Omit<
|
||||
| "display_apps"
|
||||
| "log_sources"
|
||||
| "scripts"
|
||||
| "metadata"
|
||||
| "startup_script_behavior"
|
||||
>;
|
||||
// If this errors, a new field was added to WorkspaceAgent.
|
||||
|
||||
Reference in New Issue
Block a user