Andy, Thanks for your response. My feedback is 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/18/22, 4:02 PM, "Andrew Newton" <a...@hxr.us> wrote: On Fri, Jul 15, 2022 at 8:13 AM Gould, James <jgo...@verisign.com> wrote: > > > 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". > I don't know if I fully understand the difference between approaches B & C, but policy signalling seems important. My preference is not to break that. JG - The difference between Approach B and C is the coupling between the RDAP Conformance value and the extension elements, where Approach B uses the registered prefix value for the versioned RDAP Conformance value ("redacted" registered prefix and the RDAP Conformance value "redacted_level_X" defined within the specification). Approach C decouples them and supports the registration of the versioned RDAP Conformance identifier ("redacted_level_X" registered for the specification version and the registration of one or more prefixes defined within the specification, such as "redacted"). The versioned RDAP Conformance is associated with hinting the specification supported by the server, where there is no hard requirement to couple the RDAP Conformance value with the prefixes defined within the specification. Approach A couples the RDAP Conformance value with the prefix value used for the extension elements. Both Approach B and C support version signaling only in the RDAP Conformance value and allow the extension elements to be unchanged with version changes. For adding on to an existing extension, one approach might be to list the new sub-members separately. For example, "exampleNicV1" is created and listed in the rdapConformance. So for example: { "rdapConformance" : [ "rdap_level_0", "exampleNicV1"], "exampleNicV1_foo": { "bar": "buz" } .... } Now, an addition is desired, so "exampleNicV1_modA" is created: { "rdapConformance" : [ "rdap_level_0", "exampleNicV1", "exampleNicV1_modA"], "exampleNicV1_foo": { "bar": "buz", "exampleNicV1_modA_bar": "bazz", } .... } JG - This is defining a new mechanism for auto-discovery. My recommendation is to separate auto-discovery capabilities from the hinting provided by the RDAP Conformance values, where the RDAP Conformance values are only used for signaling the specification versions supported by the server. I have experience with attempting to provide an auto-discovery capability in EPP with the Registry Mapping (https://datatracker.ietf.org/doc/html/draft-gould-carney-regext-registry), which was very ambitious for EPP and I believe will be very ambitious and more complex then you may think for RDAP. This works because "Clients of these JSON responses SHOULD ignore unrecognized JSON members in responses." (Section 2.1 of RFC 9083). JG - This issue that we're tackling is how to not break clients when introducing a new version of an extension, where new unrecognized JSON members SHOULD be ignored but removing existing members with a version change can certainly cause an issue for the client. A server can't introduce a backward compatible enhancement without forcing all clients to change and the server may have no visibility into what the client supports since there may be no client-side version signaling available. An example is draft-ietf-regext-rdap-redacted, which only extends the response members of the response. Approach B and C mitigate the interoperability risk by only embedding the version into the RDAP Conformance value. What is the advantage of embedding the version into the prefix in Approach A for the client? -andy _______________________________________________ regext mailing list regext@ietf.org https://www.ietf.org/mailman/listinfo/regext