Skip to main content

Documentation Index

Fetch the complete documentation index at: https://doc.heex.io/llms.txt

Use this file to discover all available pages before exploring further.

This page is the canonical reference for status semantics across Heex resources, used by CLI, GraphQL, and MCP integrations. End users browsing the web UI should refer to the per-page status sections in the Web Interface which use the UI labels directly.

Overview

Heex resources progress through five distinct status fields. Some fields reuse the same enum but in different contexts (entity-level vs per-system).
Resource scopeGraphQL fieldEnumDriven by
System (entity-level)System.statusSystemStatusConfiguration completion and Heex Agent OTA pull
Trigger (entity-level)Trigger.statusTriggerStatusAPI, reflects configuration completeness
Trigger on a systemSystemTrigger.statusTriggerStatus (reused)Heex Agent OTA pull on the target machine
Implementation (developer page)Implementation.statusImplementationStatusManual, developer marks Ready when the binary is built
Implementation on a system, per signalSystemSignal.statusImplementationStatus (reused)Heex Agent OTA pull on the target machine
The same enum value can carry different operational meaning depending on the field it appears in. Always interpret a status in the context of its GraphQL field. The TO_DEPLOY to READY transition on System.status, SystemTrigger.status, and SystemSignal.status requires the Heex Agent installed and connected on the target machine; the Heex SDK does not drive it. See Heex Installer Mode.

System.status

System.status reflects the overall configuration and deployment state of a system.
API valueMeaningUI label
TO_CONFIGUREThe system is missing required datasources, triggers, or implementationsTo Configure
REQUESTEDThe system has been requested, configuration is in progressRequested
TO_CODEThe configuration references implementations that are not yet Ready on the developer pageTo Code
TO_DEPLOYConfiguration is complete and valid, the Heex Agent has not yet pulled it on this machineTo Deploy
READYConfiguration is present on the Heex Agent running on this systemDeployed
The terminal value is READY in the API but labeled Deployed in the web UI. This is the only place in Heex where the terminal label differs from the enum name.

Trigger.status

Trigger.status describes the trigger as a configuration entity, independent of any system.
API valueMeaningUI label
TO_CONFIGURENo monitoring condition defined, or referenced signals are invalidNot Ready
REQUESTEDTrigger creation in progress, not yet completeNot Ready
TO_CODEThe trigger references implementations not yet Ready on the developer page (rarely shown at this level)Not Ready
TO_DEPLOYConfiguration complete but not yet observed deployed anywhere (rarely shown at this level)Not Ready
READYConfiguration is complete and the trigger can be attached to any compatible systemReady
In practice the trigger list UI collapses everything before READY into a single Not Ready label. The detailed reason is only available through the API.

SystemTrigger.status

SystemTrigger.status describes the deployment progress of a trigger on a specific system. The enum is the same as Trigger.status but only the values below are reachable per-system (TO_CONFIGURE belongs to the entity level).
API valueMeaningUI label
REQUESTEDThe trigger has been attached to the system but the configuration is incompleteRequested
TO_CODEOne or more implementations required by the trigger are not yet ReadyTo Code
TO_DEPLOYAll implementations are Ready, the Heex Agent has not yet pulled the configuration on this machineTo Deploy
READYThe trigger is deployed on the system, the Agent has it and can generate eventsReady
A trigger can be Ready at the entity level (Trigger.status) but To Deploy on a specific system. This is expected and simply means the Heex Agent on that machine has not yet pulled the latest configuration.

Implementation.status

This field is special because the transition to READY is not automatic; it reflects a deliberate handover from development to operations.
The enum naming for ImplementationStatus is inconsistent: only the first value carries the IMPLEMENTATION_STATUS_ prefix, all others use bare names. This is kept for backward compatibility and is purely a wire-format detail.
API valueMeaningUI label
IMPLEMENTATION_STATUS_TO_CONFIGUREImplementation declared but signal mapping not yet providedNot Ready
REQUESTEDThe system administrator has requested this implementation, the binary is not yet builtRequested
TO_DEPLOYRarely shown on the developer page, included for completenessTo Deploy
READYThe developer marked the implementation as ready for deploymentReady
RUNNINGReserved, the developer page does not surface this value(not shown)
The Ready transition is manual. Either the developer flips it from the developer page, or runs heex implementation validate from the CLI. Unlike other Heex statuses, this one does not progress automatically. See the Implementation CLI command.

SystemSignal.status

Per-system implementation status is tracked per (signal, conditionType) pair, not per implementation. Each SystemSignal entry binds a signal, a conditionType (MONITOR or RECORDER), the source implementation, and its deployment status on this system.
API valueMeaningUI label
IMPLEMENTATION_STATUS_TO_CONFIGURESignal mapping incomplete on this systemNot Ready
REQUESTEDThe implementation is not yet Ready on the developer pageRequested
TO_DEPLOYImplementation is Ready on the developer page; the Heex Agent has not yet pulled it on this machineTo Deploy
READYThe implementation is present in the Heex Agent running on this systemReady
RUNNINGThe implementation is deployed and actively executing on the AgentRunning
The UI aggregates SystemSignal entries to display per-implementation status on a system page. For example, an implementation that handles 3 signals as both monitor and recorder produces 6 SystemSignal entries (3 × 2) on one system, all expected to converge to the same status under normal operation.

Terminal-state naming convention

The terminal state is named READY in TriggerStatus, ImplementationStatus, and SystemStatus. The web UI labels it as Ready in the Trigger and Implementation contexts, and as Deployed in the System context. All three refer to the same enum value, READY.
GraphQL fieldAPI terminal valueUI label
System.statusSystemStatus.READYDeployed
Trigger.statusTriggerStatus.READYReady
SystemTrigger.statusTriggerStatus.READYReady
Implementation.statusImplementationStatus.READYReady
SystemSignal.statusImplementationStatus.READYReady
SystemSignal.statusImplementationStatus.RUNNINGRunning

Driving transitions from the CLI

The transitions you typically drive manually:
# Mark an implementation as Ready (manual transition on Implementation.status)
heex implementation validate --implementation-id <IMPLEMENTATION_ID>

# Check the per-system status of triggers and signals
heex system get --system-id <SYSTEM_ID>

# Verify the Heex Agent installed on a system (resolves stuck TO_DEPLOY on System, SystemTrigger, SystemSignal)
heex agent list --system-id <SYSTEM_ID> --active

See also