Skip to content

feat(environments): add the List value type (ER-5355) - #486

Merged
serge-sedelnikov merged 4 commits into
mainfrom
ser/ER-5355-add-a-list-type-for-links-and-faq-style-records-1
Sep 11, 2026
Merged

feat(environments): add the List value type (ER-5355)#486
serge-sedelnikov merged 4 commits into
mainfrom
ser/ER-5355-add-a-list-type-for-links-and-faq-style-records-1

Conversation

@serge-sedelnikov

@serge-sedelnikov serge-sedelnikov commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

🚧 Draft until environments-api is deployed to production.

Regenerates @epilot/environments-client (and the vendored copy in @epilot/sdk) for the List environment variable value type.

What changed

A List holds an ordered collection of one declared element type. It may hold any value type except Map: String, SecretString, Text, Number, Boolean, JSON, Link. Adds the LinkFields schema that Link items carry.

Two properties are worth knowing, because they are why the contract looks the way it does:

  • A list is exactly as client-safe, and exactly as secret, as its element type. A List<SecretString> is encrypted per item and its value is never returned; a List<String> or List<SecretString> is never served to browser-facing consumers.
  • A secret list withholds its value, so the element type cannot be read out of it. EnvironmentVariable and EnvironmentVariableListItem therefore gain a derived, read-only item_type, returned even when value is absent. It is derived at read time and never stored.

Scope note

This PR was opened for the five-element-type version of List. Scope was widened on 2026-09-09 — String and SecretString joined, along with item_type — and folded into this same branch rather than stacked as a second chain. Commit 5a0e323c carries that widening.

Before merging

  • environments-api MR !41 merged and deployed to production
  • Regenerate from the prod spec (npm run openapi with no path argument) — this branch was generated from the local spec so the portal could build against an alpha in the meantime
  • Un-draft

@epilot/sdk@2.20.13-alpha.0 is published on the alpha dist-tag for the portal; latest is untouched at 2.20.12. No version bump is committed on this branch — auto-release computes the real version from main.

🤖 Generated with Claude Code

sergeysedelnikov and others added 4 commits September 8, 2026 13:18
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

Co-authored-by: Claude <noreply@anthropic.com>
Regenerated from the environments-api contract. A List may now hold any
value type except Map, so ListItemType gains String and SecretString and
the ListOf* union gains ListOfString and ListOfSecretString.

Because a List<SecretString>'s value is withheld on read, the element
type can no longer be read out of the value -- EnvironmentVariable and
EnvironmentVariableListItem gain a derived, read-only item_type that is
returned even when value is absent.

Generated from the LOCAL spec so the portal can build against it while
environments-api is still in review. Plan 4 regenerates from the PROD
spec before this merges.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
@serge-sedelnikov
serge-sedelnikov marked this pull request as ready for review September 11, 2026 07:06
@serge-sedelnikov
serge-sedelnikov merged commit 0c2a197 into main Sep 11, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants