@@ -270,11 +270,15 @@ func ReloadBuiltinRoles(opts *RoleOptions) {
270
270
Site :append (
271
271
// Workspace dormancy and workspace are omitted.
272
272
// Workspace is specifically handled based on the opts.NoOwnerWorkspaceExec
273
- allPermsExcept (ResourceWorkspaceDormant ,ResourceWorkspace ),
273
+ allPermsExcept (ResourceWorkspaceDormant ,ResourcePrebuiltWorkspace , ResourceWorkspace ),
274
274
// This adds back in the Workspace permissions.
275
275
Permissions (map [string ][]policy.Action {
276
276
ResourceWorkspace .Type :ownerWorkspaceActions ,
277
277
ResourceWorkspaceDormant .Type : {policy .ActionRead ,policy .ActionDelete ,policy .ActionCreate ,policy .ActionUpdate ,policy .ActionWorkspaceStop ,policy .ActionCreateAgent ,policy .ActionDeleteAgent },
278
+ // PrebuiltWorkspaces are a subset of Workspaces.
279
+ // Explicitly setting PrebuiltWorkspace permissions for clarity.
280
+ // Note: even without PrebuiltWorkspace permissions, access is still granted via Workspace permissions.
281
+ ResourcePrebuiltWorkspace .Type : {policy .ActionRead ,policy .ActionUpdate ,policy .ActionDelete },
278
282
})... ),
279
283
Org :map [string ][]Permission {},
280
284
User : []Permission {},
@@ -290,7 +294,7 @@ func ReloadBuiltinRoles(opts *RoleOptions) {
290
294
ResourceWorkspaceProxy .Type : {policy .ActionRead },
291
295
}),
292
296
Org :map [string ][]Permission {},
293
- User :append (allPermsExcept (ResourceWorkspaceDormant ,ResourceUser ,ResourceOrganizationMember ),
297
+ User :append (allPermsExcept (ResourceWorkspaceDormant ,ResourcePrebuiltWorkspace , ResourceUser ,ResourceOrganizationMember ),
294
298
Permissions (map [string ][]policy.Action {
295
299
// Reduced permission set on dormant workspaces. No build, ssh, or exec
296
300
ResourceWorkspaceDormant .Type : {policy .ActionRead ,policy .ActionDelete ,policy .ActionCreate ,policy .ActionUpdate ,policy .ActionWorkspaceStop ,policy .ActionCreateAgent ,policy .ActionDeleteAgent },
@@ -417,6 +421,10 @@ func ReloadBuiltinRoles(opts *RoleOptions) {
417
421
organizationID .String ():append (allPermsExcept (ResourceWorkspace ,ResourceWorkspaceDormant ,ResourcePrebuiltWorkspace ,ResourceAssignRole ),Permissions (map [string ][]policy.Action {
418
422
ResourceWorkspaceDormant .Type : {policy .ActionRead ,policy .ActionDelete ,policy .ActionCreate ,policy .ActionUpdate ,policy .ActionWorkspaceStop ,policy .ActionCreateAgent ,policy .ActionDeleteAgent },
419
423
ResourceWorkspace .Type :slice .Omit (ResourceWorkspace .AvailableActions (),policy .ActionApplicationConnect ,policy .ActionSSH ),
424
+ // PrebuiltWorkspaces are a subset of Workspaces.
425
+ // Explicitly setting PrebuiltWorkspace permissions for clarity.
426
+ // Note: even without PrebuiltWorkspace permissions, access is still granted via Workspace permissions.
427
+ ResourcePrebuiltWorkspace .Type : {policy .ActionRead ,policy .ActionUpdate ,policy .ActionDelete },
420
428
})... ),
421
429
},
422
430
User : []Permission {},