omega-agent) that connects a device to the platform over MQTT and runs the modules that device needs: over-the-air updates, inventory, data sync, posture, remote control, and more. It runs on Linux, macOS, and Windows.
Repository: golain-io/omega-rs
Two binaries
Architecture
The two-layer model
Everything about a device is set by two independent things — keep them distinct:The build (a SKU)
Cargo features decide which modules a binary can run. A feature that isn’t compiled in doesn’t exist in that binary.
The profile
config.yaml decides which of those modules actually run, the device’s identity and broker, and its security policy.What’s always there (the core)
Every build includes, without any feature flag:- Transport — the MQTT (or QUIC) connection to the broker, with keepalive and reconnect-with-backoff.
- Enrollment (JITR) — first-boot identity: generate a key, get a device certificate. See Enrollment.
- Certificate manager — background renewal before expiry.
- OTA engine — signed deployments, and self-update via A/B binary slots with health-confirmed commit.
- Inventory — SBOM / HBOM / PBOM collectors and the node capability framework (hosted by the OTA subsystem).
- SQLite sync — change-data-capture replication of a device’s SQLite database to the platform.
- Module lifecycle & security — starting the profile’s modules, control-message signing, capability gating, storage/payload quotas.
Life of a device
1
Enroll (first boot only)
With a
connection.jitr block, the device generates its own key, proves possession of the factory bootstrap key, and receives its device certificate. See Enrollment (JITR).2
Connect
It opens an mTLS MQTT session to the broker and subscribes the control topics for every module it runs. A topic the broker denies is fatal — the device won’t come up half-controllable. See Connect.
3
Run modules
Each module in
modules.required starts, subscribes its control topics, and begins reporting. Nothing that isn’t listed runs.4
Operate
The platform sends signed control messages; the device reports telemetry, inventory, and status; OTA delivers updates. Certificate renewal runs in the background.
Where to go next
Build Omega
The Cargo feature system and composing a SKU for a device class.
Configure Omega
The complete profile reference.
Connect
Transports and the MQTT topic namespace.
Enrollment (JITR)
Provisioning a device its first certificate.
OTA & self-update
Signed deployments and A/B self-update with automatic revert.
Troubleshooting
When a device won’t come up — where Omega writes the reason.