- 1 XEP-0060: PubSub
- 1.1 Temporary Subscriptions is not discoverable (Section 12.4)
- 1.2 Affiliation Change Notifications (Section 8.9.4)
- 1.3 Expected response to disco info and disco items request to a non existing node (Section 5.3 and 5.5)
- 1.4 Optional redirect URI for <delete/> not discoverable (Section 8.4)
- 1.5 Redundant features for Item Retraction
- 1.6 No text on #publish_model
- 1.7 Entity node creation authorization request (Section 8.1)
- 2 XEP-0163: PEP
- 3 XEP-0248: Collections
Note: these issues are keyed to the section numbers in version 1.13 of XEP-0060.
Temporary Subscriptions is not discoverable (Section 12.4)
http://xmpp.org/extensions/xep-0060.html#impl-tempsub describes temprary subscriptions for a pub/sub node. It is not mentioned anywhere in the XEP-0060 how to discover this feature (pubsub#tempsub).
Affiliation Change Notifications (Section 8.9.4)
- Affiliation change notifications are qualified by the 'http://jabber.org/protocol/pubsub' namespace, but should be qualified by the 'http://jabber.org/protocol/pubsub#event' namespace.
- The affiliation element, qualified by the 'http://jabber.org/protocol/pubsub' namespace, does not have a jid attribute
- The section mentions that a body element can be provided and used to specify natural-language text regarding the affiliation change.
Details and Suggested Changes
Currently, the notification for affiliation changes uses the affiliation element found in the pubsub namespace. This conflicts with all other notifications, that refer to matching elements defined in the pubsub#event namespace. Affiliations are genetically similar to subscriptions and should mimic how subscription notifications are handled. Resolving this requires the following changes:
- Update the schema, in section 17.4, to include the affiliation element as an option under the event element.
- Update the schema, in section 17.4, to include a definition for the affiliation element.
- The new affiliation element should include a node, jid and affiliation attribute.
- Update Example 208 to more closely match Example 194.
- Replace pubsub element with the event element.
- Remove the affiliations element
- Update the affiliation element to include the node attribute that was in the affiliations element
- Investigate whether the body element can be used to provide change related text to any notification messages. If it can, each notification area should include this information or the information should be place in a general location.
- Section 220.127.116.11 says: "If configured to do so, the service can include the publisher of the item when it generates event notifications." but there is no way to configure this bevahiour described. Probably need to add appropriate discovery feature + configuration form item.
Expected response to disco info and disco items request to a non existing node (Section 5.3 and 5.5)
Would be good if the PubSub spec would have a reference to the service discovery error conditions if a disco request is send to a non existent node. I've reports from users that some implementations return a non-error result, which e.g. results in Smack returning a NotAPubSubNodeException instead of a XMPPErrorException (which is what most would expect). So it's not clear for some implementors what do in this case (which is likely because the relevant information is found in a different XEP).
Optional redirect URI for <delete/> not discoverable (Section 8.4)
Server support for <redirect/> is optional for servers, yet clients have no way of discovering if the server supports it. Also, it doesn't state the maximum number of <redirect/> elements allowed, although it seems to suggest it's one. Proposed solution:
- Add feature delete-nodes-redirect (OPTIONAL)
- Modify language to state there can be only one redirect element.
Redundant features for Item Retraction
The latest revision introduced a feature 'delete-items', while 'retract-items' was already there. Ralphm proposed to the list:
[...] Reading the text around it, I feel it is confusing, too. I'd rather go with talking about 'retracting items' and 'deleting nodes' thoughout, and not talk about 'deleting items'.
I think that many (all?) clients ignore this feature for discovery altogether, so what about making 'delete-items' a thing that servers SHOULD also advertise along with 'retract-items', but have clients depend on 'retract-items' exclusively?
No text on #publish_model
A few examples mention an option #publish_model, which seems useful, but there's no actual text describing behaviour of said option.
There's no way to know if an entity can create (or not) a node before actually create it. This issue bring a bad UI experience on some Pubsub clients (we display an error after the form creation submission).
No known issues.
Needs a general overhaul.