[Standards] private storage revisited

Ian Paterson ian.paterson at clientside.co.uk
Fri Jul 6 10:50:33 UTC 2007


Peter Saint-Andre wrote:
> Whenever a client publishes the first item to a node that ends in
> "+[accessmodel]", the pubsub service MUST create the node with a default
> access model equal to the specified model (that is "open" or "presence"
> or "roster" or "authorize" or "whitelist"). [1] For such a node, the
> access model MUST remain fixed and a pubsub service MUST return an error
> if the node owner tries to change it.
>
> [1] In fact "roster" doesn't make sense here since you need to specify
> the roster group. And BTW the list for "whitelist" must start out empty,
> i.e., only the node owner can publish or subscribe. 

I think I agree with everything above except the proposed syntax. *If* 
we agree on the functionality, then IMHO it *should* be trivial to come 
up with a more appropriate syntax.

I strongly disagree with overloading the node attribute with the access 
model. IMHO, mixing an identifier and a configuration parameter into the 
same attribute would be a horrible (and unnecessary) hack.

Instead of:
<publish node='http://jabber.org/protocol/activity+whitelist'>

I could live with this syntax:
<publish node='http://jabber.org/protocol/activity' 
access_model='whitelist'>

However, IMHO, the following example stanza would "fit" better with the 
rest of the protocol. That would make it easier for developers, since 
they could simply reuse their existing <configure/> element processing code:

<iq from='juliet at capulet.com/balcony' type='set' id='create-presence'>
  <pubsub xmlns='http://jabber.org/protocol/pubsub'>
    <publish node='http://jabber.org/protocol/activity'>
      <item>
        <activity xmlns='http://jabber.org/protocol/activity'>
          <relaxing>
            <partying/>
          </relaxing>
          <text xml:lang='en'>My nurse's birthday!</text>
        </activity>
      </item>
    </publish>
    <configure>
      <x xmlns='jabber:x:data' type='submit'>
        <field var='FORM_TYPE' type='hidden'>
          <value>http://jabber.org/protocol/pubsub#node_config</value>
        </field>
        <field var='pubsub#access_model'>
          <option><value>whitelist</value></option>
        </field>
      </x>
    </configure>
  </pubsub>
</iq>

I stress that the functionality associated with the above example would 
be absolutely identical to that which Peter described above.

- Ian

P.S. I put Ralph on copy because, although he has been very busy 
recently, we're not going to move forward on this without his input and 
eventual acceptance (he's both a principle author of the PubSub protocol 
and a council member).




More information about the Standards mailing list