XSF Discussion - 2019-10-23


  1. Guus

    xep-0313 question: what is the best way for a client to 'sync up' with the server-sided message archive? The protocol allows to be synced up based on timestamps, but also notes that those might not be unique. It states that the client MUST NOT depend on the presence of XEP-0359 IDs. I'm thinking that RSM's 'before' and 'after' identifiers are supposed to be opaque, so clients can't depend on that to be a XEP-0359 IDs either?

  2. jonas’

    Guus, yet everyone does

  3. Guus

    Which one?

  4. jonas’

    Guus, assume that they’re '0359 IDs.

  5. jonas’

    nevermind that it’s then undefined how that even works with RSM, but that’s a topic for a different, long-winded argument which I have on my to-do list

  6. Holger

    Hm?

  7. Guus

    'they' being the supposedly-opaque RSM before and after values?

  8. Holger

    > When a message is archived, the server MUST add an <stanza-id/> element as defined in Unique and Stable Stanza IDs (XEP-0359) [2] to the message

  9. jonas’

    Guus, yes

  10. Guus

    jonas’ thanks

  11. Holger

    > which informs the recipient of where and under what ID the message is stored.

  12. Holger

    So those are clearly the before/after IDs, no?

  13. Daniel

    Yes the RSM situation is a bit weird right now. Matt is working on a fix

  14. Daniel

    But it works OK with rsm after for now

  15. jonas’

    my last info was that Matt is disagreeing that there’s a problem.

  16. jonas’

    and is waiting for a proper argument to show what’s even kaputt

  17. Holger

    What's the weirdness?

  18. pep.

    There was a discussion not so long ago on this channel

  19. Guus

    Holger : RSM says: > The responding entity may generate these UIDs in any way, as long as the UIDs are unique in the context of all possible members of the full result set. Each UID MAY be based on part of the content of its associated item, as shown below, or on an internal table index. Another possible method is to serialize the XML of the item and then hash it to generate the UID. Note: The requesting entity MUST treat all UIDs as opaque.

  20. Daniel

    I've seen a draft where query itself has a after-id value

  21. Guus

    note that I don't mind using XEP-0359 IDs in RSM - but it might avoid confusion to explicitly state that.

  22. Daniel

    And Matt explained the problem to me which I didn't saw myself before that

  23. Daniel

    So I'd say he is aware

  24. jonas’

    Holger, that things get weird when you want to request stuff between two IDs from MAM

  25. jonas’

    Daniel, oh, nice

  26. jonas’

    so that’s getting fixed

  27. Holger

    Guus: You mean the very last sentence?

  28. Guus

    Holger yes.

  29. Holger

    jonas': So that's about the question whether before/after can be combined?

  30. pep.

    https://matthewwild.co.uk/uploads/stdin-s2ilB8Kj

  31. pep.

    jonas’, Daniel ^

  32. pep.

    In this room

  33. Guus

    But note that today, I'm looking for implementation guidelines, not to address potential improvements to the protocol.

  34. Daniel

    > But note that today, I'm looking for implementation guidelines, not to address potential improvements to the protocol. For normal catchup just do rsm with the last stanza id

  35. Guus

    everyone uses XEP-0359 IDs in MAM2 RSM? Good enough for me.

  36. Daniel

    And empty query

  37. Holger

    jonas': Isn't that unrelated to Guus' question about stanza IDs being MAM IDs? Which I think 0313 is totally clear about, which solves any opaqueness doubts I would've thought?

  38. Daniel

    And when parsing the message make sure you validate the stanza id feature on the archiving entity

  39. Holger

    Guus: Yes, and as I said I'd argue that's not just common practice but clearly guaranteed by 0313.

  40. Guus

    Daniel "and empty query" ?

  41. Daniel

    Yes don't limit the query with a time stamp or something

  42. Holger

    Or the mam:2 feature, as that depends on stanza-ID.

  43. Daniel

    *if* you have a stanza id

  44. Guus

    Holger I'd say that it could be stated more explicitly in 313 - It wasn't obvious to me, so it won't be obvious to at least other people as bad in reading XEPs as me. 🙂

  45. Guus

    Daniel understood, thanks.

  46. Holger

    I would've thought my above quote makes this very explicit but whatever.

  47. Guus

    Holger I'm one of those people that labels his label printer with "label printer" 😉

  48. Holger

    :-)

  49. Holger

    There's also this note: > Previous versions of this protocol did not specify any interaction with stanza-id, and clients MUST NOT interpret XEP-0359 IDs in messages as archive IDs unless the server advertises support for 'urn:xmpp:mam:2' specifically.

  50. Holger

    This this only implies the identity of 0359 and 0313 IDs by inversion of the statement.

  51. Holger

    *Admittedly this ...

  52. Guus

    Doesn't hurt to make it more explicit. 🙂

  53. Guus

    Thanks people!

  54. Daniel

    If I recall correctly the NS of mam wasn't bumped before stanza id mandated the cleaning

  55. Daniel

    So technically you could have a combination of mam2 and stanza id that doesn't do cleaning

  56. Daniel

    But whatever

  57. Holger

    Ah. That may well be true.

  58. Holger

    Daniel: This would be addressed by checking for sid:0 in addition to mam:2, right?

  59. Daniel

    Holger: yes that's why I said look for the stanza id feature

  60. Holger

    Makes sense.

  61. Daniel

    But I don't think it's a problem in the wild. Prosody for example deliberately limited itself to mam1 before they had proper stanza id cleaning

  62. flow

    "stanza id cleaning" being the requirement that entities check for stanza-id's with a 'by' value of the checking entity?

  63. Daniel

    Yes

  64. Holger

    Daniel: Then again some MUC MAM module announced mam:2 without injecting stanza IDs at all, IIRC.

  65. Holger

    But that's been fixed and I'd just stick to the spec if I was a client author. And blame admins running outdated servers if things go wrong.

  66. flow

    Daniel, IIRC that requirement has always been tehre

  67. Holger

    flow: Daniel clarified the Business Rules in 0.5.0. I don't think they stated this (as clearly) before: "Stanza ID generating entities, which encounter a <stanza-id/> element where the 'by' attribute matches the 'by' attribute they would otherwise set, MUST delete that element even if they are not adding their own stanza ID."

  68. Holger

    flow: Also rule 7, i.e. the exact value of the 'by' attribute, wasn't as clear before, IIRC.

  69. Holger

    (Text was contradicting example or something, so some servers would do by=$service_jid.)

  70. flow

    Holger, I think it was clear before, or I do not understand the issue the commit message tries to explain

  71. flow

    But yes, it wasn't clearly defined what the by value for MUCs is (MUC service domain vs MUC (bare) JID)

  72. rion

    Do we have any XEP explaining what to do if for example I want to start a Jingle FT (requesting a file) in a MUC with a specific user connected to the MUC from two clients with the same nickname and only one of the clients has the file?

  73. MattJ

    No

  74. rion

    then when MUC is going to be deprecated?

  75. jonas’

    in favour of what?

  76. rion

    mix

  77. jonas’

    this problem isn’t fully solved for MIX either.

  78. rion

    oh

  79. jonas’

    particularly in anonymous mixes

  80. rion

    then we still probably need some unique identifier for each connection to the muc regardless of nickname.

  81. jonas’

    which is tricky

  82. jonas’

    there has been a long discussion on the list about this issue for MIX

  83. jonas’

    we need to stuff four identifiers (MIX domain, MIX channel, user identifier, client/connection identifier) in a thing which only has three fields (a JID)

  84. jonas’

    and each solution has its own drawbacks.

  85. rion

    channel@domain/user?uuid ?

  86. rion

    xmpp rfc has to be fixed :)

  87. jonas’

    problem with that is that bare JIDs are as it stands now very useful for asserting equal identities

  88. jonas’

    i.e. if a message comes from two different full JIDs but the same bare JID (and is not of type="groupchat"), you can be fairly certain that it’s from the same entity

  89. jonas’

    that would break with your proposed scheme

  90. jonas’

    the obvious other solution is user?channel@domain/uuid, but I don’t recall what problem folks had with that

  91. jonas’

    except that there’s no trivial way (you have to parse the localpart) to associate the user to a channel

  92. rion

    user?channel@domain/uuid lgtm

  93. jonas’

    rion, thread(s) start here: https://mail.jabber.org/pipermail/standards/2018-May/035017.html

  94. jonas’

    there are about four or five threads about this topic, it was a real sprawl

  95. rion

    jonas’: the idea with <mix channel="some-channel"/> lgtm too. I haven't started implementing MIX yet. So whatever works best :)

  96. Guus

    Looking at the CS2020 last call, I was surprised to see XEP-0392: Consistent Color Generation in there. What's the rationale for including it?

  97. jonas’

    Guus, discuss! :)

  98. Guus

    Aren't I doing that? 🙂

  99. jonas’

    Guus, on list is probably a better way to do that

  100. Ge0rG

    Guus: it was added before all the nifty styling requriements were removed from 0392.

  101. Guus

    Ge0rG I noticed that XEP-0385 is mentioned both in section 1.1 "Changes since 2019", but also in section 3 "Future Development". Is that an error, or intended?

  102. Ge0rG

    Guus: it's optional in §2.3 as well.

  103. Ge0rG

    Guus: the issue I have is that you can't really have optional things in the compliance tables.

  104. Ge0rG

    so I'm a bit torn on where to have it and where not to.

  105. Ge0rG

    But the triple-listing is probably a bit too much

  106. Ge0rG

    Still, I'd appreciate a list discussion

  107. Guus

    I'd argue that if you're including it, then there's no point of adding it also as a 'keep an eye on this one for the future'

  108. Ge0rG

    fair

  109. Zash

    Meta: The LC template seems weird for compliance suites.

  110. Guus

    I've not followed it.

  111. Guus

    sue me.

  112. Guus

    I'm happy to see this take off before Christmas, though 🙂

  113. Guus

    thanks for that

  114. jonas’

    Zash, true, saw that too right after I confirmed

  115. jtyntv

    yoo is there any were on here or icq i can get free ccs

  116. stpeter

    beautiful

  117. moparisthebest

    jtyntv, here you go: https://www.creditcardvalidator.org/generator

  118. lskdjf

    credit cards? 😮 I'm sure they merely wanted to exchange with others about planting trees to achieve Carbon Capture and Storage (CCS). But you judgemental people and your prejudice ruin everything!!