protocol: define UUID textual format
Airlock uses node UUID to identify HTTP clients and lock holders. However, when serialized to textual form, UUID may have several representations. In particular, there are two that are relevant here:
- canonical form:
28c20a4a-64dd-488d-925c-1d591637ca8e - systemd form:
28c20a4a64dd488d925c1d591637ca8e
Dashes are just visual sugar for humans. Systemd uses the non-dashed form everywhere by default. We should pick one of the two forms, document it, and use it everywhere in an uniform way.
I'm going for the systemd form here, as the main producer in our case is Zincati which uses the non-dashed form.
@arithx I'm thinking of relaxing this a bit more and just take a generic id string with a reasonable upper length-limit.
I think that would make the protocol easier to use in environments where nodes may already be part of an orchestrated cluster and identified by some other labeling scheme (e.g. k8s manages machines by node-name).