Tom,

Thank you for your thoughts on the proposal.  I include my responses embedded 
below prefixed with "JG - ".  

-- 
 
JG



James Gould
Fellow Engineer
jgo...@verisign.com 
<applewebdata://13890C55-AAE8-4BF3-A6CE-B4BA42740803/jgo...@verisign.com>

703-948-3271
12061 Bluemont Way
Reston, VA 20190

Verisign.com <http://verisigninc.com/>

On 5/17/22, 8:56 AM, "Tom Harrison" <t...@apnic.net> wrote:

    Hi James,

    (Replying to the original mail, but taking into account replies to it
    to date as well.)

    On Thu, May 05, 2022 at 03:44:01PM +0000, Gould, James wrote:
    > Scott and I discussed this offline, and below is a proposal for the
    > RDAP Extension Registry registrations that meets the language in the
    > RFCs and ensures that there are no conflicts (RFC 7480 “ensure
    > uniqueness of extension identifiers”) with the URI paths or JSON
    > members for new RDAP extensions.
    > 
    >   1.  Register any URI path or JSON member prefixes added by the
    >   extension.  The value may have a null suffix, so the exact value
    >   can be registered.
    >
    >      * Supporting language in the RFCs
    >
    >        i. RFC 7480
    >
    >          1.  Prefixes and identifiers SHOULD only consist of the
    >          alphabetic US-ASCII characters A through Z in both
    >          uppercase and lowercase, the numerical digits 0 through 9,
    >          and the underscore character, and they SHOULD NOT begin
    >          with an underscore character, numerical digit, or the
    >          characters “xml”.  The following describes the production
    >          of JSON names in ABNF [RFC5234]:
    > 
    >            a. name = ALPHA *( ALPHA / DIGIT / “_” )
    > 
    >              i. I would more clearly define a custom element (custom
    >              URI path or custom JSON member) using the ABNF, which
    >              does meet the existing RFC 7480 ABNF:
    > 
    >                1. element = prefix [ suffix ]
    >                2. prefix = name
    >                3. suffix = “_” name
    > 
    >        ii. RFC 9083
    > 
    >          1.  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]

    (This text is actually:

        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 I don't think it makes much difference to your approach.)

JG - Thanks for the correction.  Agreed it doesn't make a difference with the 
proposal.

    >            a. This normative language is contained in the RDAP
    >            Conformance section of RFC 9083, but it does cover the
    >            JSON members use of the format defined above in RFC7480.
    > 
    >   1.  Register a versioned identifier for use as an RDAP conformance 
value.
    >
    >      *   Supporting language in the RFCs
    >
    >        i. RFC 9083
    > 
    >          1. 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]
    > 
    >            a. This normative language is contained in the RDAP
    >            Conformation section of RFC 9083.  The unique identifier
    >            can and should be versioned to support future updates to
    >            the extension.  My recommendation is to use a pointed
    >            version with the major version set to ‘0’ prior to the
    >            draft completing WGLC (e.g., “0_1”, “0_2”, “0_N”).   The
    >            RDAP Conformance value specifies the extension and
    >            version supported in the response, where the
    >            specification defines the prefixes used for the extension
    >            URI paths and JSON members, and the prefixes are
    >            registered to ensure that there is no conflict with other
    >            extensions.  The RDAP Conformance pattern ABNF could be
    >            followed:
    > 
    >              i. identifier = name “_level_” version
    >              ii. version = DIGIT [ “_” DIGIT ]

    I think this approach could work in principle, but I don't think it's
    in accordance with the current text:

     - RFC 7480 has "[t]he extension identifier is used as a prefix in
       JSON names and as a prefix of path segments in RDAP URLs", but
       under this new approach, that would no longer be the case for
       values registered as RDAP conformance values (because they would
       not be used as prefixes).

JG - A registered value is a prefix but with a null suffix.  The only formal 
definition of the name in RFC 7480 is the ABNF name = ALPHA *( ALPHA / DIGIT / 
"_" ), which does not require the use of the underbar.     

     - RFC 9082 has:

        Custom path segments can be created by prefixing the segment with
        a unique identifier followed by an underscore character (0x5F).
        For example, a custom entity path segment could be created by
        prefixing "entity" with "custom_", producing "custom_entity".

       But the new extension approach described above would permit a
       different model to be used for fields in responses (null suffix),
       which is unintuitive/inconsistent.  (At least, it would be
       surprising if this extra text in 9082 were intended to lead to a
       different outcome for path segments when compared with the text in
       9083 about fields in responses.)
     - More generally, having a single registry for both RDAP conformance
       values and field/path prefixes seems like it could be confusing for
       users, especially in the absence of clarifying text.  (It's true
       that there's a mix at the moment, but that appears to be an
       oversight, rather than something done intentionally or something
       that should be preserved in the future.  There are also no existing
       instances of an RDAP conformance value and a path prefix being
       registered for a single extension.)

JG - This language from RFC 9082 is not normative and provides an example of 
defining a custom "entity" path segment, which would conflict with the existing 
"entity" path segment without the use of the prefix.  The registration of the 
prefix will ensure uniqueness of the use of the prefix across the extensions, 
where adding a non-null suffix can be used if and when there is a conflict.    

    I think this topic is sufficiently unclear that a new clarifying
    document should be written (and preferably finalised) before any
    document progresses that is not in accordance with a 'strict' reading
    of the current text.  (Such a reading (IMHO) has the RDAP conformance
    value as the extension identifier in the IANA registry, with that
    identifier used as-is as a prefix for new path segments and fields
    defined by the extension.)  That new document could e.g. set out the
    approach you have described above, though possibly with a separate
    registry for path segment and field prefixes to avoid any potential
    confusion in that respect, and it could also amend relevant entries in
    the existing registry so that they become valid.

JG - I agree, it looks like there is the need for a clarifying document to 
address this.  There will be no conflict with other entries in the registry, 
since a unique versioned identifier is registered for the RDAP conformance, and 
a unique prefix is registered for use by the path segments and the fields.  Use 
of a null suffix doesn't impact the uniqueness of the registration of the 
prefixes.  The registrations include a reference to the specification that 
fully defines the use of the registered value.  The registry addresses the 
uniqueness of the identifiers and prefixes, and the specification addresses the 
usage of the registered identifiers and prefixes with the inclusion of the set 
of suffix values.  

    -Tom

_______________________________________________
regext mailing list
regext@ietf.org
https://www.ietf.org/mailman/listinfo/regext

Reply via email to