Environment-variable reference#
Pulse canonical handlers do not receive ambient process environment access. Handler authority comes only through the documented ctx capabilities and project/provider bindings. The variables here configure release tooling, compatibility helpers, or repository tests.
Do not use these variables as a substitute for ctx.config, ctx.secret, or provider bindings. Secret-bearing compatibility URIs must be handled as credentials and must not be copied into diagnostics.
Index#
| Variable | Scope | Stability |
|---|---|---|
PULSE_FASTLY_BIN | Supported tooling configuration | Supported Beta tooling override. |
PULSE_VICEROY_BIN | Supported tooling configuration | Supported Beta tooling override. |
PULSE_PROFILE | Supported tooling configuration | Supported project-selection input. |
PULSE_RELEASE_REF | Contributor and test-only configuration | Repository release-workflow internal; not an application setting. |
PULSE_RELEASE_SHA | Contributor and test-only configuration | Repository release-workflow internal; not an application setting. |
PULSEWASM_ARTIFACTS_DIR | Contributor and test-only configuration | Contributor/test-only. |
PULSEWASM_TEST_TMP_ROOT | Contributor and test-only configuration | Contributor/test-only; may change with test-runner updates. |
PULSE_FASTLY_REALITY_EVIDENCE | Contributor and test-only configuration | Contributor/release tooling override. |
PULSE_FOUR_MODE_EVIDENCE | Contributor and test-only configuration | Contributor/release tooling override. |
PULSE_SOURCE_REVISION | Contributor and test-only configuration | Repository release-evidence internal; not an application setting. |
PULSE_SOURCE_IDENTITY_KIND | Contributor and test-only configuration | Repository release-evidence internal; not an application setting. |
PULSE_SOURCE_DIGEST_SHA256 | Contributor and test-only configuration | Repository release-evidence internal; not an application setting. |
PULSE_SOURCE_FILE_COUNT | Contributor and test-only configuration | Repository release-evidence internal; not an application setting. |
PULSE_FAKE_FASTLY_CAPTURE | Contributor and test-only configuration | Fixture-only; not a public tooling setting. |
PULSE_FAKE_VICEROY_CAPTURE | Contributor and test-only configuration | Fixture-only; not a public tooling setting. |
PULSE_ES256_REPRODUCTION_ROOT | Contributor and test-only configuration | Contributor/test-only proof reproduction control. |
PULSE_ES256_REPRODUCTION_ARCHIVE | Contributor and test-only configuration | Contributor/test-only proof reproduction control. |
PULSE_RUST_CARGO | Contributor and test-only configuration | Contributor/test-only proof reproduction control. |
PULSE_RUSTC | Contributor and test-only configuration | Contributor/test-only proof reproduction control. |
Supported tooling configuration#
Documented environment inputs accepted by release tooling. These configure tools, not handler authority.
PULSE_FASTLY_BIN#
Selects the Fastly CLI binary used for external target inspection and local Compute execution.
| Property | Contract |
|---|---|
| Value | Absolute or relative executable path |
| Default | No explicit path; discover fastly on PATH. |
| Precedence | An explicit binary option wins, then PULSE_FASTLY_BIN, then PATH discovery. |
| Consumer | Fastly CLI inspection and the external Compute reality gate. |
| Secret safety | Not a secret. Do not point it at an untrusted executable. |
| Stability | Supported Beta tooling override. |
| Source owners | packages/provider-fastly/src/testing/fastly-cli.js |
PULSE_VICEROY_BIN#
Selects an inspected Viceroy executable for direct local Compute execution when no explicit Fastly CLI launcher is selected.
| Property | Contract |
|---|---|
| Value | Absolute or relative executable path |
| Default | Unset; discover the Fastly CLI first, then Viceroy, on PATH. |
| Precedence | An explicit launcher choice wins. Without one, an explicit Fastly CLI path selects CLI ownership; otherwise an explicit viceroyBinary or PULSE_VICEROY_BIN selects direct Viceroy execution. |
| Consumer | External Fastly Compute reality gates, either as the direct local engine or as an explicit Fastly CLI engine override. |
| Secret safety | Not a secret. Do not point it at an untrusted executable. |
| Stability | Supported Beta tooling override. |
| Source owners | packages/provider-fastly/src/testing/fastly-cli.js |
PULSE_PROFILE#
Selects the flat Pulse project profile when no explicit --profile option is supplied.
| Property | Contract |
|---|---|
| Value | Pulse profile name |
| Default | Unset; use pulse.defaultProfile when declared. |
| Precedence | --profile wins, then PULSE_PROFILE, then pulse.defaultProfile. |
| Consumer | Project-aware Pulse CLI commands using the .pulse/config.ts convention. |
| Secret safety | Not a secret. It selects a committed profile and never carries resolved binding values. |
| Stability | Supported project-selection input. |
| Source owners | wasm/packages/cli/src/project-config.js |
Contributor and test-only configuration#
Repository harness controls. They are intentionally outside the application compatibility contract.
PULSE_RELEASE_REF#
Carries the sealed candidate release ref into the protected publish process for an equality check against GitHub's native identity.
| Property | Contract |
|---|---|
| Value | Full Git ref (refs/tags/v<version>) |
| Default | Unset; the protected npm workflow derives it from the sealed candidate. |
| Precedence | When set by the workflow, it must exactly equal GitHub's native release-tag ref. |
| Consumer | Protected npm publication identity binding. |
| Secret safety | Not a secret. It is validated rather than trusted as independent authority. |
| Stability | Repository release-workflow internal; not an application setting. |
| Source owners | scripts/release-publication.cjs |
PULSE_RELEASE_SHA#
Carries the sealed candidate source commit into the protected publish process for an equality check against GitHub's native identity.
| Property | Contract |
|---|---|
| Value | Full lowercase 40-character Git commit SHA |
| Default | Unset; the protected npm workflow derives it from the sealed candidate. |
| Precedence | When set by the workflow, it must exactly equal GitHub's native release-tag commit. |
| Consumer | Protected npm publication identity binding. |
| Secret safety | Not a secret. It is validated rather than trusted as independent authority. |
| Stability | Repository release-workflow internal; not an application setting. |
| Source owners | scripts/release-publication.cjs |
PULSEWASM_ARTIFACTS_DIR#
Redirects generated build and test artifacts away from the default repository directory.
| Property | Contract |
|---|---|
| Value | Directory path |
| Default | wasm/artifacts. |
| Precedence | Overrides the repository artifact root for scripts that opt into it. |
| Consumer | Build and test isolation. |
| Secret safety | Not a secret. Use an isolated writable directory. |
| Stability | Contributor/test-only. |
| Source owners | wasm/packages/build-support/src/artifacts-dir.js, wasm/scripts/build.cjs, wasm/scripts/run-wasm-tests.cjs |
PULSEWASM_TEST_TMP_ROOT#
Pins test workspaces beneath a caller-managed temporary root.
| Property | Contract |
|---|---|
| Value | Directory path |
| Default | A suite-specific temporary directory. |
| Precedence | When set, tests create their working directories beneath this root. |
| Consumer | Documentation, CLI, provider, package-release, and clean-machine acceptance tests. |
| Secret safety | Not a secret. The directory may contain generated projects and test data. |
| Stability | Contributor/test-only; may change with test-runner updates. |
| Source owners | wasm/test/docs/assert-executable-documentation.cjs, wasm/test/release/assert-release-packages.cjs |
PULSE_FASTLY_REALITY_EVIDENCE#
Selects the output path for the real Fastly host evidence report.
| Property | Contract |
|---|---|
| Value | File path |
| Default | Unset; the reality gate prints its normal test result without retaining a proof file. |
| Precedence | When set, the real-host gate writes its redacted machine-readable proof to this path. |
| Consumer | Fastly CLI-managed or direct-Viceroy local Compute reality gate. |
| Secret safety | Not a secret. The proof intentionally excludes secret values and authorization plaintext. |
| Stability | Contributor/release tooling override. |
| Source owners | wasm/test/provider/assert-fastly-compute-reality.cjs |
PULSE_FOUR_MODE_EVIDENCE#
Selects the output path for the four-mode conformance evidence report.
| Property | Contract |
|---|---|
| Value | File path |
| Default | wasm/.test-results/four-mode-conformance.json. |
| Precedence | When set, the four-mode conformance suite writes its revision-bound proof to this path. |
| Consumer | Node/Fastly Native/JavaScript conformance evidence. |
| Secret safety | Not a secret. The proof records target identities, support hashes, and test outcomes without application secrets. |
| Stability | Contributor/release tooling override. |
| Source owners | wasm/test/contracts/assert-four-mode-conformance.cjs |
PULSE_SOURCE_REVISION#
Propagates one source identity through an aggregate release replay so independently written evidence cannot drift.
| Property | Contract |
|---|---|
| Value | 40-character lowercase source identity |
| Default | Current Git commit, or a deterministic archive-tree identity outside a Git checkout. |
| Precedence | When set by the release runner, every child evidence shard validates and reuses this exact identity. |
| Consumer | Release-seal task, four-mode, and offline deployment-candidate evidence binding. |
| Secret safety | Not a secret. It identifies source but grants no publication or deployment authority. |
| Stability | Repository release-evidence internal; not an application setting. |
| Source owners | scripts/source-identity.cjs |
PULSE_SOURCE_IDENTITY_KIND#
Labels the provenance class of the propagated source identity.
| Property | Contract |
|---|---|
| Value | Source identity classification |
| Default | git-commit in a checkout or archive-tree-sha256-160 for an extracted source tree. |
| Precedence | Meaningful only with PULSE_SOURCE_REVISION; the release runner supplies both together. |
| Consumer | Release-seal reports, test reports, four-mode evidence, and offline candidate manifests. |
| Secret safety | Not a secret. It prevents an archive digest from being represented as a Git commit. |
| Stability | Repository release-evidence internal; not an application setting. |
| Source owners | scripts/source-identity.cjs |
PULSE_SOURCE_DIGEST_SHA256#
Preserves the full archive-tree digest behind the compatibility-width source revision field.
| Property | Contract |
|---|---|
| Value | 64-character lowercase SHA-256 digest |
| Default | Unset for Git commits; the full archive-tree digest outside a Git checkout. |
| Precedence | The release runner supplies it with an archive-tree source identity. |
| Consumer | Release-seal reports, test reports, four-mode evidence, and offline candidate manifests. |
| Secret safety | Not a secret. It is integrity metadata and carries no release authority. |
| Stability | Repository release-evidence internal; not an application setting. |
| Source owners | scripts/source-identity.cjs |
PULSE_SOURCE_FILE_COUNT#
Carries the source-file count associated with an archive-tree digest for audit clarity.
| Property | Contract |
|---|---|
| Value | Non-negative integer |
| Default | Unset for Git commits; the deterministic archive-tree inventory count otherwise. |
| Precedence | The release runner supplies it with an archive-tree source identity. |
| Consumer | Release-seal reports, test reports, four-mode evidence, and offline candidate manifests. |
| Secret safety | Not a secret. It records only the number of source files in the identity inventory. |
| Stability | Repository release-evidence internal; not an application setting. |
| Source owners | scripts/source-identity.cjs |
PULSE_FAKE_FASTLY_CAPTURE#
Tells the fake Fastly CLI where to write its captured invocation.
| Property | Contract |
|---|---|
| Value | File path |
| Default | Unset. |
| Precedence | Used only by the fake Fastly CLI fixture when present. |
| Consumer | Fastly CLI surface test fixture. |
| Secret safety | Not a secret. The file records test arguments and paths. |
| Stability | Fixture-only; not a public tooling setting. |
| Source owners | wasm/test/provider/assert-fastly-cli-gate-surface.cjs |
PULSE_FAKE_VICEROY_CAPTURE#
Tells the fake Viceroy launcher where to write its captured invocation.
| Property | Contract |
|---|---|
| Value | File path |
| Default | Unset. |
| Precedence | Used only by the fake direct-Viceroy fixture when present. |
| Consumer | Fastly local-engine surface test fixture. |
| Secret safety | Not a secret. The file records test arguments and paths. |
| Stability | Fixture-only; not a public tooling setting. |
| Source owners | wasm/test/provider/assert-fastly-cli-gate-surface.cjs |
PULSE_ES256_REPRODUCTION_ROOT#
Adds an independent source-identical raw guest artifact and Rust metadata comparison to G5.
| Property | Contract |
|---|---|
| Value | Directory path |
| Default | Unset; the G5 seal still performs its required local maintainer reconstruction. |
| Precedence | The --reproduction-root G5 option wins, then PULSE_ES256_REPRODUCTION_ROOT. |
| Consumer | Optional independent clean-container output comparison in the ES256 G5 seal. |
| Secret safety | Not a secret. The directory must contain only the public verifier source and build output. |
| Stability | Contributor/test-only proof reproduction control. |
| Source owners | wasm/test/jwt/assert-jwt-es256-final-seal.cjs |
PULSE_ES256_REPRODUCTION_ARCHIVE#
Records the byte size and hash of the independently supplied ES256 reproduction archive.
| Property | Contract |
|---|---|
| Value | File path |
| Default | Unset; no external archive identity is recorded. |
| Precedence | The --reproduction-archive G5 option wins, then PULSE_ES256_REPRODUCTION_ARCHIVE. |
| Consumer | Optional independent clean-container archive identity in the ES256 G5 seal. |
| Secret safety | Not a secret. The archive must contain only the public verifier source and build output. |
| Stability | Contributor/test-only proof reproduction control. |
| Source owners | wasm/test/jwt/assert-jwt-es256-final-seal.cjs |
PULSE_RUST_CARGO#
Selects the Cargo executable used to reproduce the sealed first-party Rust guest proof.
| Property | Contract |
|---|---|
| Value | Absolute or relative executable path |
| Default | No explicit path; discover cargo on PATH. |
| Precedence | PULSE_RUST_CARGO overrides PATH discovery in the guest-link proof harnesses. |
| Consumer | Phase A guest-link Rust fixture compilation and toolchain recording. |
| Secret safety | Not a secret. Do not point it at an untrusted executable. |
| Stability | Contributor/test-only proof reproduction control. |
| Source owners | wasm/test/guest-link/assert-scalar-link-control.cjs, wasm/test/guest-link/assert-memory-matrix.cjs, wasm/test/guest-link/assert-final-artifact-reality.cjs |
PULSE_RUSTC#
Selects the Rust compiler used to reproduce the sealed first-party Rust guest proof.
| Property | Contract |
|---|---|
| Value | Absolute or relative executable path |
| Default | No explicit path; discover rustc on PATH. |
| Precedence | PULSE_RUSTC overrides PATH discovery in the guest-link proof harnesses. |
| Consumer | Phase A guest-link Rust fixture compilation and toolchain recording. |
| Secret safety | Not a secret. Do not point it at an untrusted executable. |
| Stability | Contributor/test-only proof reproduction control. |
| Source owners | wasm/test/guest-link/assert-scalar-link-control.cjs, wasm/test/guest-link/assert-memory-matrix.cjs, wasm/test/guest-link/assert-final-artifact-reality.cjs |
Standard process variables#
Pulse also observes normal operating-system inputs such as PATH while locating external tools. Standard process variables are not renamed as Pulse configuration and are outside this catalog.