def update(patch = nil, timeout: nil, **fields)def update: (
?(workspace_patch | Hash[Symbol | String, untyped])? patch,
?timeout: seconds?,
**untyped
) -> updated_workspace_resourceRenames the workspace, changes its slug, or toggles virtual environments. Each field is optional and applied on its own, and an empty patch is accepted and returns the workspace unchanged.
Only name, slug and virtualEnvsEnabled are read. Any other key in the patch is dropped silently rather than rejected, so a misspelled field looks like a successful no-op. The icon cannot be set through the API at all.
Changing slug rewrites every dashboard URL and every exposed environment URL for the workspace, and the old slug is neither reserved nor redirected, so another workspace can claim it. The returned updated_workspace_resource omits createdAt, which Envless.workspace.get does return.
Example
require "envless/sdk"
workspace = Envless.workspace.update(
name: "Acme Platform",
virtualEnvsEnabled: true
)
puts "#{workspace[:slug]} #{workspace[:virtualEnvsEnabled]}"Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
patch | workspace_patch | No | The fields below as one Hash, with Symbol or String keys, in place of the keywords. |
name: | String | No | New display name for the workspace. |
slug: | String | No | New slug, limited to lowercase letters, digits and single hyphens. |
virtualEnvsEnabled: | bool | No | Workspace half of the two flag gate on exposed environments. |
timeout: | Integer | Float | Rational | No | Seconds each attempt of this call may take, redirects and the response body included, before it raises Envless::NetworkError with timeout? set. Overrides the client's timeout for this call, and 0 turns the limit off. |
Returns
updated_workspace_resource with id, name, slug, icon and virtualEnvsEnabled.
Worth knowing
- Setting
virtualEnvsEnabledto true exposes nothing by itself. Every environment still needs its own expose opt-in. - Setting
virtualEnvsEnabledto false is a kill switch: every exposed feed in the workspace stops serving at once. - A slug another workspace already owns fails with status 409 and the generic
request.conflictcode, so read the message for the reason.
Required scopes
workspace:write
Underlying endpoint
PATCH /workspace
Request and response schema, every error code, and a live playground.
In TypeScript
envless.workspace.update()
The same method in @goenvless/sdk, with the same request, retries and errors.