Mender integration with other services (one source of identity)

Hello, I am looking into Mender as OTA solution for my company. It is an awesome tool but something that I cannot find information for is the identity and integration with other systems.

Yes, I found the APIs and how Identity can be modified. What I am curious about is something like the following example:

We are going to have devices which will be used by different customers. Each customer wants a different kind of software (skin packs, etc). There is an internal system that has all the information about customers, their configurations for the software, etc. The idea is to be super easy for us to modify a specific device (update with different configuration) - this happens when one company sells the device to another company.

I think there 2 ways - have one and the same software on all machines and just update the configuration via MQTT connected to our internal system. This means we immediately have update on the device without installing new software, updates, building yocto packages, etc. Of course, when there is new functionality, we are going to update all of our devices but because of their configuration saved in /data everything will be ok after the update (with the same artifact all devices).

The second one is to have a cloud pipeline that will be triggered by us internally. This pipeline will build the new yocto image (with the specific env variables that will customize the software) and create a deployment in Mender. But for this case, we need the identity of the devices to be sync with our system. Even for the first case, we would like to know our devices’ version and mender artifact.

The perfect solution would be somehow to set our custom identities of the devices in mender. We just use UUID to ensure uniqueness. As far as I understand, there is an executable on each device that will create the id on the first start. But can’t get how we can set it to our custom id. To create different yocto builds for each device with their own ids seems overkill for me and maybe super wrong…

Believe there is a good practice doing so!

But can’t get how we can set it to our custom id.

It’s in the docs: Identity | Mender documentation