Skip to Content
This documentation is provided with the HEAT environment and describes this HEAT instance.

Configure HEAT Capture

Settings are edited in the application’s settings pages. Every edit is written to C:\ProgramData\VRAI\HEATCapture\UserConfig.json, and that file is watched, so most changes apply immediately. The tables below mark the settings that need a restart.

appsettings.json in the install directory holds the shipped defaults. It is not watched and is replaced on upgrade, so make deployment changes in the application or in UserConfig.json, not there.

Configuration is layered. Later layers win:

  1. appsettings.json in the install directory
  2. heat.modules.json, install directory then C:\ProgramData\VRAI\HEATCapture
  3. UserConfig.json in C:\ProgramData\VRAI\HEATCapture
  4. Command-line overrides in the form --Section:Key=value

Platform connection

SettingTypeDefaultEffectWhen to change
HEATSettings:HEAT_URLstringhttps://dev.heatvr.io/Base URL of the HEAT platform instance sessions are created againstAlways, at deployment time. The shipped value is a VRAI development instance
HEATSettings:TemplateIDinteger-1HEAT template the session is created fromWhen your platform administrator gives you a template id
HEATSettings:InputNodeIDinteger-1HEAT input node data is delivered toWith the template id

Changing HEAT_URL at runtime recreates the platform connection and signs the current user out. It also stops undelivered sessions recorded against the previous URL from being replayed: replay only runs when a stored session’s platform URL matches the configured one.

HEAT Settings page showing the HEAT URL field with a validated connection, and the Template ID and Input Node ID selectors.

Platform connection settings, with the URL validated and the template and input node resolved to names.

Embedded web server

The application hosts its own HTTP server for the user interface and the API.

SettingTypeDefaultEffectWhen to change
WebSettings:Hoststring0.0.0.0 as shipped in the desktop applicationInterface Kestrel binds. localhost or 127.0.0.1 binds loopback only; any other address binds that address; empty binds all interfacesSet to localhost unless a second machine genuinely needs access
WebSettings:Portinteger5005 as shipped in the desktop applicationHTTP portOn a port clash
WebSettings:EnableHttpsbooleanfalseAdds an HTTPS listener with a self-signed certificate generated into ProgramDataWhen a remote browser must reach the interface
WebSettings:HttpsPortinteger0, meaning Port + 1HTTPS portTo pin the port

All four need an application restart. They are read once, before the web server starts.

🚫

The desktop application ships bound to 0.0.0.0, so its interface and API are reachable from any machine that can route to the workstation. Most API endpoints perform no authentication. Bind to localhost, or restrict the port with a host firewall rule, before deploying on a shared network. The installer does not create any firewall rule.

Two behaviours worth knowing before enabling HTTPS:

  • The HTTPS listener always binds every interface, whatever Host says. Enabling HTTPS on a loopback-bound deployment exposes the application to the network.
  • If the resolved HTTPS port is outside 1 to 65535, or equal to the HTTP port, the HTTPS listener is skipped and HTTP stays up. The log records the reason.

Capture

SettingTypeDefaultEffectWhen to change
SimulationSettings:CaptureSessionNamestringDefault SessionSession name shown in the application and on the platformPer exercise or trial
SimulationSettings:CaptureTypeSimulation, Automatic, ManualManualWhether a session is linked to a simulation run and who starts itSimulation when the simulator drives the session
SimulationSettings:MachineSimulationGroupinteger1Groups concurrent simulations across machinesMulti-machine exercises
SimulationSettings:TimeWindowduration1 minuteWindow in which further participants may join the sessionLarger for staggered starts
SimulationSettings:StartSessionBeforeSimulationbooleanfalseStarts the session before launching the simulatorApplies only when CaptureType is Simulation
SimulationSettings:SimulationNamestringemptySimulation name reported to the platformApplies only when CaptureType is Simulation
SimulationSettings:SimPathstringemptyExecutable the application launches as the simulatorApplies only when CaptureType is Simulation
SimulationSettings:LanguageenumEnglishInterface language. Available: English, French, Italian, German, SpanishOperator preference

Capture Settings page with the session name field, capture type, machine simulation group, time window and language.

Capture settings, with an example session name and Manual capture type.

Changing the language reloads the interface.

Capture store

The capture store is the on-disk buffer every packet passes through before delivery.

SettingTypeDefaultEffectWhen to change
StorageSettings:BaseDirectorystringHARDStoreStore location. A relative value sits under C:\ProgramData\VRAI\HEATCapture. An absolute path is used only if writable, otherwise the default is usedTo record onto a dedicated data drive
StorageSettings:MinimumFreeSpaceBytesbytes5368709120 (5 GiB)Capture will not start below this, and a running capture is stoppedRarely. Lower only with a deliberate risk decision
StorageSettings:WarningFreeSpaceBytesbytes21474836480 (20 GiB)Low-disk warning thresholdTo warn earlier on large exercises
StorageSettings:FreeSpaceCheckIntervalMsinteger1000Free-space poll intervalRarely
StorageSettings:MaxSegmentBytesbytes536870912 (512 MiB)Size at which the store rolls to a new segmentRarely
StorageSettings:MaxBundlePacketsCountinteger400Packets per upload bundleTuning delivery with VRAI
StorageSettings:MaxBundleSizebytes10366976 (about 9.9 MiB)Size limit per upload bundleTuning delivery with VRAI
StorageSettings:MaxBundleRetriesinteger10Delivery attempts before a bundle is parked for the next launchOn a link with long outages
StorageSettings:RetryBackoffMsinteger250First retry delayTuning delivery with VRAI
StorageSettings:RetryBackoffMaxMsinteger5000Retry delay ceilingTuning delivery with VRAI
StorageSettings:AppendQueueCapacityinteger32768Packets that may await writing. When the queue fills, capture stops instead of dropping dataRarely

Session backup

An optional local copy of session data, separate from the capture store.

SettingTypeDefaultEffectWhen to change
SessionBackupSettings:EnabledbooleanfalseEnables local session backupWhen you need a local archive independent of the platform
SessionBackupSettings:BackupPathstringC:\SessionBackupsRoot directory; each session gets its own subdirectoryAlways, if backup is enabled: point it at a data drive
SessionBackupSettings:MinFreeSpaceBytesbytes2684354560 (2.5 GiB)Backup stops below thisRarely
SessionBackupSettings:FreeSpaceCheckIntervalMsinteger1000Free-space poll intervalRarely
SessionBackupSettings:CompressOnSessionEndbooleantrueCompresses the session directory when the session endsSet false if you post-process the raw files

Module trust

SettingTypeDefaultEffectWhen to change
ModuleSecurity:AllowUnsignedModulesbooleanfalseAllows modules without a trusted signature to loadWhen building or testing your own module, on a development or evaluation workstation. Modules whose signature is invalid are refused whatever this is set to. Not currently licence-gated

This setting needs a restart. The application reports that when you change it.

Module sources and policy

The Modules section defines where module packages come from and what may be installed. It is read once at startup, so every key here needs a restart.

SettingTypeDefaultEffect
Modules:RepositorieslistemptyPackage sources. The installer writes one entry for the VRAI curated registry when you supply a token
Modules:RequiredModuleslistemptyModules installed, and optionally updated, automatically at startup
Modules:EnforceAllowedModulesbooleanfalseRestricts installation to Modules:AllowedModules
Modules:AllowedModuleslistemptyThe allowed module names
Modules:AllowPackageMutationsbooleantruefalse blocks all install, update and uninstall
Modules:RequirePackageSignaturesbooleantrueRequires a package signature
Modules:StrictPrereleaseMatchingbooleanfalseWhether prerelease versions satisfy a version requirement

For a locked-down workstation, set EnforceAllowedModules to true with an explicit AllowedModules list, and set AllowPackageMutations to false once the workstation is provisioned.

Each installed module has its own settings section, including an Enabled flag. Module settings apply live and are pushed to the running module. See the page for the module in question.

Import a deployment configuration

Most customer deployments receive a VRAI-prepared .hcz file rather than a Module Library token. The HEAT Configuration Zip contains merged application settings, package metadata and the approved module directories. Import it from Settings using Import Config.

Import is a replacement, not a merge: it backs up the current state, replaces the current settings and all installed modules, and requires a restart. The package must contain settings.json and metadata.json; the upload limit is 512 MiB. The exported package format version at this product ref is 1.0.

The package excludes the installed-package manifest and removes the module-repository authentication token from exported settings. A customer package therefore does not need or carry a Module Library token unless separate registry access is configured after import.

Settings that need a restart

  • Everything under WebSettings
  • ModuleSecurity:AllowUnsignedModules
  • Everything under Modules
  • Any value set only in appsettings.json
  • Importing a configuration package

Everything else applies as soon as it is saved. Installing, updating and removing a module apply to the running application and need no restart. See Modules.

HEAT Capture Storage Settings showing the default bundle, retry, queue and free-space values.

Storage Settings at the documented defaults.

Opens your browser's print dialog. Choose "Save as PDF" as the destination.