-
Type:
Improvement
-
Status:
Closed
-
Priority:
Major
-
Resolution:
Fixed
-
Affects Version/s:
None
-
Fix Version/s:
None
-
-
-
Proposal:
Hide
replace text under 4.7.2 with:
The Server MUST NOT match Topic Filters starting with a wildcard character (# or +) with Topic Names beginning with a $ character. The Server SHOULD prevent Clients from using such Topic Names to exchange messages with other Clients. Server implementations MAY use Topic Names that start with a leading $ character for other purposes.
remove 4.7.2.1, retaining the non-normative comments from both sections.
Show
replace text under 4.7.2 with:
The Server MUST NOT match Topic Filters starting with a wildcard character (# or +) with Topic Names beginning with a $ character. The Server SHOULD prevent Clients from using such Topic Names to exchange messages with other Clients. Server implementations MAY use Topic Names that start with a leading $ character for other purposes.
remove 4.7.2.1, retaining the non-normative comments from both sections.
-
Section 4.7.2.1 of wd-20 states;
A Topic Filter that starts with a wildcard character (# or +) does not match Topic Names that begin with a $ character
This appears to be a normative statement regarding server behaviour without any accompanying normative language.
While server implementations may choose whether or not to implement predefined $topics I thought we explicitly did want separate all topics starting with $ from the rest of the topic space.
{"report":{"apdex":0.5,"isInitial":true,"journeyId":"59a83e16-a6d3-4983-8b8c-5327c3e41fbf","key":"jira.project.issue.view-issue","navigationType":0,"readyForUser":3221.300000190735,"redirectCount":0,"resourceLoadedEnd":3090.800000190735,"resourceLoadedStart":588.4000000953674,"resourceTiming":[{"duration":307.5,"initiatorType":"link","name":"https://issues.oasis-open.org/s/3edeca31ab9ba77980aae0809fbe7121-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/css/_super/batch.css","startTime":588.4000000953674,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":588.4000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":895.9000000953674,"responseStart":0,"secureConnectionStart":0},{"duration":307.3999996185303,"initiatorType":"link","name":"https://issues.oasis-open.org/s/7d2823769c2e7b66e860863fe879b7f8-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/css/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&richediton=true","startTime":588.8000001907349,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":588.8000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":896.1999998092651,"responseStart":0,"secureConnectionStart":0},{"duration":307.80000019073486,"initiatorType":"link","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.css","startTime":589.0999999046326,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":589.0999999046326,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":896.9000000953674,"responseStart":0,"secureConnectionStart":0},{"duration":309.69999980926514,"initiatorType":"link","name":"https://issues.oasis-open.org/s/645acc233eb869f48a571293b8358a7d-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static-adgs/jira.webresources:global-static-adgs.css","startTime":589.3000001907349,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":589.3000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":899,"responseStart":0,"secureConnectionStart":0},{"duration":310,"initiatorType":"link","name":"https://issues.oasis-open.org/s/a0dd6509771c1de0667aae5429c04cda-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css","startTime":589.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":589.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":899.5,"responseStart":0,"secureConnectionStart":0},{"duration":678.3000001907349,"initiatorType":"script","name":"https://issues.oasis-open.org/s/e5479157e7a0c08b005e6522f2f04104-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/js/_super/batch.js?locale=en-US","startTime":589.6999998092651,"connectEnd":991.1999998092651,"connectStart":942.5999999046326,"domainLookupEnd":942.5999999046326,"domainLookupStart":942.5,"fetchStart":589.6999998092651,"redirectEnd":0,"redirectStart":0,"requestStart":991.3000001907349,"responseEnd":1268,"responseStart":1032.8000001907349,"secureConnectionStart":966.5999999046326},{"duration":2449.5999999046326,"initiatorType":"script","name":"https://issues.oasis-open.org/s/83514d5d4e8543747b02042eafcdc99c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/js/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":590.4000000953674,"connectEnd":1163.1999998092651,"connectStart":1114.9000000953674,"domainLookupEnd":1114.9000000953674,"domainLookupStart":1114.9000000953674,"fetchStart":590.4000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":1163.3000001907349,"responseEnd":3040,"responseStart":1210.6999998092651,"secureConnectionStart":1138.8000001907349},{"duration":619.5,"initiatorType":"script","name":"https://issues.oasis-open.org/s/70bb2263e59e7e1f04fbd137c80b895b-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/aae1242f5fc81cc6a5bb8bc963ccda29/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en-US","startTime":590.5,"connectEnd":1183,"connectStart":1134.9000000953674,"domainLookupEnd":1134.9000000953674,"domainLookupStart":1134.9000000953674,"fetchStart":590.5,"redirectEnd":0,"redirectStart":0,"requestStart":1183.0999999046326,"responseEnd":1210,"responseStart":1209,"secureConnectionStart":1158.6999998092651},{"duration":696.7999997138977,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":590.8000001907349,"connectEnd":1259.6999998092651,"connectStart":1210,"domainLookupEnd":1210,"domainLookupStart":1209.9000000953674,"fetchStart":590.8000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":1259.8000001907349,"responseEnd":1287.5999999046326,"responseStart":1286.3000001907349,"secureConnectionStart":1234.5999999046326},{"duration":753.9000000953674,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":591,"connectEnd":1316.5999999046326,"connectStart":1267.9000000953674,"domainLookupEnd":1267.9000000953674,"domainLookupStart":1267.9000000953674,"fetchStart":591,"redirectEnd":0,"redirectStart":0,"requestStart":1316.6999998092651,"responseEnd":1344.9000000953674,"responseStart":1343.5999999046326,"secureConnectionStart":1292},{"duration":851.4000000953674,"initiatorType":"script","name":"https://issues.oasis-open.org/s/cda37faab827dbdf305de8efe8282062-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.js?locale=en-US","startTime":591,"connectEnd":1413.6999998092651,"connectStart":1364.8000001907349,"domainLookupEnd":1364.8000001907349,"domainLookupStart":1364.8000001907349,"fetchStart":591,"redirectEnd":0,"redirectStart":0,"requestStart":1413.8000001907349,"responseEnd":1442.4000000953674,"responseStart":1441.0999999046326,"secureConnectionStart":1389.0999999046326},{"duration":328.6000003814697,"initiatorType":"link","name":"https://issues.oasis-open.org/s/07245784f53abc49bad9d9d4d36c577a-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/cadc4f20cc5c138dee060d42cf85f220/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":591.1999998092651,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":591.1999998092651,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":919.8000001907349,"responseStart":0,"secureConnectionStart":0},{"duration":852.7999997138977,"initiatorType":"script","name":"https://issues.oasis-open.org/rest/api/1.0/shortcuts/803004/a29179d70fa8562374ee16707692af77/shortcuts.js?context=issuenavigation&context=issueaction","startTime":591.4000000953674,"connectEnd":1415.9000000953674,"connectStart":1366.5,"domainLookupEnd":1366.5,"domainLookupStart":1366.5,"fetchStart":591.4000000953674,"redirectEnd":0,"redirectStart":0,"requestStart":1416,"responseEnd":1444.1999998092651,"responseStart":1442.9000000953674,"secureConnectionStart":1391.0999999046326},{"duration":322.69999980926514,"initiatorType":"link","name":"https://issues.oasis-open.org/s/f77fd89aa211a76b20e9b0e63564383c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.css?jira.create.linked.issue=true&richediton=true","startTime":638.8000001907349,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":638.8000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":961.5,"responseStart":0,"secureConnectionStart":0},{"duration":1936,"initiatorType":"script","name":"https://issues.oasis-open.org/s/41525c48ddceeb9b11e54085268fc285-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.js?jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":639,"connectEnd":2544.699999809265,"connectStart":2495.9000000953674,"domainLookupEnd":2495.9000000953674,"domainLookupStart":2495.9000000953674,"fetchStart":639,"redirectEnd":0,"redirectStart":0,"requestStart":2544.699999809265,"responseEnd":2575,"responseStart":2572.5999999046326,"secureConnectionStart":2520.199999809265},{"duration":2311.5,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":655,"connectEnd":2938.9000000953674,"connectStart":2889.9000000953674,"domainLookupEnd":2889.9000000953674,"domainLookupStart":2889.9000000953674,"fetchStart":655,"redirectEnd":0,"redirectStart":0,"requestStart":2939.4000000953674,"responseEnd":2966.5,"responseStart":2965.800000190735,"secureConnectionStart":2913.9000000953674},{"duration":2416,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":674.8000001907349,"connectEnd":3063.5,"connectStart":3014.300000190735,"domainLookupEnd":3014.300000190735,"domainLookupStart":3014.199999809265,"fetchStart":674.8000001907349,"redirectEnd":0,"redirectStart":0,"requestStart":3063.5999999046326,"responseEnd":3090.800000190735,"responseStart":3089.699999809265,"secureConnectionStart":3038.5999999046326},{"duration":1407.9000000953674,"initiatorType":"xmlhttprequest","name":"https://issues.oasis-open.org/rest/webResources/1.0/resources","startTime":1401.5,"connectEnd":2777.4000000953674,"connectStart":2728.0999999046326,"domainLookupEnd":2728.0999999046326,"domainLookupStart":2728.0999999046326,"fetchStart":1401.5,"redirectEnd":0,"redirectStart":0,"requestStart":2777.5999999046326,"responseEnd":2809.4000000953674,"responseStart":2808.5999999046326,"secureConnectionStart":2752.5}],"threshold":1000,"fetchStart":0,"domainLookupStart":55,"domainLookupEnd":423,"connectStart":423,"connectEnd":512,"secureConnectionStart":448,"requestStart":512,"responseStart":579,"responseEnd":674,"domLoading":583,"domInteractive":3275,"domContentLoadedEventStart":3275,"domContentLoadedEventEnd":3337,"domComplete":4933,"loadEventStart":4933,"loadEventEnd":4935,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[],"measures":[],"correlationId":"7d392cdff7224f","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":136,"dbReadsTimeInMs":35,"dbConnsTimeInMs":41,"applicationHash":"4d4040e0714d65b7fffa4801569d014c0b16eaa9","experiments":[]}}
We discussed this extensively in
MQTT-16. My understanding is the same as Al's, namely we decided that a topic name with a leading $ is never matched by a topic filter with a leading + or #, regardless of whether the server has defined any $xxx topics or not.I think the reason it doesn't have a MUST in it was simply to make it look better as an English statement. However we need to clarify this as the fact that Section 4.2.7 starts off with a MAY and this statement is included in an apparently subordinate 4.2.7.1 makes it look as if it might only apply in cases where the server has defined $xxx topics.
Incidentally this shows one of the problems of "hanging paragraphs" (see mqtt-142). If the bit saying the server MAY define $xxx was in 4.2.7.1 and the bit about subscription matching was in 4.2.7.2 then it would be more obvious that they are independent