fix(coderd): disallow POSTing a workspace build on a deleted workspace (#20584)

- Adds a check on /api/v2/workspacebuilds to disallow creating a START or STOP build if the workspace is deleted. 
- DELETEs are still allowed.
This commit is contained in:
Cian Johnston
2025-10-30 13:32:18 +00:00
committed by GitHub
parent 984a834e81
commit 38017010ce
2 changed files with 71 additions and 0 deletions
+9
View File
@@ -335,6 +335,15 @@ func (api *API) postWorkspaceBuilds(rw http.ResponseWriter, r *http.Request) {
return
}
// We want to allow a delete build for a deleted workspace, but not a start or stop build.
if workspace.Deleted && createBuild.Transition != codersdk.WorkspaceTransitionDelete {
httpapi.Write(ctx, rw, http.StatusConflict, codersdk.Response{
Message: fmt.Sprintf("Cannot %s a deleted workspace!", createBuild.Transition),
Detail: "This workspace has been deleted and cannot be modified.",
})
return
}
apiBuild, err := api.postWorkspaceBuildsInternal(
ctx,
apiKey,