Skip to content
Documentation
1.0.0-beta.10 · latest

Environment-variable reference

Source e69e4b6f1381 · Published v1.0.0-beta.10

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 public Pulse project selection, provider tooling, 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.

Set PULSE_PROFILE to a profile declared in .pulse/config.ts, or use --profile for one command:

Terminal window
PULSE_PROFILE=local pulse doctor
pulse doctor --profile local

These examples assume a profile named local. An explicit --profile wins over PULSE_PROFILE; otherwise the configured pulse.defaultProfile is used. See profile selection for the full selection rules. Handler configuration and secrets still come through explicit bindings, not ambient environment reads.

  1. Public Pulse project configuration
  2. Fastly and Viceroy tooling
  3. Contributor and test-only configuration

Public Pulse project configuration. These inputs configure tools, not handler authority.

VariablePurposeDefault
PULSE_PROFILESelects the flat Pulse project profile when no explicit --profile option is supplied.Unset; use pulse.defaultProfile when declared.

Public Pulse project configuration

Selects the flat Pulse project profile when no explicit --profile option is supplied.

PropertyContract
ValuePulse profile name
DefaultUnset; use pulse.defaultProfile when declared.
Precedence--profile wins, then PULSE_PROFILE, then pulse.defaultProfile.
ConsumerProject-aware Pulse CLI commands using the .pulse/config.ts convention.
Secret safetyNot a secret. It selects a committed profile and never carries resolved binding values.
StabilitySupported project-selection input.
Source ownerswasm/packages/cli/src/project-config.js

Provider-specific executable overrides; separate from public Pulse project selection.

VariablePurposeDefault
PULSE_FASTLY_BINSelects the Fastly CLI binary used for external target inspection and local Compute execution.No explicit path; discover fastly on PATH.
PULSE_VICEROY_BINSelects an inspected Viceroy executable for direct local Compute execution when no explicit Fastly CLI launcher is selected.Unset; discover the Fastly CLI first, then Viceroy, on PATH.

Selects the Fastly CLI binary used for external target inspection and local Compute execution.

PropertyContract
ValueAbsolute or relative executable path
DefaultNo explicit path; discover fastly on PATH.
PrecedenceAn explicit binary option wins, then PULSE_FASTLY_BIN, then PATH discovery.
ConsumerFastly CLI inspection and the external Compute reality gate.
Secret safetyNot a secret. Do not point it at an untrusted executable.
StabilitySupported Beta tooling override.
Source ownerspackages/provider-fastly/src/testing/fastly-cli.js

Selects an inspected Viceroy executable for direct local Compute execution when no explicit Fastly CLI launcher is selected.

PropertyContract
ValueAbsolute or relative executable path
DefaultUnset; discover the Fastly CLI first, then Viceroy, on PATH.
PrecedenceAn 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.
ConsumerExternal Fastly Compute reality gates, either as the direct local engine or as an explicit Fastly CLI engine override.
Secret safetyNot a secret. Do not point it at an untrusted executable.
StabilitySupported Beta tooling override.
Source ownerspackages/provider-fastly/src/testing/fastly-cli.js

Repository harness controls. They are intentionally outside the application compatibility contract.

VariablePurposeDefault
PULSE_CONTEXT_QUALITY_DIRRoutes incremental actual, growth and repeated-call receipts. Does not change cases, acceptance criteria or runtime budgets.wasm/.test-results/context-quality in the source checkout.
PULSE_CALLABLE_LIFETIME_RECEIPTRetains an incremental receipt when the proof runs through the shared test runner. Does not change test coverage or runtime limits.Unset; the callable lifetime proof only prints its terminal summary.
PULSEWASM_TEST_PHASE_DIREnables optional compiler/test phase spans and nested filesystem/hash counters. Does not change task coverage or authorize reuse.Unset; phase observation is disabled.
PULSEWASM_SUITE_TASKIdentifies the current registered test task so forwarding target proofs have distinct reports.Assigned by the test runner for each task.
PULSEWASM_ARTIFACTS_DIRRedirects generated build and test artifacts away from the default repository directory.wasm/artifacts.
PULSEWASM_TEST_TMP_ROOTPins test workspaces beneath a caller-managed temporary root.A suite-specific temporary directory.

Routes incremental actual, growth and repeated-call receipts. Does not change cases, acceptance criteria or runtime budgets.

PropertyContract
ValueWritable receipt directory path
Defaultwasm/.test-results/context-quality in the source checkout.
PrecedenceThe environment value selects the output directory for each quality task.
ConsumerThe internal B10-MCP-06B complete-request quality and cost proof.
Secret safetyNot a secret. Contains fixture queries, source/artifact identities, timing, allocation counters and failure evidence.
StabilityContributor/test-only; no application compatibility or seal authority.
Source ownerswasm/test/mcp/assert-context-quality.cjs

Retains an incremental receipt when the proof runs through the shared test runner. Does not change test coverage or runtime limits.

PropertyContract
ValueWritable JSON receipt file path
DefaultUnset; the callable lifetime proof only prints its terminal summary.
PrecedenceThe proof script positional output path takes precedence.
ConsumerThe internal B10-MCP-05F callable lifetime proof.
Secret safetyNot a secret. Records fixture artifact hashes, source identity, failure codes and memory measurements.
StabilityContributor/test-only; no application compatibility or seal authority.
Source ownerswasm/test/callables/assert-callable-lifetime.cjs

Enables optional compiler/test phase spans and nested filesystem/hash counters. Does not change task coverage or authorize reuse.

PropertyContract
ValueExisting diagnostic output directory
DefaultUnset; phase observation is disabled.
PrecedenceThe operator supplies a fresh directory to the test-only preload.
ConsumerBounded B10-01 phase attribution, including the copied installed JWT helper.
Secret safetyNot a secret. Records timing, counters and artifact digests; no argument, source or environment contents.
StabilityContributor/test-only; no qualification or cache authority.
Source ownerswasm/test/support/phase-observer.cjs, wasm/test/jwt/assert-jwt-installed-workflow.cjs

Identifies the current registered test task so forwarding target proofs have distinct reports.

PropertyContract
ValueRegistered task ID
DefaultAssigned by the test runner for each task.
PrecedenceThe runner overrides any inherited task identity.
ConsumerInstalled acceptance report routing and task harnesses.
Secret safetyNot a secret. It selects only the report filename.
StabilityHarness-internal; not a user or application setting.
Source ownerswasm/test/support/installed-acceptance-report.cjs

Redirects generated build and test artifacts away from the default repository directory.

PropertyContract
ValueDirectory path
Defaultwasm/artifacts.
PrecedenceOverrides the repository artifact root for scripts that opt into it.
ConsumerBuild and test isolation.
Secret safetyNot a secret. Use an isolated writable directory.
StabilityContributor/test-only.
Source ownerswasm/packages/build-support/src/artifacts-dir.js, wasm/scripts/build.cjs, wasm/scripts/run-wasm-tests.cjs

Pins test workspaces beneath a caller-managed temporary root.

PropertyContract
ValueDirectory path
DefaultA suite-specific temporary directory.
PrecedenceWhen set, tests create their working directories beneath this root.
ConsumerDocumentation, CLI, provider, package-release, and clean-machine acceptance tests.
Secret safetyNot a secret. The directory may contain generated projects and test data.
StabilityContributor/test-only; may change with test-runner updates.
Source ownerswasm/test/docs/assert-executable-documentation.cjs, wasm/test/release/assert-release-packages.cjs
VariablePurposeDefault
PULSEWASM_SEAL_WORKER_LAYOUTAllows exact shared-package consumption by registered local children of one controller; foreign checkouts and remote proof pooling remain rejected.Unset; shared packages belong only to their original checkout.
PULSE_RELEASE_SHARED_PACKReuses one clean-source package set through verified private copies; independent determinism construction bypasses reuse.Unset; packing constructs fresh packages.
PULSE_RELEASE_SHARED_PACK_SHA256Rejects receipt changes before validating source identity and every shared package file.Unset; required when a shared package directory is supplied.
PULSE_RELEASE_FEATURE_REPORT_DIRRoutes each installed proof into a task-specific report for the candidate release decision.Unset; focused installed tests use their own report directories.
PULSE_RELEASE_REFCarries the sealed candidate release ref into the protected publish process for an equality check against GitHub's native identity.Unset; the protected npm workflow derives it from the sealed candidate.
PULSE_RELEASE_SHACarries the sealed candidate source commit into the protected publish process for an equality check against GitHub's native identity.Unset; the protected npm workflow derives it from the sealed candidate.
PULSE_SOURCE_REVISIONPropagates one source identity through an aggregate release replay so independently written evidence cannot drift.Current Git commit, or a deterministic archive-tree identity outside a Git checkout.
PULSE_SOURCE_IDENTITY_KINDLabels the provenance class of the propagated source identity.git-commit in a checkout or archive-tree-sha256-160 for an extracted source tree.
PULSE_SOURCE_DIGEST_SHA256Preserves the full archive-tree digest behind the compatibility-width source revision field.Unset for Git commits; the full archive-tree digest outside a Git checkout.
PULSE_SOURCE_FILE_COUNTCarries the source-file count associated with an archive-tree digest for audit clarity.Unset for Git commits; the deterministic archive-tree inventory count otherwise.

Allows exact shared-package consumption by registered local children of one controller; foreign checkouts and remote proof pooling remain rejected.

PropertyContract
ValueAbsolute controller-owned layout path
DefaultUnset; shared packages belong only to their original checkout.
PrecedenceThe release controller supplies the registered layout to each isolated worker.
ConsumerShared package verification in local seal workers.
Secret safetyNot a secret. Identifies private worktrees and their clean candidate.
StabilityHarness-internal; outside the application compatibility contract.
Source ownersscripts/release-shared-pack.cjs, wasm/scripts/run-wasm-tests.cjs

Reuses one clean-source package set through verified private copies; independent determinism construction bypasses reuse.

PropertyContract
ValueDirectory path
DefaultUnset; packing constructs fresh packages.
PrecedenceThe seal supplies its own attempt-local directory to consumer tasks.
ConsumerRelease package construction and installed acceptance.
Secret safetyNot a secret. Contains verified candidate tarballs and their receipt.
StabilityHarness-internal; outside the application compatibility contract.
Source ownersscripts/pack-release.cjs, scripts/release-shared-pack.cjs

Rejects receipt changes before validating source identity and every shared package file.

PropertyContract
ValueSHA-256 digest
DefaultUnset; required when a shared package directory is supplied.
PrecedenceThe seal pins the receipt digest before launching consumer tasks.
ConsumerShared release package receipt verification.
Secret safetyNot a secret. Identifies source-bound package evidence.
StabilityHarness-internal; outside the application compatibility contract.
Source ownersscripts/release-shared-pack.cjs

Routes each installed proof into a task-specific report for the candidate release decision.

PropertyContract
ValueDirectory path
DefaultUnset; focused installed tests use their own report directories.
PrecedenceThe complete feature replay assigns a fresh directory to its child runner.
ConsumerInstalled feature acceptance report routing.
Secret safetyNot a secret. Contains source, package and acceptance evidence only.
StabilityHarness-internal; outside the application compatibility contract.
Source ownerswasm/test/support/installed-acceptance-report.cjs

Carries the sealed candidate release ref into the protected publish process for an equality check against GitHub's native identity.

PropertyContract
ValueFull Git ref (refs/tags/v<version>)
DefaultUnset; the protected npm workflow derives it from the sealed candidate.
PrecedenceWhen set by the workflow, it must exactly equal GitHub's native release-tag ref.
ConsumerProtected npm publication identity binding.
Secret safetyNot a secret. It is validated rather than trusted as independent authority.
StabilityRepository release-workflow internal; not an application setting.
Source ownersscripts/release-publication.cjs

Carries the sealed candidate source commit into the protected publish process for an equality check against GitHub's native identity.

PropertyContract
ValueFull lowercase 40-character Git commit SHA
DefaultUnset; the protected npm workflow derives it from the sealed candidate.
PrecedenceWhen set by the workflow, it must exactly equal GitHub's native release-tag commit.
ConsumerProtected npm publication identity binding.
Secret safetyNot a secret. It is validated rather than trusted as independent authority.
StabilityRepository release-workflow internal; not an application setting.
Source ownersscripts/release-publication.cjs

Propagates one source identity through an aggregate release replay so independently written evidence cannot drift.

PropertyContract
Value40-character lowercase source identity
DefaultCurrent Git commit, or a deterministic archive-tree identity outside a Git checkout.
PrecedenceWhen set by the release runner, every child evidence shard validates and reuses this exact identity.
ConsumerRelease-seal task, four-mode, and offline deployment-candidate evidence binding.
Secret safetyNot a secret. It identifies source but grants no publication or deployment authority.
StabilityRepository release-evidence internal; not an application setting.
Source ownersscripts/source-identity.cjs

Labels the provenance class of the propagated source identity.

PropertyContract
ValueSource identity classification
Defaultgit-commit in a checkout or archive-tree-sha256-160 for an extracted source tree.
PrecedenceMeaningful only with PULSE_SOURCE_REVISION; the release runner supplies both together.
ConsumerRelease-seal reports, test reports, four-mode evidence, and offline candidate manifests.
Secret safetyNot a secret. It prevents an archive digest from being represented as a Git commit.
StabilityRepository release-evidence internal; not an application setting.
Source ownersscripts/source-identity.cjs

Preserves the full archive-tree digest behind the compatibility-width source revision field.

PropertyContract
Value64-character lowercase SHA-256 digest
DefaultUnset for Git commits; the full archive-tree digest outside a Git checkout.
PrecedenceThe release runner supplies it with an archive-tree source identity.
ConsumerRelease-seal reports, test reports, four-mode evidence, and offline candidate manifests.
Secret safetyNot a secret. It is integrity metadata and carries no release authority.
StabilityRepository release-evidence internal; not an application setting.
Source ownersscripts/source-identity.cjs

Carries the source-file count associated with an archive-tree digest for audit clarity.

PropertyContract
ValueNon-negative integer
DefaultUnset for Git commits; the deterministic archive-tree inventory count otherwise.
PrecedenceThe release runner supplies it with an archive-tree source identity.
ConsumerRelease-seal reports, test reports, four-mode evidence, and offline candidate manifests.
Secret safetyNot a secret. It records only the number of source files in the identity inventory.
StabilityRepository release-evidence internal; not an application setting.
Source ownersscripts/source-identity.cjs
VariablePurposeDefault
PULSE_B02_BASELINE_ROOTIdentifies a restored pre-B02 checkout for alternating baseline/candidate compiler measurements.Unset; the manual B02 benchmark requires an explicit baseline checkout.
PULSE_B02_USAGE_DIRPasses the isolated measurement directory to the temporary compiler preload collector.Created separately for each sample by the B02 benchmark harness.
PULSE_B03_USAGE_DIRKeeps compiler-process RSS separate from the planning worker and cold execution measurements.Created separately for each sample by the B03 benchmark harness.
PULSE_ES256_REPRODUCTION_ROOTAdds an independent source-identical raw guest artifact and Rust metadata comparison to G5.Unset; the G5 seal still performs its required local maintainer reconstruction.
PULSE_ES256_REPRODUCTION_ARCHIVERecords the byte size and hash of the independently supplied ES256 reproduction archive.Unset; no external archive identity is recorded.
PULSE_RUST_CARGOSelects the Cargo executable used to reproduce the sealed first-party Rust guest proof.No explicit path; discover cargo on PATH.
PULSE_RUSTCSelects the Rust compiler used to reproduce the sealed first-party Rust guest proof.No explicit path; discover rustc on PATH.
PULSEWASM_MEM03_BASESelects an explicit baseline generator revision for paired semantic and allocator measurements.Merged GEN01 commit 8a6f2ff.

Identifies a restored pre-B02 checkout for alternating baseline/candidate compiler measurements.

PropertyContract
ValueDirectory path
DefaultUnset; the manual B02 benchmark requires an explicit baseline checkout.
PrecedenceSelects the baseline; the candidate is the checkout containing the harness.
ConsumerManual B02 terminal Router body cost proof.
Secret safetyNot a secret. The harness executes compiler code from this checkout; use trusted source.
StabilityContributor/test-only; outside the application compatibility contract.
Source ownerswasm/test/runtime/compiler-efficiency/b02-handler-cost.cjs

Passes the isolated measurement directory to the temporary compiler preload collector.

PropertyContract
ValueDirectory path
DefaultCreated separately for each sample by the B02 benchmark harness.
PrecedenceThe harness supplies and overrides this value in each child process.
ConsumerB02 AssemblyScript child-process RSS collector.
Secret safetyNot a secret. Contains temporary process IDs and peak RSS measurements.
StabilityHarness-internal test control; not a user or application setting.
Source ownerswasm/test/runtime/compiler-efficiency/b02-handler-cost.cjs

Keeps compiler-process RSS separate from the planning worker and cold execution measurements.

PropertyContract
ValueDirectory path
DefaultCreated separately for each sample by the B03 benchmark harness.
PrecedenceThe harness supplies and overrides this value in each compiler child process.
ConsumerB03 AssemblyScript child-process RSS collector.
Secret safetyNot a secret. Contains temporary process IDs and peak RSS measurements.
StabilityHarness-internal test control; not a user or application setting.
Source ownerswasm/test/runtime/compiler-efficiency/b03-handler-functions.cjs

Adds an independent source-identical raw guest artifact and Rust metadata comparison to G5.

PropertyContract
ValueDirectory path
DefaultUnset; the G5 seal still performs its required local maintainer reconstruction.
PrecedenceThe --reproduction-root G5 option wins, then PULSE_ES256_REPRODUCTION_ROOT.
ConsumerOptional independent clean-container output comparison in the ES256 G5 seal.
Secret safetyNot a secret. The directory must contain only the public verifier source and build output.
StabilityContributor/test-only proof reproduction control.
Source ownerswasm/test/jwt/assert-jwt-es256-final-seal.cjs

Records the byte size and hash of the independently supplied ES256 reproduction archive.

PropertyContract
ValueFile path
DefaultUnset; no external archive identity is recorded.
PrecedenceThe --reproduction-archive G5 option wins, then PULSE_ES256_REPRODUCTION_ARCHIVE.
ConsumerOptional independent clean-container archive identity in the ES256 G5 seal.
Secret safetyNot a secret. The archive must contain only the public verifier source and build output.
StabilityContributor/test-only proof reproduction control.
Source ownerswasm/test/jwt/assert-jwt-es256-final-seal.cjs

Selects the Cargo executable used to reproduce the sealed first-party Rust guest proof.

PropertyContract
ValueAbsolute or relative executable path
DefaultNo explicit path; discover cargo on PATH.
PrecedencePULSE_RUST_CARGO overrides PATH discovery in the guest-link proof harnesses.
ConsumerPhase A guest-link Rust fixture compilation and toolchain recording.
Secret safetyNot a secret. Do not point it at an untrusted executable.
StabilityContributor/test-only proof reproduction control.
Source ownerswasm/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

Selects the Rust compiler used to reproduce the sealed first-party Rust guest proof.

PropertyContract
ValueAbsolute or relative executable path
DefaultNo explicit path; discover rustc on PATH.
PrecedencePULSE_RUSTC overrides PATH discovery in the guest-link proof harnesses.
ConsumerPhase A guest-link Rust fixture compilation and toolchain recording.
Secret safetyNot a secret. Do not point it at an untrusted executable.
StabilityContributor/test-only proof reproduction control.
Source ownerswasm/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

Selects an explicit baseline generator revision for paired semantic and allocator measurements.

PropertyContract
ValueGit commit or ref
DefaultMerged GEN01 commit 8a6f2ff.
PrecedenceWhen set, selects the baseline generator source loaded from git; all other dependencies come from the candidate checkout.
ConsumerManual MEM03 Fastly schema encode materialization proof.
Secret safetyNot a secret. Use only a trusted baseline generator revision for the proof.
StabilityContributor/test-only proof reproduction control.
Source ownerswasm/test/runtime/compiler-efficiency/mem03-encode-materialization.cjs
VariablePurposeDefault
PULSE_FASTLY_REALITY_EVIDENCESelects the output path for the real Fastly host evidence report.Unset; the reality gate prints its normal test result without retaining a proof file.
PULSE_FOUR_MODE_EVIDENCESelects the output path for the four-mode conformance evidence report.wasm/.test-results/four-mode-conformance.json.
PULSE_FAKE_FASTLY_CAPTURETells the fake Fastly CLI where to write its captured invocation.Unset.
PULSE_FAKE_VICEROY_CAPTURETells the fake Viceroy launcher where to write its captured invocation.Unset.

Selects the output path for the real Fastly host evidence report.

PropertyContract
ValueFile path
DefaultUnset; the reality gate prints its normal test result without retaining a proof file.
PrecedenceWhen set, the real-host gate writes its redacted machine-readable proof to this path.
ConsumerFastly CLI-managed or direct-Viceroy local Compute reality gate.
Secret safetyNot a secret. The proof intentionally excludes secret values and authorization plaintext.
StabilityContributor/release tooling override.
Source ownerswasm/test/provider/assert-fastly-compute-reality.cjs

Selects the output path for the four-mode conformance evidence report.

PropertyContract
ValueFile path
Defaultwasm/.test-results/four-mode-conformance.json.
PrecedenceWhen set, the four-mode conformance suite writes its revision-bound proof to this path.
ConsumerNode/Fastly Native/JavaScript conformance evidence.
Secret safetyNot a secret. The proof records target identities, support hashes, and test outcomes without application secrets.
StabilityContributor/release tooling override.
Source ownerswasm/test/contracts/assert-four-mode-conformance.cjs

Tells the fake Fastly CLI where to write its captured invocation.

PropertyContract
ValueFile path
DefaultUnset.
PrecedenceUsed only by the fake Fastly CLI fixture when present.
ConsumerFastly CLI surface test fixture.
Secret safetyNot a secret. The file records test arguments and paths.
StabilityFixture-only; not a public tooling setting.
Source ownerswasm/test/provider/assert-fastly-cli-gate-surface.cjs

Tells the fake Viceroy launcher where to write its captured invocation.

PropertyContract
ValueFile path
DefaultUnset.
PrecedenceUsed only by the fake direct-Viceroy fixture when present.
ConsumerFastly local-engine surface test fixture.
Secret safetyNot a secret. The file records test arguments and paths.
StabilityFixture-only; not a public tooling setting.
Source ownerswasm/test/provider/assert-fastly-cli-gate-surface.cjs

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.