Proposed place for these information:
- 1/ in the main (first) level:
"data": {
"nodes": [
{
"id": "32e45242-5571-4d9b-87ae-07b02b6f8fff",
"hostname": "node1.rudder.local",
....
"manufacturer": "innotek GmbH",
"systemSerialNumber": "0",
....
"os": {
....
}
... other caracteristics ...
}
}
2/ in the "machine"
"data": {
"nodes": [
{
"id": "32e45242-5571-4d9b-87ae-07b02b6f8fff",
"hostname": "node1.rudder.local",
....
....
"os": {
....
}
"machine": {
"id": "883EC5E5-5614-4F4F-881C-AE2AF8952DF4",
"type": "Virtual",
"provider": "vbox",
"manufacturer": "innotek GmbH",
"serialNumber": "0"
},
... other caracteristics ...
}
}
1/ map the most closely the logic of the node details. But 2/ seems more logical: these fields are optionnal and are actual caracteristic of the hardware.
For the naming scheme, I think "manufacturer" is OK. For the "system serial number", I think the whole name is needed if at the root level (case 1), but "machine.serialNumber" is shorter/better.
So I would go for 2, and the PR available here allow to test that solution: https://github.com/Normation/rudder/pull/613