Installed artifact integrity
A successful rollout proves that the agent downloaded verified bytes, activated them, and passed the configured health gate at that time. Installed-artifact integrity answers the next question: does the active state still match that verified rollout?
After a successful activation, the Linux agent records a local measurement target. It re-measures supported targets in the background and includes the latest bounded result on its authenticated heartbeat. If a file is replaced, removed, or corrupted, or a managed container is stopped or changed to another image digest, the device appears under Integrity attention in the fleet.
Supported measurements
| Delivery path | Current measurement |
|---|---|
| Raw model, config, or file | SHA-256 of the active file in the agent-managed release |
| Placed model or config | SHA-256 of the allowlisted destination file |
| Systemd service binary | SHA-256 of the allowlisted active binary |
| Managed OCI container | Configured digest-pinned image and running state |
| Compose stack | Not measured |
| RAUC, DEB/RPM, MCU | Not measured by the Linux artifact-integrity scanner |
The file scan streams bytes and does not load a model or binary into memory. The
default scan interval is 15 minutes and can be changed with
MESHANICS_INTEGRITY_SCAN_INTERVAL, for example 1h for devices where repeatedly
reading a large model would create unacceptable I/O.
What the control panel means
- verified - the latest observed digest equals the locally recorded last-known-good digest;
- attention - one or more targets drifted or disappeared;
- warning - a measurement could not complete;
- partial - supported targets verified, but at least one active adapter is not measurable yet;
- unsupported - the current targets use adapters without a measurement;
- unavailable - the agent has not sent this additive contract, or no target has completed a successful rollout with the new agent.
The device detail view shows expected and observed digests, exact observation
time, and the affected artifact. Drift and recovery transitions also enter the
device audit timeline and the integrity.* webhook family.
Security boundary
Integrity drift is an attention signal, not an automatic verdict that a device was compromised. A local administrator, another management tool, storage corruption, or an attacker can all create the same mismatch.
The first assurance level is device-reported. Mutual TLS authenticates the enrolled device that sent the observation, but a root-level attacker able to replace the agent or its local state may suppress it. Device-signed receipts and hardware-backed appraisal are separate, stronger assurance levels. A digest match also proves bytes, not that the application is behaving correctly, so health probes and model evaluation remain separate controls.
Privacy boundary
The heartbeat contains artifact identity, measurement type, expected and observed digest, state, time, and a bounded diagnostic. It does not contain:
- artifact, model, configuration, or binary contents;
- absolute device paths;
- container environment or writable-layer contents;
- process, port, user, or filesystem inventory.
Meshanics does not automatically overwrite local drift or quarantine a device. That preserves operator control and avoids destroying possible forensic state.