/**
* @param WorkspacePatch $patch
* @return UpdatedWorkspaceResource
*/
public function update(array $patch, int|float|null $timeout = null): arrayRenames 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 UpdatedWorkspaceResource omits createdAt, which $envless->workspace->get() does return.
Example
use Envless\Envless;
$envless = new Envless();
$workspace = $envless->workspace->update([
'name' => 'Acme Platform',
'virtualEnvsEnabled' => true,
]);
echo $workspace['slug'], PHP_EOL;Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
$patch | WorkspacePatch | Yes | The fields below, as one array. |
$patch['name'] | string | No | New display name for the workspace. |
$patch['slug'] | string | No | New slug, limited to lowercase letters, digits and single hyphens. |
$patch['virtualEnvsEnabled'] | bool | No | Workspace half of the two flag gate on exposed environments. |
$timeout | int|float | No | Seconds each attempt of this call may take, the response body included, before it throws Envless\Exception\NetworkException with isTimeout() true. Overrides the client's timeout for this call, and 0 turns the limit off. |
Returns
UpdatedWorkspaceResource 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.