Environments

Envless.environments.delete

Soft-delete an environment and everything under it

def delete(project, environment, product: nil, timeout: nil)

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

ruby
require "envless/sdk"

deleted = Envless.environments.delete("api", "staging")

puts "#{deleted[:id]} #{deleted[:projectId]}"
puts deleted[:deletedVariables]

Parameters

ParameterTypeRequiredDescription
projectStringYesProject slug or uniqueId that owns the environment.
environmentStringYesEnvironment slug; ids are not accepted.
product:String | SymbolNoProduct slug that disambiguates an ambiguous project slug.
timeout:Integer | Float | RationalNoSeconds 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

deleted_environment_resource 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.