Modern XMPP project discussion - 2024-09-19


  1. muppeth

    howdy. are there any clients currently supporting oauth? see there is a module for prosody https://modules.prosody.im/mod_auth_oauth_external.html but of course clients must support it as well.

  2. Zash

    muppeth: you mean SASL OAUTHBEARER ?

  3. muppeth

    yes.

  4. muppeth

    i see there is also just oauthbearer module but i guess the same applies.

  5. MattJ

    I'm not aware of any (public) ones. I have a test client I use to test the modules, but that's it so far. The XEP was only published a couple of days ago (XEP-0493), so you now have something to ask client devs for :)

  6. muppeth

    i see.

  7. muppeth

    so pretty much atm clients would have to default to legacy auth.

  8. MattJ

    I don't know if we'll ever push for OAuth to replace conventional logins in XMPP, although I strongly feel that web clients (especially server-side clients, such as Movim) or anything else that accesses your account outside of your own devices, should 100% use OAuth.

  9. MattJ

    I prefer SASL2+FAST for on-device native clients

  10. muppeth

    trying to implement keycloak and looks like it aint that smooth sailing. same as with email.

  11. Kris

    There are afaik some old out of tree patches for conversejs to enable oauth

  12. MattJ

    Yeah, that's a bit rough and also something (slightly) different

  13. MattJ

    That's why I had to write the XEP - "supporting OAuth" can mean too many different things

  14. MattJ

    Converse.js's support uses (IIRC) a non-standard SASL mechanism, and a third-party component, and it allows you to offer "Log in with [Github|Google|etc.]"

  15. MattJ

    Which is what some people want. The XEP is more for "I already have an XMPP account, now I want to grant something access to it"

  16. MattJ

    There is a lot of protocol overlap between the two use cases, Prosody should be able to support both, but the XEP is only for the second case

  17. edhelas

    I'm thinking of adding a third kind of MUC to https://docs.modernxmpp.org/client/groupchat/#types-of-chat Should be called "broadcast" 📢 where only the owners/admin can publish and the others are muted

  18. edhelas

    It is actually already existing on things like Telegram and Instagram afaik, nicoco should also be able to map it better for some bridges

  19. edhelas

    https://telegram.org/tour/channels

  20. MattJ

    edhelas, yeah, I'm building support for that into the MUC 2.0 draft I'm working on

  21. edhelas

    MattJ in the XEP or more as a ModernXMPP guideline ?

  22. MattJ

    It will be in the XEP, but it will be equivalent to the guidelines (which should still be documented)

  23. edhelas

    Do you have a draft of that ? Because basically in a client its mostly UI things

  24. MattJ

    https://pad.nixnet.services/WJm97HA9SJaURGhxNqGOcA

  25. MattJ

    There's nothing you need to worry about though, just continue as you are :)

  26. edhelas

    Some serious things going on in this document <3

  27. MattJ

    It's designed to be backwards-compatible with MUC, but much simpler for clients that choose to use it

  28. MattJ

    So instead of joining a room, configuring it with a bunch of options, you just send an iq to create a room with a certain profile, and you'll get the necessary defaults already set correctly

  29. MattJ

    You can still configure details if you want

  30. edhelas

    Ah fun it's a bit what I though about with the pubsub#type and Profiles in https://xmpp.org/extensions/xep-0472.html#profiles

  31. MattJ

    Yeah

  32. edhelas

    Still need to work on that Stories XEP that is "just" a Social Feed profile on top of the base one

  33. pep.

    How easy would it be to add a new type of room in there

  34. pep.

    I don't want clients to limit it to only these types and be stuck with that for the next 10 years

  35. MattJ

    pep., easy enough

  36. arcanicanis

    > I'm thinking of adding a third kind of MUC to https://docs.modernxmpp.org/client/groupchat/#types-of-chat > Should be called "broadcast" 📢 where only the owners/admin can publish and the others are muted I was intending on just having using PubSub feeds to act like 'Telegram Channels', in my experiment of a Telegram-imitation XMPP client (when I get back to it)

  37. MattJ

    arcanicanis, that's kinda what Movim does

  38. arcanicanis

    although to group it together alongside conversations, rather than under a separate tab/section

  39. arcanicanis

    although to group it together alongside conversations, rather than be listed under a separate tab/section

  40. MattJ

    Sure, that's just a UI thing

  41. MattJ

    edhelas, which begs the question, why are you looking at this, when you already have pubsub feeds?

  42. MattJ

    It seems like it might be confusing to have both in one app

  43. arcanicanis

    It'd be neat if PubSub was available in more of the instant messaging-focused clients, as insofar I think Movim may be the only one?

  44. edhelas

    Because it's not the same usage

  45. edhelas

    And some apps like Instagram have both, you have feeds which are articles, and you have rooms that are short messages

  46. edhelas

    Also because there's only a few apps that are supporting Pubsub feeds people might want to use this solution to broadcast information.

  47. edhelas

    Also thinking about bridges like Slidge.

  48. MattJ

    A MUC<->Pubsub bridge would be interesting for that

  49. edhelas

    To me its like putting a square in a circle

  50. edhelas

    It's like trying to publish RSS/Atom feeds to MUC, its works, but really not made for that

  51. arcanicanis

    I still have to dig deeper into aspects with PubSub, but has there been any well-developed/maintained ActivityPub to XMPP PubSub bridges?

  52. MattJ

    goffi was working on one as part of libervia (it was funded by NLnet)

  53. edhelas

    MattJ is it released ? I've heard about the project but never had the chance to actually see working and packaged versions afaik

  54. arcanicanis

    > It's like trying to publish RSS/Atom feeds to MUC, its works, but really not made for that I think it just comes down to how it's actually operationally used. But using MUCs for short announcements to +10k users also feels like misusing something

  55. MattJ

    I think polish was still being applied, last I heard

  56. edhelas

    > I think it just comes down to how it's actually operationally used. But using MUCs for short announcements to +10k users also feels like misusing something If you want to publish your blog articles, you use Pubsub If you want to send quick alerts each 20min about possible stock market changes, maybe MUC is wiser

  57. MattJ

    I'm interested in concrete reasons why, though

  58. edhelas

    It's not only about the protocol, its the fact that we have UIs already built on top of it

  59. MattJ

    Sure, compatibility with existing clients, I get that

  60. arcanicanis

    My current fixation is working on portable identity in ActivityPub, as well as toying with DIDs for portable identifiers, as I'm working in my ActivityPub server implementation. If there's a gap in bridging to/from ActivityPub, I'm very willing to fill the gap wherever needed. I can also bring up new FEPs for extensions that could make bridging easier, if there's any gaps identified.

  61. edhelas

    In a perfect world we would have directly start with Pubsub in the early stages of XMPP and build MUC on top of it, but its not the case

  62. arcanicanis

    My fixation on the argument is more the protocol level: to my vague understanding of PubSub, the server keeps record of all contacts interested in a feed, and pushes out a message on update; versus with a MUC, where each user has to maintain a connected state to a MUC, and the MUC has to handle all the background noise of connection state messages

  63. arcanicanis

    My fixation on the argument is more the protocol level: to my vague understanding of PubSub, the server keeps record of all contacts interested in a feed, and pushes out a message when something new is published; versus with a MUC, where each user has to maintain a connected state to a MUC, and the MUC has to handle all the background noise of connection state messages

  64. Link Mauve

    arcanicanis, I’ve been using libervia’s AP gateway for more than one year at this point, it mostly works.

  65. arcanicanis

    ahh, 'formerly Salut a Toi', that's where that project went

  66. Link Mauve

    I find its usage of Python and the myriad of dependencies a bit bad to work with though.

  67. arcanicanis

    The Python ecosystem just typically feels like a mess for that

  68. Link Mauve

    Yeah.

  69. Kris

    MattJ, no more MUX? Now GC3 (for group chat 3 I guess?)

  70. MattJ

    Kris, yeah, slightly less confusing (and the 'mux' namespace was already taken by some Jingle stuff)

  71. arcanicanis

    Can colons appear in the localpart as long as they're escaped, or are they totally prohibited? https://www.rfc-editor.org/rfc/rfc7622.html#section-3.3.1 an example of what would be encoded as a username would be like: did:fedi:z8LrnLyDceDz9oKN6iPBCtUupd The context being of having some DID-aware ActivityPub bridge, when the time comes

  72. Kris

    does it have to be 3 letters? otherwise why not just MUC2?

  73. pep.

    MUC-X, MUC-NEXT, NMUX, NUX, XUC

  74. arcanicanis

    Out of curiosity, what come of MIX?

  75. arcanicanis

    Out of curiosity, where did MIX end up?

  76. arcanicanis

    The edit history seems to be from 2015-2020, not sure if that was just some experiment of replacing MUCs for something different/better

  77. MattJ

    arcanicanis, MIX has some implementations but (IMHO) not a promising future for the open network

  78. MattJ

    If it has, GC3 might be a step in the right direction (since it makes MUC a little more MIX-like, with regards to the data model)

  79. MattJ

    Kris, it doesn't have to be three letters. However "MUC 2" has been a concept for over a decade, and may have some baggage attached. It's also less of a clean break - I feel that people will still see it as MUC1 < MUC2 < MIX

  80. MattJ

    I'd like it to have at least as much of a chance as MIX did, rather than being perceived as something that is obsoleted by MIX before it even leaves the gate

  81. MattJ

    Hoping we might make some progress on it at the sprint this weekend

    đź‘Ť 1