Skip to main content
A release is the SDK’s record that this process is serving a rollout. You bind a ReleaseContext, then report lifecycle transitions. It is a FireWeave extension on FireweaveClient. It is not the in-app rollout workflow (Registered / Ramping / Verifying / Completed / Rolled back). Do not document those console states as SDK APIs. OpenFeature and the wire still say flagKey for evaluations. Release identity uses rolloutId, optional changeId, and stampIds.

Why it exists

Deploy-attestation (“boot beacon”) semantics are setContext + start: this process declares which rollout and stamps it is running. complete and fail close that attestation. Evaluation does not require a bound release; correlation fields on signals and exposures are optional.

When to use it

Call this when your service knows the rollout it is serving and you want the SDK to record that lifecycle:
  1. setContext — once you have IDs
  2. start — process is up and serving
  3. complete or fail — terminal transition
Skip it for unit tests that only evaluate fixtures.

How it relates

SDK lifecycle (not the console)

Statuses the clients actually store:
Do not map these onto console Registered / Ramping / Verifying / Rolled back. Those names are not SDK APIs. Whether the console consumes these transitions is NEEDS VERIFICATION.

IDs

Validation matches spec/release-context.schema.json. Clients enforce this set — they do not require extra fields. Optional surfaces[].surfaceId in the schema uses sfc_ + 26 Crockford chars. That field is not required by setContext. Do not treat sfc_ as a required SDK identifier. Failure reason strings are secret-redacted (phc_ / phs_ / phx_, bearer tokens → [REDACTED]) before storage or emission.

API

Extension calls degrade instead of throwing (except Go, which returns error). Before READY they fail with NotReady / UnsupportedCapability; after shutdown, AlreadyClosed. Go (and Java via the adapter seam) can emit $fw_release_<status> to a telemetry sink when one is attached. Node/Python may record some paths in-process only.
Delivery of release events all the way to fw-server is NEEDS VERIFICATION (compatibility known gap). Do not write “releases always reach the server.”

What it looks like

Last modified on August 18, 2026