Projects

Envless.projects.update

Rename a project or change its slug

def update(slug, patch = nil, product: nil, timeout: nil, **fields)

Partial update of name and slug. Send only the fields you want changed. Uniqueness for a new slug is checked inside the project own product, and product: may still be needed just to resolve which project you meant.

The new slug is validated as sent rather than slugified, so it must already match ^[a-z0-9]+(?:-[a-z0-9]+)*$ or you get 400. There is no product field in the patch: projects cannot be moved between products over the API, and icons are not settable here either.

Example

ruby
require "envless/sdk"

project = Envless.projects.update(
  "api",
  name: "API Gateway",
  slug: "api-gateway",
  product: "billing"
)

puts project[:slug]

Parameters

ParameterTypeRequiredDescription
slugStringYesCurrent project slug, or the project uniqueId.
patchproject_patchNoThe fields below as one Hash, with Symbol or String keys, in place of the keywords.
name:StringNoNew project name.
slug:StringNoNew slug, which must already be in valid slug form.
product:String | SymbolNoProduct slug used to disambiguate 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

project_resource reflecting the stored record after the patch.

Worth knowing

  • A 409 project.slug_conflict means another project in the same product already owns the new slug.
  • A missing or ambiguous project carries project.not_found or project.ambiguous_product, but the update itself answers 400, 404 and 409 with the generic request.invalid, request.not_found and request.conflict, so read message for the reason.

Required scopes

projects:write

Underlying endpoint

PATCH /projects/{slug}

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

In TypeScript

envless.projects.update()

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