Hi Tom,

please find my comments below.

Il 19/05/2022 08:35, Tom Harrison ha scritto:
Hi James,

On Wed, May 18, 2022 at 11:59:05AM +0000, Gould, James wrote:
On Wed, May 18, 2022 at 09:12:16AM +1000, Tom Harrison wrote:
The uniqueness aspect of the registry is fine, as is the 'null suffix'
part.  I'm more concerned with the confusing way in which the various
documents interact in this respect and the fact that two different
'types' of values will be registered (advisedly) from now on.
I don't believe there will be any confusion since the purpose of the
registry is to ensure the uniqueness of the prefixes and identifiers
used by the RDAP extensions and the purpose of the referenced
specification is to define their usage.
Having reviewed the relevant text again, I think I know what happened
here (which is relevant to what to do next).  RFC 7480 has:

     For extensibility purposes, this document defines an IANA registry
     for prefixes used in JSON [RFC7159] data serialization and URI
     path segments (see Section 8).

Later in that document:

     The purpose of this registry is to ensure uniqueness of extension
     identifiers.  The extension identifier is used as a prefix in JSON
     names and as a prefix of path segments in RDAP URLs.

Followed by an example registration:

     Extension identifier: lunarNic
     Registry operator: The Registry of the Moon, LLC
     Published specification: http://www.example/moon_apis/rdap
     Person & email address to contact for further information:
     Professor Bernardo de la Paz <[email protected]>
     Intended usage: COMMON

lunarNic is not otherwise mentioned in RFC 7480.  But RFC 7483 (not
9083) has:

     When custom JSON values are inserted into responses, conformance
     to those custom specifications MUST use a string prefixed with the
     appropriate identifier from the IANA RDAP Extensions registry
     specified in [RFC7480].

with an example conformance value of "lunarNic_level_0".  It then goes
on to give example lunarNic fields like "lunarNic_beforeOneSmallStep".
For a user looking at this prior to the publication of RFC 9083, it
looks like:

  - the prefix is what is registered as the extension identifier;
  - if a conformance value begins with the prefix, then
    the response is in accordance with the corresponding extension;
  - such a response may contain new fields that begin with the prefix;
    and
  - the relevant server may support additional paths that begin with
    the prefix, per the extension documentation.

Then there is Patrick Mevzek's thread (beginning at
https://mailarchive.ietf.org/arch/msg/regext/o0o4gpLNOpt5fficODoJr8LP-qM/)
from 2019, where his understanding is basically per the above, noting
some issues with this:

  - is the text after the prefix in the conformance value free-form?
    are there any requirements around that text more generally?
  - if free-form text is permitted, then an extension identifier like
    "cidr" means that no other extension beginning with "cidr" can be
    registered, because a client would not be able to distinguish the
    conformance values: is that intentional?
  - why do some extensions embed the version in the extension?

after which Scott and Andy note that they expect the conformance
values to be exact matches for the extension identifiers, and that the
same will be addressed in 7483bis (i.e. 9083).  That happens by
changing the following text in 7483:

     When custom JSON values are inserted into responses, conformance
     to those custom specifications MUST use a string prefixed with the
     appropriate identifier from the IANA RDAP Extensions registry
     specified in [RFC7480].

such that it becomes:

     When custom JSON values are inserted into responses, conformance
     to those custom specifications MUST be indicated by including a
     unique string literal value registered in the IANA RDAP Extensions
     registry specified in [RFC7480].

but neither 7480 nor the example lunarNic fields in 7483 are updated
to suit, leading to the current situation where it appears (at least
on one reading) that the conformance value must be used as the prefix.

If the change in 9083 is considered to be a mistake, and registering
prefixes is considered acceptable, then possibly the simplest option
is to:

  - submit an erratum against 9083;
  - continue registering extensions, but register only the prefixes;
    and
  - write a document clarifying all of this, as well as noting
    conventions around versioning and so on, to avoid some of the
    problems Patrick raised around namespacing and similar.

[ML] This is exactly what I was meaning in an earlier post of mine when I wrote that version information should be excluded from the extension identifier and rdapConformance tag should start with the extension identifier and, optionally, end with the version number separated by  "_level_" or "_".

Having prefixes that include the version number would result in producing breaking changes even when the changes wouldn't normally break the REST API contract such as adding a new optional member to a response extension or adding an optional parameter to an URI path.

Minor versions could be separated by dot so that it would be easy to derive programmatically the extension identifier and the version information by searching an rdapConformance tag for the last occurrence of "_level_" (or secondly "_").

As the only consequence, i would recommend to correct the registered extension identifiers ending with the string "_0"  by removing the version information.

Since all of such extension identifiers seems to me corresponding to RDAP profiles,  no breaking change would affect the current requests and responses.

Otherwise, I consider James's proposal as a practicable alternative permitting RDAP operators to exlcude version information from response fields and URI path segments..


Best,

Mario



This has some added benefits:

  - only one registry is needed; and
  - the entries in the existing registry are all fine and do not need
    to be changed (so long as conformance values are permitted to be
    exact matches for extension identifiers, which doesn't seem to be
    problematic).

It does mean that a given extension is restricted to a single
field/path prefix, but I'm not sure that that's a serious problem, or
at least I don't think there are any documents pending that are using
multiple prefixes.

-Tom

_______________________________________________
regext mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/regext

--
Dr. Mario Loffredo
Technological Unit “Digital Innovation”
Institute of Informatics and Telematics (IIT)
National Research Council (CNR)
via G. Moruzzi 1, I-56124 PISA, Italy
Phone: +39.0503153497
Web: http://www.iit.cnr.it/mario.loffredo

_______________________________________________
regext mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/regext

Reply via email to