Versions

Envless.versions.list_entries

Read one page of raw version ciphertext

def list_entries(
  project,
  environment,
  limit: nil,
  offset: nil,
  product: nil,
  timeout: nil
)

Returns one page of the raw ciphertext of every version entry in the environment, across all versions, so it can be re-encrypted client side. Together with reencrypt_entries this is the passphrase rotation pair.

The payload is deliberately thin: id, value and defaultValue, with no variable name and no version id, because rotation is blind and you decrypt and re-encrypt keyed on id alone. Pagination is applied in memory after the server loads the whole history, so a page is stable within a run but not cheap on a large environment.

Rotating the live variables without also rewriting these entries silently breaks every later rollback. If the rotation itself is all you want, Envless.rotate_workspace_passphrase walks both live variables and history for you.

Example

ruby
require "envless/sdk"

page = Envless.versions.list_entries(
  "api",
  "production",
  limit: 100
)

puts "#{page.items.size} #{page.pagination[:totalCount]}"
puts page.pagination[:hasMore]

Parameters

ParameterTypeRequiredDescription
projectStringYesProject slug or project uniqueId.
environmentStringYesEnvironment slug, since an environment uniqueId will not resolve here.
product:String | SymbolNoProduct slug used to disambiguate a project slug shared across products.
limit:IntegerNoRows per page, a whole number from 1 to 100.
offset:IntegerNoRows to skip before the page starts.
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

Page[version_entry_resource] whose items are Hashes holding id, value and defaultValue, plus the pagination envelope.

Reads the entries collection. list returns one page as an Envless::Page with items and pagination, list_all collects every page into an array, and iterate yields one item at a time to a block, fetching the next page only when it gets there. Without a block, iterate returns an Enumerator.

Worth knowing

  • Requires both versions:read and variables:read.
  • Keep limit: at 100 or below. reencrypt_entries takes at most 200 entries per call, so a page of 100 is the practical round trip.
  • Entries are flat across the environment, so two rows can hold the same plaintext from different versions. That is expected.

Required scopes

versions:read and variables:read

Underlying endpoint

GET /projects/{slug}/environments/{environmentSlug}/versions/entries

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

In TypeScript

envless.versions.listEntries()

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