Andy, 

Thanks for weighing in on this.  I provide my replies embedded below.  

-- 

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 7/1/22, 9:17 AM, "Andrew Newton" <a...@hxr.us> wrote:

    James,

    Comments in-line...

    On Mon, Jun 27, 2022 at 12:36 PM Gould, James
    <jgould=40verisign....@dmarc.ietf.org> wrote:
    >
    >
    > The question is how we handle versioning, which is an aspect not covered 
in the existing RFCs.  The only version reference is in the RDAP Conformance 
definition in section 4.1 of RFC 9083 with "rdap_level_0" and 
"lunarNIC_level_0".  If the use of "lunarNIC_level_0" was a mistake, then 
versioning is completely absent for extensions.

    In my opinion, this is not accurate. The identifier is the version. If
    I understand your position correctly, you believe that the identifier
    should contain a separate, embedded, syntactically-parsable version
    identifier. And that is not an unreasonable position. However, what
    are the benefits of having it? And what are the complications of
    having it? If this sub-identifer were also an opaque identifier, then
    I don't see much benefit. If it were to have semantics, then what are
    those semantics?

JG - If versioning is an explicit goal, then yes, the version number should be 
syntactically-parsable.  The RDAP conformance is meant to provide a hint of the 
specifications used in the construction of the response.  The extension 
specification defines the RDAP elements used in the RDAP request (URL path 
segments and query parameters) and response (JSON response members and 
objectClassName values for new RDAP objects).  Versioning is an important 
aspect of the signaling of the RDAP conformance that is missing from the RFCs, 
and because of that we're having this discussion around the three approaches 
(Approach A with tight coupling of the RDAP Conformance with the extension 
elements, Approach B with coupling of the prefix with the extension elements, 
and Approach C with no coupling with the prefix and the extension elements).  

    >
    > Approach A is a showstopper to me since it cascades versioning to all 
elements with no perceived value and with the cost of interoperability issues 
when the version number does change.

    What do you mean by "all elements" here? Can you provide an example?

JG - The proposal of Approach A is to have the RDAP conformance value be used 
as the prefix of all the RDAP extension elements defined in the extension 
specification.  These can include URL path segments in the requests, the JSON 
response members in the responses, and the objectClassName values in the 
responses for new RDAP objects.  draft-ietf-regext-rdap-openid provides an 
example of Approach A with the RDAP Conformance value of "roidc1", which embeds 
the version number into the prefix that is used for the query parameter 
"roidc1_id", and the response members "roidc1_session", "roidc1_deviceInfo", 
and "roidc1_openidConfiguration".  If the specification is updated, which can 
be backward compatible by adding a new optional feature, the version number 
would be changed from "roidc1" to "roidc2", which then results in changing all 
the extension elements ("roidc2_id" query parameter and "roidc2_ session", 
"roidc2_deviceInfo", and "roidc2_openidConfiguration").  Cascading the 
versioning RDAP conformance into all the extension elements can lead to 
interoperability issues and discourage changing the version number at all.  
Approach B is reflected in draft-ietf-regext-rdap-redacted-04, where "redacted" 
is registered in the RDAP Extension Registry and is used for the RDAP 
Conformance value "redacted_level_0.2" (should be "redacted_level_0_2") and 
used for the JSON response member "redacted".  Approach C is reflected in 
draft-ietf-regext-rdap-redacted-08, where the "redacted_level_0_3" version 
identifier and the "redacted" prefix are registered in the RDAP Extension 
Registry with the use of the "redacted_level_0_3" version identifier for RDAP 
Conformance and the use of the "redacted" prefix for the JSON response member.

In the case of Approach B and C, the values registered in the RDAP Extension 
Registry guarantee uniqueness, and the RDAP Conformance value has the sole 
responsibility of signaling the version of the extension without cascading down 
to the extension elements.  I prefer the flexibility of Approach C, but 
Approach B will work.  One side effect of Approach C is that we still need to 
support the registration of fully versioned identifiers to capture policy 
signaling, such as the case of the RDAP Profile identifiers 
"icann_rdap_response_profile_0" and 
"icann_rdap_technical_implementation_guide_0".  

    -andy

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

Reply via email to