In the normative statement [tck-id-operational-behavior-host-application-death-payload], the phrasing is unclear:
[tck-id-operational-behavior-host-application-death-payload] The Death Certificate Payload registered as the MQTT Will Message in the MQTT CONNECT packet MUST be JSON UTF-8 data. It MUST include two key/value pairs where one key MUST be online and it’s value is a boolean false. The other key MUST be timestamp and the value MUST be a numeric value representing the current UTC time in milliseconds since Epoch.
Considering the context (i.e. [tck-id-operational-behavior-host-application-termination]), we are in the case where the Sparkplug Host Application publishes a Death message directly, not via the MQTT Will Message mechanism. Therefore, the beginning of the statement "The Death Certificate Payload registered as the MQTT Will Message in the MQTT CONNECT packet MUST be JSON UTF-8 data." seems inappropriate and adds confusion.
How should the [tck-id-operational-behavior-host-application-death-payload] statement be understood?
The Death Certificate Payload MUST be the same as the one registered in the MQTT Will Message in the prior MQTT CONNECT packet.
The Death Certificate Payload MUST be JSON UTF-8 data. It MUST include two key/value pairs where one key MUST be online and it’s value is a boolean false. The other key MUST be timestamp and the value MUST be a numeric value representing the current UTC time in milliseconds since Epoch.
The difference of interpretation leads to different values for the timestamp:
the timestamp as registered in the MQTT Will Message in the prior MQTT CONNECT packet
the current UTC time
The normative statement could be reformulated to avoid the confusion.
In the normative statement
[tck-id-operational-behavior-host-application-death-payload]
, the phrasing is unclear:https://github.com/eclipse-sparkplug/sparkplug/blob/e45b61002a2a0cacb4f11fa4be88670435ccfcb0/specification/src/main/asciidoc/chapters/Sparkplug_5_Operational_Behavior.adoc?plain=1#L808-L812
Considering the context (i.e.
[tck-id-operational-behavior-host-application-termination]
), we are in the case where the Sparkplug Host Application publishes a Death message directly, not via the MQTT Will Message mechanism. Therefore, the beginning of the statement "The Death Certificate Payload registered as the MQTT Will Message in the MQTT CONNECT packet MUST be JSON UTF-8 data." seems inappropriate and adds confusion.How should the
[tck-id-operational-behavior-host-application-death-payload]
statement be understood?The Death Certificate Payload MUST be the same as the one registered in the MQTT Will Message in the prior MQTT CONNECT packet.
The Death Certificate Payload MUST be JSON UTF-8 data. It MUST include two key/value pairs where one key MUST be online and it’s value is a boolean false. The other key MUST be timestamp and the value MUST be a numeric value representing the current UTC time in milliseconds since Epoch.
The difference of interpretation leads to different values for the timestamp:
The normative statement could be reformulated to avoid the confusion.