Subject: [regext] =?UTF-8?Q?Questions_about_RDAP_extensions_and_registration_at_IANA, _role?= of prefix and version

From: "Patrick Mevzek" <[email-masked]>
Date: Wed, 06 Nov 2019 13:36:51 -0500

Hello,

(after having written all the below, I see it is touched already by https://tools.ietf.org/html/draft-blanchet-regext-rdap-deployfindings-05#section-2.2 for most points, so there is some overlap but still sending my views below, because that draft hints at just changing things in the current IANA registry, where I think some RFC changes are needed too)
(so CCing the designated experts for the IANA registry, and Marc as author of the above draft)

IANA registry at
https://www.iana.org/assignments/rdap-extensions/rdap-extensions.xhtml#rdap-extensions-1
lists extensions names.

The examples in RFC7483 with lunarNic makes me think that
* the prefix is lunarNic
* which is what should be registered at IANA
* the conformance list has lunarNic_level_0
* fields have lunarNic as prefix.

So "_level_0" is a kind of suffix, under control of the relevant party (of the namespace
being registered), but is it free-form or should it be always _level_XXXX?
Once "foobar" is registered at IANA, what is its owner allowed to do?
Can it uses any of the following in rdapConformance:
- foobar
- foobar_0
- foobar0
- foobar_level_0
- foobar_buzz
- foobar_level_0_sublevel_42
?

RFC7483 §4.1 goes over this without explaining it.

So some observations/questions:

1) _level_0 is not the only case.
"fred" as registered, appears in rdapConformance as "fred_version_0"

So this would make me think the _level_0 syntax is not mandatory

2) some extensions do not appear used with any suffix:
"arin_originas0" and "cidr0" as registered as such and appear as such in rdapConformance.

However, the final 0 seems like a "version" indicator, so why "cidr0" vs "cidr_level_0"?
If so, should the registration be instead for "arin_originas" and "cidr" so that the relevant owners can "upgrade" to a later version without a new IANA registration?
But if so, this creates a collision. Shouldn't the RFC mention that when you register X you own X_anything, not Xanything, that is make at least a _ character mandatory after the prefix
if what is used in the rdapConformance is not exactly the prefix?

3) kind of same case for:
icann_rdap_response_profile_0
icann_rdap_technical_implementation_guide_0

they are used as is in rdapConformation, but shouldn't the IANA registration really be for the prefix, without consideration of the "version"? And they do not use either _level_0, _version_0, or 0 like other extensions, but now _0.

Even their own specification says:
At the time of publication,"icann_rdap_technical_implementation_guide" is pending registration in the IANA RDAP Extensions Registry

So what was registered at IANA is not what the specification says, there is a "_0" difference.

Again, it seems the _level_0 part is completely optional, is that the intent?

4) RFC 7480 says about extension prefixes: "and they
   SHOULD NOT begin with an underscore character, numerical digit, or
   the characters "xml"." 

I would suggest this is amended at some point in the future to reserve everything starting with "rdap_" to only be used by extensions defined in RFCs, like RFC8521 does.
(I am not sure what is the gain by refusing "xml" as prefix, even if I do not see it as a useful prefix either. RDAP is far more JSON than XML stuff so if we had to restrict something "json" would have made more sense than "xml" to me, even if neither makes sense to me in some way here; explanations in RFC7480 §6 do not really convince me there)

What do I miss for the above discussion on prefix/suffix/version?
Are there other documents explaining in more details this prefix/version schema and its rules?

I am not asking all the above for the beauty(?) of it, things like that have strong interoperability consequences and needs to be taken into account to properly design a client connecting to various servers, which I sadly discover only now as working in RDAP-land.

PS: unrelated additional petpeeve, for here or anywhere else, any link taken to a "reference" but which points to a git repository, without enforcing in the URL a specific commit, is not really a reference. It points to the latest "master" version of that file, which can change over time, as a branch tip is not a stable reference. Links to repositories should be refused if they do not include a stable reference, which means a commit ID (a tag can also move, so it is not good enough)

Of course for any other link, the content can also change at any time.
Wikipedia solves that by adding to each link something like "retrieved on XXXX-XX-XX" so that you have at least a timestamp. IANA registration could at least include a timestamp (when the extension was registered)

PS2: seeing that all of the above come from the fact that we are basically trying to reinvent XML namespaces but in JSON... and arriving at the situation where we get all the drawbacks without any strong advantage, at least not until things are clearer/stricter.

-- 
  Patrick Mevzek
  [email-masked]

---

From: "Hollenbeck, Scott" <[email-masked]>
Date: Thu, 7 Nov 2019 12:04:40 +0000

Patrick, my expectation is that the value registered with IANA is the exact value that should appear in an rdapConformance section. The purpose of these values is to clearly identify an associated specification, so one should be able to extract an identifier from an RDAP response, look it up in the IANA registry, find an exact match, and unambiguously identify the associated specification. We clearly need to clean up this part of 7483 if/when we do 7483bis.

Scott

> -----Original Message-----
> From: Patrick Mevzek <[email-masked]>
> Sent: Wednesday, November 6, 2019 1:37 PM
> To: [email-masked]
> Cc: Andrew Lee Newton <[email-masked]>; Hollenbeck, Scott
> <[email-masked]>; [email-masked]
> Subject: [EXTERNAL] Questions about RDAP extensions and registration at
> IANA, role of prefix and version
>
> Hello,
>
> (after having written all the below, I see it is touched already by
> https://tools.ietf.org/html/draft-blanchet-regext-rdap-deployfindings-
> 05#section-2.2 for most points, so there is some overlap but still sending my
> views below, because that draft hints at just changing things in the current
> IANA registry, where I think some RFC changes are needed too) (so CCing
> the designated experts for the IANA registry, and Marc as author of the
> above draft)
>
> IANA registry at
> So "_level_0" is a kind of suffix, under control of the relevant party (of the
> namespace being registered), but is it free-form or should it be always
> _level_XXXX?
> If so, should the registration be instead for "arin_originas" and "cidr" so that
> the relevant owners can "upgrade" to a later version without a new IANA
> registration?
> But if so, this creates a collision. Shouldn't the RFC mention that when you
> register X you own X_anything, not Xanything, that is make at least a _
> character mandatory after the prefix if what is used in the rdapConformance
> is not exactly the prefix?
>
> they are used as is in rdapConformation, but shouldn't the IANA registration
> really be for the prefix, without consideration of the "version"? And they do
> not use either _level_0, _version_0, or 0 like other extensions, but now _0.
>
> At the time of publication,"icann_rdap_technical_implementation_guide" is
> pending registration in the IANA RDAP Extensions Registry
>
> I would suggest this is amended at some point in the future to reserve
> everything starting with "rdap_" to only be used by extensions defined in
> RFCs, like RFC8521 does.
> (I am not sure what is the gain by refusing "xml" as prefix, even if I do not see
> it as a useful prefix either. RDAP is far more JSON than XML stuff so if we had
> to restrict something "json" would have made more sense than "xml" to me,
> even if neither makes sense to me in some way here; explanations in
> RFC7480 §6 do not really convince me there)
>
>
> I am not asking all the above for the beauty(?) of it, things like that have
> strong interoperability consequences and needs to be taken into account to
> properly design a client connecting to various servers, which I sadly discover
> only now as working in RDAP-land.
>
>
> PS: unrelated additional petpeeve, for here or anywhere else, any link taken
> to a "reference" but which points to a git repository, without enforcing in the
> URL a specific commit, is not really a reference. It points to the latest
> "master" version of that file, which can change over time, as a branch tip is
> not a stable reference. Links to repositories should be refused if they do not
> include a stable reference, which means a commit ID (a tag can also move, so
> it is not good enough)
>
> Wikipedia solves that by adding to each link something like "retrieved on
> XXXX-XX-XX" so that you have at least a timestamp. IANA registration could
> at least include a timestamp (when the extension was registered)
>
> PS2: seeing that all of the above come from the fact that we are basically
> trying to reinvent XML namespaces but in JSON... and arriving at the situation
> where we get all the drawbacks without any strong advantage, at least not
> until things are clearer/stricter.
>
> --
>   Patrick Mevzek
>   [email-masked]

---

From: Andrew Newton <[email-masked]>
Date: Thu, 7 Nov 2019 10:01:34 -0500

I agree with Scott. The idea is to prevent collision and provide an
easy way to lookup the spec in the IANA registry.

These are supposed to be opaque identifiers. If an extension author
wants to add their own sub-label versioning, I guess that is ok but in
my opinion they are making things more complicated than necessary.

-andy

On Thu, Nov 7, 2019 at 7:05 AM Hollenbeck, Scott
<shollenbeck=[email-masked]> wrote:
> _______________________________________________
> regext mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/regext