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

"Hollenbeck, Scott" <shollenbeck@verisign.com> Sun, 01 May 2022 14:11 UTC

Return-Path: <shollenbeck@verisign.com>
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 E2CF3C14F74C for <regext@ietfa.amsl.com>; Sun, 1 May 2022 07:11:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.1
X-Spam-Level:
X-Spam-Status: No, score=-7.1 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=verisign.com
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 bc-ZsSSBfqgX for <regext@ietfa.amsl.com>; Sun, 1 May 2022 07:11:27 -0700 (PDT)
Received: from mail5.verisign.com (mail5.verisign.com [69.58.187.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CA4EEC14F731 for <regext@ietf.org>; Sun, 1 May 2022 07:11:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=verisign.com; l=6492; q=dns/txt; s=VRSN; t=1651414288; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=Q9U+50K/kZbDHVE2riybWtaS+YMJea4urs3kYjDIFUk=; b=VduQmEDzFH7yJbrq7VJnQigc6EF+EhITyQ857F7YG/6keT0XHKpYNCRo 88o2VgtiTp6y+0cTLjgANszLvr35tjArBBuPZafK7QaK1JnQGtT/0RAsf 6k/GBmgXwbEW3JfXZZFt+b/sGMvtXny5GzTFMN//s3DYaKZ0cl55iRjsc a+djClZS8Tauq0lxIvs1QLJYqSw2aCt3fsfwX0lmgw/4bvhk1tullC8A8 /HOzHLXa7qllr5+nY+rBjbliAbiGZzaYIHJmRhmlq1oF2e0njkU1I7aVt ucoApZZS9SdSbM1IeCN0SHPvIFfi5G3ApMOEUSVQa1cNlFj+MxiL3NOhK w==;
IronPort-Data: A9a23:ZtAcSqKTpM8zVH51FE+RlpQlxSXFcZb7ZxGr2PjKsXjdYENS1TUGm DdNUWjXOv2INDehLYx1b46+oE0P6p+EyYRkTlBorCE8RH908seUXt7xwmUcnc+xBpaaEB84t ZV2hv3odp1coqr0/0/1WlTZQP0VOZigHtIQMsadUsxKbVIiGX5JZS5LwbZj2NY12YHhWmthh PupyyHhEA79s9JLGj9Mg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJp8tuSH I4v+pnipz+EoE19Yj+Suu2TnkUiGtY+NCDQ0iYGA/DKbhJq/kTe2Y5jXBYQhNs+Z5xkULmdx f0U3aFcRzvFMYWVm95aSFpoDRhbfqBbpI7HHyaSiu6cmhiun3vEm52CDWkcB6tBxcBaMTkUs +ITLyoVKBmPwfys27T9Qe5p7ighBJCzetpA4Tc5kGqfUadOrZPrGs0m4fdD3DA0gs1IF/vVZ OIHZCBudxXPZVtEPVJ/5JcWxbz52SKlKmYwRFS9/JURxHXt/RFN9Kn1H4vPZoe0fchxpxPNz o7B1yGjav0AD/SdwCGJ82q3rubVnCW9Xo8OfJWi+/FnkEG7x2EPBlsRT1TTnBWiokSkXYtAL UEEonBrtrYoskmqVZz3WFuyunjd+AAGQNwWGOo/gO2Q9pfpD8+iLjBsZlZ8hBYO7afamRRCO oe1ou7U
IronPort-HdrOrdr: A9a23:YzuxH6rtXImWcCxoFSS0mb8aV5oAeYIsimQD101hICG9Kvbo8v xG785rsSMc7wxhI03I+OrwQJVoLkm8yXcY2+Ms1PKZLWvbUQiTXftfBOnZowEIcheWnoVgPO VbAstD4bbLYWSS+PyV3ODOKbkdKbe8nZxAzt2uqEuFBTsaDZ2IwT0JczqmLg==
X-IronPort-AV: E=Sophos;i="5.91,190,1647316800"; d="scan'208";a="13973213"
Received: from BRN1WNEX02.vcorp.ad.vrsn.com (10.173.153.49) by BRN1WNEX02.vcorp.ad.vrsn.com (10.173.153.49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.24; Sun, 1 May 2022 10:11:22 -0400
Received: from BRN1WNEX02.vcorp.ad.vrsn.com ([10.173.153.49]) by BRN1WNEX02.vcorp.ad.vrsn.com ([10.173.153.49]) with mapi id 15.01.2375.024; Sun, 1 May 2022 10:11:22 -0400
From: "Hollenbeck, Scott" <shollenbeck@verisign.com>
To: "jasdips@arin.net" <jasdips@arin.net>, "regext@ietf.org" <regext@ietf.org>
Thread-Topic: [regext] Extension Prefixes, JSON Values, and URI Path Segments
Thread-Index: AQHYWyAqNVp4sXxgQAGTU/fYRXQhAa0KEgUQ
Date: Sun, 01 May 2022 14:11:22 +0000
Message-ID: <a5d354ee03ee4935b12127b7c90942fe@verisign.com>
References: <0244AB9A-CC61-4B0F-937E-0208295840DB@arin.net>
In-Reply-To: <0244AB9A-CC61-4B0F-937E-0208295840DB@arin.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.170.148.18]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/uyBPbabUc09mx4Yu3fSYty_VJKc>
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: Sun, 01 May 2022 14:11:31 -0000

> -----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.

> 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