eclipse-sparkplug / sparkplug

Sparkplug
Eclipse Public License 2.0
114 stars 39 forks source link

Add to NCMD and DCMD payloads an identifier of the source of the command #306

Open matthewGEA opened 2 years ago

matthewGEA commented 2 years ago

Propose adding a standardized key within NCMD and DCMD that would allow nodes to identify the source of a command.

For example, add "source" to *CMD payloads:

{ "timestamp": 1486144502122, "metrics": [{ "name": "Node Control/Rebirth", "timestamp": 1486144502122, "dataType": "Boolean", "value": true , "source":"HostApplicationID" }] }

carl-cimon commented 2 years ago

This would be a very useful addition. Currently my team is using the optional "uuid" in each payload for this purpose, but since that is not the intended usage it feels weird.

I would propose that the "source" property would be in the payload rather than the metric like in the example above, but perhaps there are cases where the HA is forwarding a command from another source, so metrics within the same payload could have different sources?

I would also say that the property should be optional if added to the spec, as there are plenty of use cases where the Edge Node does not care about the source of a command.


Unfortunately, this would require an update the protobuf (to spBv1.1 or something), which doesn't seem like is in the plans for the 3.0 spec. If it is not added, it could still be implemented using the "extensions" in the payload .proto if you just need it for something proprietary.