Workspace

$envless->workspace->update()

Rename the workspace or toggle Virtual Envs

php
/**
 * @param WorkspacePatch $patch
 * @return UpdatedWorkspaceResource
 */
public function update(array $patch, int|float|null $timeout = null): array

Renames 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

php
use Envless\Envless;

$envless = new Envless();

$workspace = $envless->workspace->update([
    'name' => 'Acme Platform',
    'virtualEnvsEnabled' => true,
]);

echo $workspace['slug'], PHP_EOL;

Parameters

ParameterTypeRequiredDescription
$patchWorkspacePatchYesThe fields below, as one array.
$patch['name']stringNoNew display name for the workspace.
$patch['slug']stringNoNew slug, limited to lowercase letters, digits and single hyphens.
$patch['virtualEnvsEnabled']boolNoWorkspace half of the two flag gate on exposed environments.
$timeoutint|floatNoSeconds 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 virtualEnvsEnabled to true exposes nothing by itself. Every environment still needs its own expose opt-in.
  • Setting virtualEnvsEnabled to 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.conflict code, 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.