Manage capture modules
A capture module is a signed package that reads one data source. HEAT Capture runs each module in its own child process, so a module that crashes cannot stop the application or the session.
For what each module captures, see the module catalogue. For where modules come from, how to install one, and how trust and capability checks work, see Install a capture module.
Install the deployment module set
- Stop any active session.
- Open Settings, select Import Config, and choose the
.hczsupplied by VRAI. - Confirm the replacement of the current settings and modules.
- Restart HEAT Capture and verify the expected modules are listed.
At this product ref, module selection from licence keys is not implemented by the installer.
Installing, updating and removing
See Install a capture module for the steps: registry install, drag-and-drop package install, signature verification, and the capability declarations HEAT Capture validates before a module starts.
Enable and disable
Enabling is part of a module’s own settings, not a separate control. Changes apply live: enabling a module while the application is running starts it at the next session boundary, and disabling it stops it.
A module with no explicit setting is disabled unless its package declares otherwise.
Settings every module has
Every data module’s settings, whatever it adds of its own, are built on the same five fields
(BaseDataModuleSettings in the SDK). A module page documents only what it adds beyond these,
not these fields themselves.
| Setting | Type | Default | What it controls |
|---|---|---|---|
Enabled | boolean | true | Whether the module runs at all - see above. |
Interval | integer (ms) | 1000 | How often the host polls the module for data, for modules that return data from that poll rather than publishing it directly in the background. Its practical effect varies by module; a module that publishes continuously in the background may not be sensitive to it at all, and a module’s own page says so when this setting needs a non-default value. |
OverrideNodeId | boolean | false | Tags every packet this module publishes with NodeId instead of the host’s default node identity. Relevant only in multi-node HEAT Capture deployments. |
NodeId | integer | 0 | The node identifier used when OverrideNodeId is enabled. |
Timeout | duration | 30s | How long HEAT Capture waits for this module to stop cleanly before forcing it. If set below 5 seconds, HEAT Capture ignores the configured value and uses a 30-second fallback instead. |
A module can hide any of these from its own settings UI (most commonly Interval and Timeout,
when the module’s own design makes them irrelevant); its own page says so when that applies.
When a module misbehaves
Module failures never abort a session. The session continues without that module’s data.
| Situation | What the application does |
|---|---|
| Module fails to start | Logs a warning and schedules a retry |
| Module process dies | Detected within 30 seconds, then retried after a cooldown |
| Repeated failures | Cooldown grows: 1, 5, 15, then 30 minutes between attempts |
| Ten minutes of healthy running | The failure record is cleared |
| Module will not stop when asked | Given 5 seconds, then quarantined for the rest of the application run |
A quarantined module is the one case that needs an application restart to come back:
Module {ModuleName} didn't stop correctly and has been quarantined. It will not run again until the application is restarted. From here on there will be dragons.Per-module state, including whether it is running, its child process id, its last failure and when
it will be retried, is available in the interface and through GET /api/operations/summary.
Locking down a workstation
For an accredited or shared workstation:
- Install exactly the modules the role needs.
- Set
Modules:EnforceAllowedModulestotrueand list those modules inModules:AllowedModules. - Set
Modules:AllowPackageMutationstofalse, which blocks install, update and uninstall. - Leave
ModuleSecurity:AllowUnsignedModulesatfalse. - Restart. All of these are read at startup.
With mutations disabled, attempts to change packages are refused and logged:
Blocking {Operation} for {Package}: package mutations are disabled