[Standards-JIG] new disco#publish-info feature

Ian Paterson ian.paterson at clientside.co.uk
Sat Jul 23 17:40:24 UTC 2005


Peter St Andre wrote in his blog on 2005-02-28:
> Publish the key to a well-known service discovery node
> using the "disco publish" protocol defined in JEP-0030

Yes, this would be nice, but I'm not sure how JEP-0030 enables it?
AFAICT The disco#publish feature only explicitly enables an entity to
modify the *list of items* that will appear in its server's responses to
disco#items queries (for any node of the entity's bare JID).

IMHO an equivalent ability to modify the content of the 'jabber:x:data'
element within disco#info query results would be a simple and generally
useful 'protocol building block' for publishing relatively static data
associated with a specific bare JID. (See JEP-0045 Example 7 "Room
Returns Extended Disco Info Results" for an example of an extended
disco#info result.)

Pubsub is of course more suitable whenever data is not associated with a
JID or when change notifications are required - especially if the data
may be updated regularly.

I understand that JEP-0030 is Final, and unless I've completely missed
something, a new JEP would be required to document the protocol (see the
examples for publishing long-term public signature-verification keys
below).

Perhaps the extra functionality would also encourage more disco publish
implementations. :)

- Ian


Example 1. Entity Updates Extended Info of a Node

<iq type='set'
    from='alice at example.org/pda'>
  <query xmlns='http://jabber.org/protocol/disco#info'
         node='http://jabber.org/protocol/publickeys'>
    <x xmlns='jabber:x:data' type='submit'>
      <field var='FORM_TYPE' type='hidden'>
        <value>http://jabber.org/protocol/publickeys</value>
      </field>
      <field var='types'>
        <value>x509</value>
        <value>openpgp</value>
      </field>
      <field var='keys'>
        <value>...</value>
        <value>...</value>
      </field>
    </x>
  </query>
</iq>


Example 2. Entity Removes Extended Info from a Node

<iq type='set'
    from='alice at example.org/pda'>
  <query xmlns='http://jabber.org/protocol/disco#info'
         node='http://jabber.org/protocol/publickeys'/>
</iq>


Example 3. Another Entity Requests Extended Info

<iq type='get'
    from='bob at example.com/laptop'
    to='alice at example.org'>
  <query xmlns='http://jabber.org/protocol/disco#info' 
         node='http://jabber.org/protocol/publickeys'/>
</iq>


Example 4. Another Entity Receives Extended Info

<iq type='result'
    from='alice at example.org'
    to='bob at example.com/laptop'>
  <query xmlns='http://jabber.org/protocol/disco#info'
         node='http://jabber.org/protocol/publickeys'>
    <x xmlns='jabber:x:data' type='result'>
      <field var='FORM_TYPE' type='hidden'>
        <value>http://jabber.org/protocol/publickeys</value>
      </field>
      <field var='types'>
        <value>x509</value>
        <value>openpgp</value>
      </field>
      <field var='keys'>
        <value>...</value>
        <value>...</value>
      </field>
    </x>
  </query>
</iq>




More information about the Standards mailing list