jonas’can someone with URI knowledge tell me whether: `xmpp://xmpp-public.sotecware.net:5222/sotecware.net` would be an accurate way to write "Connect to sotecware.net using xmpp-public.sotecware.net on port 5222, skipping SRV record resolution`?
jonas’can someone with URI knowledge tell me whether: `xmpp://xmpp-public.sotecware.net:5222/sotecware.net` would be an accurate way to write "Connect to sotecware.net using xmpp-public.sotecware.net on port 5222, skipping SRV record resolution"?
jonas’it does not need to be generally understood that it means that, just whether the basic URI semantics are sane
Douglas Terabytehas left
Douglas Terabytehas joined
moparisthebestjonas’: you don't need the domain if you have a jid to get it from
jonas’moparisthebest, depends on the use-case
moparisthebestYou probably need a jid regardless don't you?
jonas’I want this for monitoring purposes, so I might want to monitor the up-ness and certificates and stuff of all possible server endpoints for a given domain
jonas’yes, the jid is behind the last ``/``
jonas’it’s just a domain, but still a JID :)
jonas’(in the specific case I’m thinking about, the client would never even authenticate, so there’s no need for a valid localpart)
jonas’I’m trying to coerce this into a single URI/URL because I only have a single string to pass to stuff.
ZashI have a thing that accepts domain@host:port (not an URI/URL)
moparisthebestAh ok, I made up my own similarish url syntax for this and ralphm yelled at me lol https://github.com/moparisthebest/jDnsProxy/blob/master/xmpp-dox/jdnsproxy.xmpp.resolver.properties#L27
moparisthebestI also needed a single string
jonas’so maybe ralphm can now also yell at me?
ralphmYelling As A Service?
ZashReal-Time Instant Yelling Service
ralphmIn general, yes, if it looks like a URI, just make it one. Especially if you're using existing URI schemes.
ralphmAlso, I generally don't like it when people use new schemes in production without having IANA registering it first.
ralphmjonas’: but specifically, no, you can't bypass SRV like that. It is explicitly forbidden: https://tools.ietf.org/html/rfc5122#section-5.2
waqasralphm: That's pretty widespread these days, particularly on mobile platforms where apps register their own URL schemes. Almost all modern OS vendors allow apps to define these.
ralphmwaqas: doesn't mean I have to like it
ralphmOr that it is a good idea
waqasI have mixed feelings about it. I'm not necessarily fully sold on IANA registry being a registry of all allowed schemes.
waqas(the same way I'm not sold on all possible XMPP protocol extensions requiring going through the XSF XEP process, the X for extensibility without relying on central authority is important)
ralphmWell, either it is a URI, which requires registration with IANA, or it is a fake.
waqasSame for XEPs?
ralphmSimilarly, without a XEP, you cannot use urn:xmpp as a prefix
waqasI'm comfortable with urn:xmpp, and I'd be comfortable with an app using "http:" to always mean the HTTP protocol.
waqasBut all URL schemes requiring registration is like requiring all namespaces even without the urn:xmpp prefix requiring the same
ralphmIf you don't use the XSF, you must use your own namespace, e.g. one with a http scheme with an auth part that points to your own domain. Or your own registered URN prefix.
waqasIt's the registration bit that I'm rejecting
ralphmE.g. at Mediamatic, we had namespaces starting with http://mediamatic.nl/ns
ralphmwaqas: why? URI/URL/URN as concepts are defined by the IETF, the set the rules.
ZashIsn't there a DNS tree you can use somewhere? `urn:dns:example.com:whatever` ?
waqasIs there a statement from the IETF classifying unregistered as fake?
ralphmI haven't considered using xmpp: as a prefix for namespaces. I suppose you can, without auth part like that.
Zashralphm: Should be equivalent to http:// URLs as namespaces as far as anything is concerned, right?
ralphmBut without auth part (//) because xmpp URIs have specific syntax.
ZashTho the original topic was overlap between URLs and configuration syntax.
ZashYou could spare your sanity and imagine that they're not really UR[LI]s
ralphmI think, waqas, you should read RFC 3986 and BCP 35.
ralphmE.g. by not using an explicit scheme
ZashIs there something like vendor prefixes for schemes?
ZashAs in, foocorp-thing://magic/syntax
ralphmSee BCP 35, section 3.8.
ralphmBasically reversed domain
ralphmAlso don't use // if it doesn't make sense
ZashI distinctly remember that some platform required it. iOS maybe?
ZashLeading to weird horrors like `xmpp:///stuff`
waqassection 6 of BCP 35 is relevant
ralphmThat platform is wrong
waqasFor the most part, platform vendors and app authors have shown little to interest in BCP 35 though :)
ralphmZash: but I guess Apple has more issues like that, e.g. the recent openid connect thing.
ralphmwaqas: that doesn't mean you shouldn't
waqasI mildly equate this to the bazaar ignoring the cathedral except for a few popular occasions :)
ralphmI hold some pride in doing it properly.
waqas"properly" is up for debate
ralphmIt is not, though. If you can diverge from standards on a whim, why have them?
ZashAnarchy! Chaos! Cats and dogs living together!
waqasIt would be ridiculous to follow all standards. Much like how we don't actually want clients to follow *all* the XEPs.
ralphmThere's a reason why we made xmpp extensible, so you can choose to do something else without violating specifications.
waqasIndeed, and URI schemes are similarly extensible :)
ralphmYes, when folding its standards.
ralphmOf course many people ignore standards
> (the same way I'm not sold on all possible XMPP protocol extensions requiring going through the XSF XEP process
Where did you get this from?
ralphmMore than sometimes, not following a standard means pain later.
waqasI think this is just fundamental disagreement, I disagree with following all possible standards being a requirement. I'm sure in any large pool of standards, I'd consider a significant portion to be inappropriate to implement.
ralphmYou generally don't have to implement all standards?
waqasNo, I do not
Zashralphm: "Pain for someone else" ?
ralphmIf you just follow XMPP Core, you can call yourself an XMPP application.
ralphmIf you want to use jabber:iq:roster, please follow what's in XMPP IM, though.
waqas(technically you can call yourself that even when not following Core fully, which is true for most XMPP software, but I digress)
ralphmYou can, but you would not be truthful.
waqasralphm: I agree with that! Similar to how I agree followers of HTTP should follow the HTTP specs for the most part!
waqasThe world is a lie then. Point out any large code base implementing any large spec and I can probably show you it's a lie.
waqasBut anyway, this is going way offtrack :)
waqasI'm cool with central registration being a MAY or SHOULD, but am fundamentally opposed to MUST, particularly for toy, experimental or private use cases, but in general too.
waqasA world where MUST was e.g., a legal requirement would be a worst world, IMHO
ZashThere are usually recommendations for private namespaces and such
waqasAnd people SHOULD follow those when sane :)
ralphmI think the text in the specs I linked are to be interpreted mostly as a strong SHOULD, but things will break if you have naming conflicts.
waqasSure, and in various situations that can be an acceptable tradeoff
waqasParticularly in situations where anonymity is a requirement. Registration with authority generally translates into breaking anonymity.
ralphmExcept when it doesn't when later your internal thing became part of a public API and now somebody, usually you, is crying.
waqasI imagine that's pretty rare. Most things end up registering when they become big, often turning into de facto standards, and not when they are initially created.
waqasI can't recall if this was true for xmpp: too. Did it see usage before it was registered or after?
ralphmI don't directly see how anonymity is a factor in choosing a URI scheme, especially if there's a defined way to do private extensions.
ralphmNo, xmpp didn't exist as such before interacting with IETF.
ralphmWe had to grandfather a bunch of things, and the jabber prefix was indeed wrong.
ZashI mean, was there ever a `jabber` URI scheme?
ralphmWe first changed that to http URIs at jabber.org, eg pubsub, then went on to URNs.
waqasI'm curious if all the XMPP proprietary competitors have their protocols registered :)
waqasThey all have at least one each, that their mobile apps register
ralphmYou *don't* have to register your proprietary extensions.
ralphmHowever, those can't use the urn:xmpp prefix compliantly.
waqasYep, and my point for URI schemes is that in practice anything not registered via IANA has been fair game for private use. With rare exceptions, the industry as a whole treats things that way.
ZashWell, they get to enjoy their time boms then.
waqasThere are easily more than a single order of magnitude schemes out there in use vs what's in the IANA registry
ZashOh, `jabber` is registered? https://www.iana.org/assignments/uri-schemes/perm/jabber