Workspace and Environment Reference

Defaults, limits, scope, permissions by operation, responses, and deletion effects for workspaces and environments.

This page states how workspaces and environments behave, exactly. For the model, read the Workspaces and Environments concepts. For tasks, use the workspace guides. For every endpoint’s schema, see the REST API Reference, and for base URL and authentication see the Cloud API. All paths below sit under /api.

PropertyWorkspaceEnvironment
NameUp to 255 characters. Not required or unique on the API.Up to 255 characters. Not required or unique on the API.
DescriptionUp to 255 characters. May be empty.Up to 255 characters. May be empty.
OrganizationRequired on create. Fixed for the life of the workspace.Required on create (organizationId is required). Fixed for the life of the environment.
OwnerThe user who created it.Not recorded on create.
Starting stateNo teams, environments, designs, or views.No connections, in no workspace.
KindSingle kind.Ordinary when created through the API. Platform-provisioned environments exist and are protected.
UpdateOnly the fields sent change.Name and description are both replaced; an omitted field becomes empty.
Plan checkNone.None. The feature matrix lists environments under Enterprise.
Count limitsNone. An organization must keep at least one workspace.None.

Layer5 Cloud creates My Workspace in any organization that has no workspace.

QuestionAnswer
Who sees a workspace or environment in a list?Every member of its organization. Team membership does not narrow the list.
How is the organization chosen?A list request carries one organization identifier. The all-organizations value needs View All Organizations and otherwise returns HTTP 403.
What does a missing or foreign identifier return?HTTP 404, workspace not found or environment not found.
Can a workspace or environment move to another organization?No.
Which relationships can cross organizations?None for teams and environments: both must share the workspace’s organization (HTTP 403 otherwise). A design assigned to a workspace takes on that workspace’s organization.

Layer5 Cloud checks each key in the organization that owns the workspace or environment. Operations marked UI only are hidden in the interface but not checked by the server.

OperationPermission
POST /workspacesCreate Workspace (organization from the request body)
GET /workspaces, GET /workspaces/{id}UI only (View Workspace); organization scoping applies
PUT /workspaces/{id}Edit Workspace
DELETE /workspaces/{id}Delete Workspace
POST, DELETE /workspaces/{id}/teams/{teamId}Assign team to workspace, Remove team from workspace
POST, DELETE /workspaces/{id}/environments/{environmentId}Assign environment to workspace, Remove environment from workspace
POST, DELETE /workspaces/{id}/designs/{designId}Assign Designs to Workspaces, Remove Designs from Workspaces
POST, DELETE /workspaces/{id}/views/{viewId}Assign Views to Workspace, Unassign Views from Workspace
GET /workspaces/{id}/views, GET /workspaces/{id}/eventsView Workspace
GET /workspaces/{id}/teams, /environments, /designsNone
POST /environmentsCreate Environment (organization from the request body)
GET /environments, GET /environments/{id}UI only (View Environment); organization scoping applies
PUT /environments/{id}Edit Environment
DELETE /environments/{id}Delete Environment
POST, DELETE /environments/{id}/connections/{connectionId}Assign connections to environment, Remove connections from environment
GET /environments/{id}/connectionsView Environment

Default holders by role:

Workspace and environment permissions
PermissionWhat it allowsUserTeam AdminWorkspace AdminOrg AdminProvider Admin
View WorkspaceSee all workspaces within an organizationAllowedAllowedAllowedAllowedAllowed
Create WorkspaceCreate new workspaceNot grantedNot grantedAllowedAllowedAllowed
Edit WorkspaceEdit workspace and it's team and environment membershipNot grantedNot grantedAllowedAllowedAllowed
Delete WorkspaceDissolve workspace and all team and environment memberships. Leave associated resources intactNot grantedNot grantedAllowedAllowedAllowed
Assign team to workspaceAdd new team to workspaceNot grantedNot grantedAllowedAllowedAllowed
Remove team from workspaceRemove team from workspaceNot grantedNot grantedAllowedAllowedAllowed
Assign environment to workspaceAdd new environment to workspaceNot grantedNot grantedAllowedAllowedAllowed
Remove environment from workspaceRemove environment from workspaceNot grantedNot grantedAllowedAllowedAllowed
Assign Designs to WorkspacesAssign designs to workspacesNot grantedNot grantedAllowedAllowedAllowed
Remove Designs from WorkspacesRemove designs from workspacesNot grantedNot grantedAllowedAllowedAllowed
View EnvironmentSee all environments within an workspace.AllowedAllowedAllowedAllowedAllowed
Create EnvironmentCreate a new environmentNot grantedNot grantedAllowedAllowedAllowed
Edit EnvironmentEdit environment and it connection membershipNot grantedNot grantedAllowedAllowedAllowed
Delete EnvironmentDissolve environment and all connection memberships. Leave associated resources intact.Not grantedNot grantedAllowedAllowedAllowed
Assign connections to environmentAdd new connections to environmentsNot grantedNot grantedAllowedAllowedAllowed
Remove connections from environmentRemove connections from environment,Not grantedNot grantedAllowedAllowedAllowed
View ConnectionsView all connections within an environmentAllowedAllowedAllowedAllowedAllowed
ParameterApplies toMeaning
orgIdWorkspace and environment listsThe organization to list. Required.
searchAll listsCase-insensitive match on name or description.
orderAll listsOrder by created_at or updated_at. Environment connection lists also accept name. Default is newest first.
page, pageSizeAll listsZero-based page and page size.
filterLists of a workspace’s teams, environments, designs, views, and an environment’s connections{"assigned": true} (default) lists what is in; {"assigned": false} lists what is not yet in. For designs, the not-yet-in list holds only designs the caller owns.
visibilityLists of a workspace’s designs and viewsRepeatable. Keeps only designs or views with that visibility.
OperationConditionResponse
Create workspaceOrganization missing or malformedHTTP 400, organizationId is required or invalid organizationId format
Create workspaceName or description over 255 charactersHTTP 500, Unable to create workspace
Update workspaceEmpty or null bodyHTTP 400, Unable to update workspace
Update or delete workspaceNot in the caller’s organizationsHTTP 404, workspace not found
Delete workspaceLast live workspace in the organizationHTTP 500, cannot delete workspace: at least one workspace must exist for the organization
Assign team or environmentTeam or environment in another organizationHTTP 403, unable to add team to workspace or unable to add environment to workspace
Assign environmentPlatform-provisioned environmentHTTP 403, this environment is provisioned by the platform and cannot be added to a workspace
Remove environment from workspaceNever attachedHTTP 404, no such environment assignment
Create environmentOrganization missingHTTP 400, organizationId is required
Delete environmentPlatform-provisionedHTTP 403, this environment is provisioned by the platform and cannot be deleted here
Delete environmentNo live environmentHTTP 404, no environment with the requested id
Assign connectionPlatform-provisioned environmentHTTP 403, this connection cannot be assigned to this environment
Remove connectionPlatform-provisioned environmentHTTP 403, this connection cannot be detached from this environment
Remove connectionNever assignedHTTP 404, no such connection assignment

Assigning a team or environment that is already assigned succeeds and returns the existing assignment. Every workspace create, update, delete, assign, and unassign writes an event to the workspace’s activity log, and a failure writes an error event.

Deleting aEndsLeaves in place
WorkspaceTeam, environment, design, and view assignmentsTeams, environments, connections, designs, views, and their owners
EnvironmentConnection assignments and workspace attachmentsConnections, credentials, workspaces, and the connections’ other environments

Access that flowed through a deleted or detached link ends at once. See Access to connections and credentials.

Related Reading