Environments

$envless->environments->delete()

Soft-delete an environment and everything under it

php
/** @return DeletedEnvironmentResource */
public function delete(
    string $project,
    string $environment,
    ?string $product = null,
    int|float|null $timeout = null,
): array

Soft-deletes an environment along with every variable in it, in one transaction, and takes its published versions out of reach with it. There is no guard on a non-empty environment and no undo over the API, so put your own confirmation in front of it.

The response is a tombstone, not the environment shape: id, name, slug, projectId and a deletedVariables count, with no createdAt, exposed or updatedAt. The slot it frees counts back against the per-project environment allowance right away, so a create that was failing with 402 can succeed immediately after.

Example

php
use Envless\Envless;

$envless = new Envless();

$deleted = $envless->environments->delete('api', 'staging');

echo "{$deleted['id']} {$deleted['projectId']}", PHP_EOL;
echo $deleted['deletedVariables'], PHP_EOL;

Parameters

ParameterTypeRequiredDescription
$projectstringYesProject slug or uniqueId that owns the environment.
$environmentstringYesEnvironment slug; ids are not accepted.
$productstringNoProduct slug that disambiguates an ambiguous project slug.
$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

DeletedEnvironmentResource carrying id, name, slug, projectId and deletedVariables.

Worth knowing

  • deletedVariables counts live variables only. Version snapshots are not deleted and are not counted, they simply stop resolving once the environment is gone.
  • Deleting the last environment in a project is allowed; the project itself stays.
  • Capture the slug you passed before the call if you need it for an audit trail, since the tombstone is all you get back.

Required scopes

environments:write

Underlying endpoint

DELETE /projects/{slug}/environments/{environmentSlug}

Request and response schema, every error code, and a live playground.

In TypeScript

envless.environments.delete()

The same method in @goenvless/sdk, with the same request, retries and errors.