Repository navigation
Update Chapter 7 ACL examples for v4 - #621
Merged
Merged
Conversation
ibinshtok
approved these changes
Aug 13, 2026
ckienle
reviewed
Aug 13, 2026
ckienle
approved these changes
Aug 13, 2026
nathandavenport
approved these changes
Aug 13, 2026
The ACL examples predated the v4 message set, and an Edge Node provisioned from them would not be conformant. Adds the full v4 publish set and the three missing mandatory subscriptions: REBIRTH, the Edge Node's own NMETA, and each Device's DMETA. Changes the device level wildcard from + to #, since device_tokens may be more than one topic level deep. Adds a Host Application ACL example, which the chapter did not have. Also removes tck-id-security-acl-host-state-publish, which was added to this chapter in the previous commit. Chapter 7 declares itself non-normative, and that assertion was the only tck-testable statement in it. It also constrained how a deployment is provisioned rather than the behavior of any of the conformance profiles the specification defines, so no actor could claim or fail conformance against it. The substance is retained as guidance, and chapter 7 now contains no RFC2119 keywords. If the working group wants this enforceable, the path is a requirement on the Sparkplug Aware MQTT Server profile, which needs a binding from MQTT client identity to Sparkplug Host Application ID that the specification does not currently define. That is a separate proposal.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Update Chapter 7 ACL examples for v4
Removes one merged assertion — see Normative impact below.
The ACL examples predated the v4 message set, and an Edge Node provisioned from them would not be
conformant. Three subscriptions required by MUST statements were missing:
REBIRTH(
tck-id-message-flow-edge-node-rebirth-subscribe), and the Edge Node's ownNMETAplus eachDevice's
DMETA(tck-id-operational-behavior-meta-subscribe).Example changes
NRESP, NDEATH and the seven D-scoped equivalents. Noted which are conditional — NRESP/DRESP only for
an Edge Node exposing Command metrics, NMMETA/DMMETA only for one that changes its metric structure
while online.
+to#.device_tokensis one or more topic levels, so asingle level wildcard silently fails for any Device addressed with more than one token.
Added a note that
REBIRTHcannot be dropped the wayDCMDcan.Normative impact
This PR removes
tck-id-security-acl-host-state-publishand adds nothing. Net effect on thespecification is one fewer assertion.
Review feedback on the first revision flagged an unmarked RFC2119
SHOULD NOTin the new HostApplication prose, duplicating that assertion. Addressing it surfaced two problems with the assertion
itself:
the only tck-testable statement in it. The chapter had zero at the v3 baseline and zero before
[IMM-547] Added statements to protect against PHID bad actors and mis-configuration of PHID #620, which introduced it.
spec defines — Sparkplug Edge Node, Sparkplug Host Application, Sparkplug Compliant MQTT Server,
Sparkplug Aware MQTT Server. Every existing MQTT Server assertion is a capability requirement on a
server implementation. No actor could claim or fail conformance against this one.
The substance is retained as guidance in both chapters, and Chapter 7 now contains no RFC2119
keywords, consistent with its own declaration.
tck-id-security-acl-host-state-publishdisappearsfrom
Requirements.javaon the next regeneration.An earlier revision of this PR relocated the statement to Chapter 5 as a
[tck-not-testable]MUST.That has been reverted — it fixed the chapter placement but left an unbindable requirement and
silently raised the level from SHOULD to MUST. Chapter 5 is untouched by this PR.