Re: [regext] Extension Prefixes, JSON Values, and URI Path Segments

Mario Loffredo <mario.loffredo@iit.cnr.it> Mon, 02 May 2022 06:58 UTC

Return-Path: <mario.loffredo@iit.cnr.it>
X-Original-To: regext@ietfa.amsl.com
Delivered-To: regext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7E0E4C157B5E for <regext@ietfa.amsl.com>; Sun, 1 May 2022 23:58:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.753
X-Spam-Level:
X-Spam-Status: No, score=-3.753 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, NICE_REPLY_A=-1.857, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yD0KSAAC-8pC for <regext@ietfa.amsl.com>; Sun, 1 May 2022 23:58:50 -0700 (PDT)
Received: from smtp.iit.cnr.it (mx4.iit.cnr.it [146.48.58.11]) by ietfa.amsl.com (Postfix) with ESMTP id 9CF09C159485 for <regext@ietf.org>; Sun, 1 May 2022 23:58:50 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by smtp.iit.cnr.it (Postfix) with ESMTP id 7A7AFB80520; Mon, 2 May 2022 08:58:47 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mx4.iit.cnr.it
Received: from smtp.iit.cnr.it ([127.0.0.1]) by localhost (mx4.iit.cnr.it [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BKCj-ykuzZEP; Mon, 2 May 2022 08:58:44 +0200 (CEST)
Received: from [192.12.193.108] (pc-loffredo.staff.nic.it [192.12.193.108]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by smtp.iit.cnr.it (Postfix) with ESMTPSA id 29A4DB8025D; Mon, 2 May 2022 08:58:44 +0200 (CEST)
Message-ID: <5b8db0db-7576-cbd8-d4aa-40cd980a92f9@iit.cnr.it>
Date: Mon, 02 May 2022 08:56:42 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1
To: "Hollenbeck, Scott" <shollenbeck=40verisign.com@dmarc.ietf.org>, "jasdips@arin.net" <jasdips@arin.net>, "regext@ietf.org" <regext@ietf.org>
References: <0244AB9A-CC61-4B0F-937E-0208295840DB@arin.net> <a5d354ee03ee4935b12127b7c90942fe@verisign.com>
From: Mario Loffredo <mario.loffredo@iit.cnr.it>
In-Reply-To: <a5d354ee03ee4935b12127b7c90942fe@verisign.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/x5vE3gM38EhjSJns2Glk3spp1K0>
Subject: Re: [regext] Extension Prefixes, JSON Values, and URI Path Segments
X-BeenThere: regext@ietf.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: Registration Protocols Extensions <regext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/regext>, <mailto:regext-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/regext/>
List-Post: <mailto:regext@ietf.org>
List-Help: <mailto:regext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/regext>, <mailto:regext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 May 2022 06:58:54 -0000

Hi Jasdip and Scott,

Il 01/05/2022 16:11, Hollenbeck, Scott ha scritto:
>> -----Original Message-----
>> From: Jasdip Singh <jasdips@arin.net>
>> Sent: Thursday, April 28, 2022 12:51 PM
>> To: Hollenbeck, Scott <shollenbeck@verisign.com>; regext@ietf.org
>> Subject: [EXTERNAL] Re: [regext] Extension Prefixes, JSON Values, and URI
>> Path Segments
>>
>> Caution: This email originated from outside the organization. Do not click
>> links
>> or open attachments unless you recognize the sender and know the content
>> is safe.
>>
>> Hello Scott,
>>
>> Please find my comments below.
>>
>> Thanks,
>> Jasdip
>>
>> P.S. Thanks to Tom for his analysis of all current extensions. :)
>>
>> On 4/28/22, 10:27 AM, "regext on behalf of Hollenbeck, Scott" <regext-
>> bounces@ietf.org on behalf of shollenbeck=40verisign.com@dmarc.ietf.org>
>> wrote:
>>
>>      Since this topic is coming up in the reverse search discussion, but
>> isn't
>>      unique to reverse search, I thought it best to start another topic.
>>
>>      Section 6 of RFC 7480 introduces the concept of "an IANA registry for
>> prefixes
>>      used in JSON [RFC7159] data serialization and URI path segments (see
>> Section
>>      8)". "lunarNic" is given as an example in Section 8. I cannot, though,
>> find
>>      any mention of a MUST when it comes to using these prefixes for data
>>      structures or URI path segments, though Section 8.1 says this:
>>
>>      "The extension identifier is used as a prefix in JSON names and as a
>> prefix
>> of
>>      path segments in RDAP URLs."
>>
>>      RFC 9083 is more definitive. From Section 4.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].
>> For
>>      example, if the fictional Registry of the Moon wants to signify that
>> their
>>      JSON responses are conformant with their registered extensions, the
>> string
>>      used might be "lunarNIC_level_0"."
>>
>>      Note the use of MUST here. Section 5 of RFC 9082 contains similar text:
>>
>>      "Custom path segments can be created for objects not specified here
>> using
>> the
>>      process described in Section 6 of "HTTP Usage in the Registration Data
>> Access
>>      Protocol (RDAP)" [RFC7480].
>>
>>      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"."
>>
>>      After re-reading all of this, my take is that extensions MUST tag new
>> data
>>      structures and path segments with the prefix that's registered with
>> IANA.
>> That
>>      means I'm going to have to change the data structures and path segments
>> in
>>      draft-ietf-regext-rdap-openid (I'm probably going to change the prefixes
>> to
>>      something shorter to make them a bit less clunky). Other extension
>>      authors/editors should review their documents and provide their own
>>      assessments.
>>
>> [JS] Want to test-drive the phrase "new data structures and path segments "
>> in the "extensions MUST tag new data structures and path segments with
>> the prefix that's registered with IANA" suggestion. :)
>>
>> A new data structure could be an entirely new object class (e.g. for a
>> session
>> in RDAP OpenID), or a change in the member set for an existing object class
>> (say, for a domain). Is it correct to assume that for the former, the
>> extension
>> prefix would be applied to the overall object name (e.g. "< RDAP OpenID
>> extension>_session") in the response whereas for the latter, only the new
>> members would be prefixed with the extension identifier (including
>> version)?
> [SAH] That seems like a reasonable interpretation.
>
>> As for using a new extension in a related new path segment (e.g. for reverse
>> search), we seem ok with having path segments like ".../<new
>> extension>_0/...", ".../<new extension>_1/...", and so on for each
>> subsequent new version of that extension and not concerned about
>> inadvertently introducing "brittleness" in URLs for RDAP clients. Right?
> [SAH] That "brittleness" is what causes me concern. In theory, it should help
> eliminate surprises. Without these tags, the same path segment might return
> different results depending on whether an extension is supported by a server
> or not.

[ML] It all depends on how the transition from 
".../<newextension>_0/..." to ".../<newextension>_1/..." is going to be 
implemented.

Path versioning in REST API is a common practice.

Servers should signal the sunset and the deprecation of a path version 
and its possible replacement with a new one by using links (as described 
for example in RFC8594 and RFC8631)  in order to make the transition as 
smooth as possible and avoid breaking changes.

This is the approach followed by rdap-jscontact doc.

Mario

>> Since this subject has engendered discussion/confusion over time, looks like
>> a good idea to detail it further in a new doc.
> [SAH] That's probably a good idea, Jasdip. Let us know when you have the first
> draft out there... 😊
>
> Scott
> _______________________________________________
> regext mailing list
> regext@ietf.org
> 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