Constraints & Interoperability
Fleet Manager follows the Margo Workload Management API specification to the letter. That discipline is what lets any Margo-compliant device interoperate with the platform without custom integration. This page collects the constraints that matter when you connect a device.
Who this is for: OT engineers and integrators.
What the platform enforces
Section titled “What the platform enforces”- Authentication is RFC 9421 HTTP Message Signatures only — no mTLS.
- Onboarding is
{ apiVersion, kind, certificate }in,201 { clientId }out (camelCase). - Capabilities use kind
DeviceCapabilitiesManifestand are write-only (no read-back through the API). - Desired state is a flat manifest with a monotonically increasing
manifestVersionandsha256:content digests. - Deployment profiles are limited to
helm.v3andcompose. - Deployment status is reported at
/deployments/:id/statuswith kindDeploymentStatusManifestand one of the six lowercase states (pending,installing,installed,failed,removing,removed). - Application YAML uses
apiVersion: application.margo.org/v1alpha1, with the id undermetadata.annotations.idand the profile atspec.deploymentProfile(singular). - Content types are
application/vnd.margo.manifest.v1+jsonfor manifests andapplication/vnd.margo.bundle.v1+tar+gzipfor bundles.
No platform-specific extensions
Section titled “No platform-specific extensions”To preserve interoperability, the platform deliberately does not add endpoints or fields beyond the Margo spec — for example, there are no capability-read, verification, status-history, or deployment-summary endpoints on the device interface. If a field or endpoint isn’t in the Margo spec, a device won’t encounter it here.
End to end
Section titled “End to end”Putting it together, a device:
- Onboards — signs its request, sends
{ apiVersion, kind, certificate }, receives aclientId. - Reports capabilities — submits its
DeviceCapabilitiesManifest. - Fetches desired state — reads the flat manifest,
verifies digests, and installs the
helm.v3orcomposeworkloads. - Reports status — posts
DeploymentStatusManifestupdates through the lifecycle states.
On the operator side, that same flow appears as devices coming online, the application catalog populating from registries, and deployments progressing through their states.