Re: [regext] OK, What Next? (was RDAP Extensions Approach Analysis v2)

"Hollenbeck, Scott" <shollenbeck@verisign.com> Mon, 18 July 2022 15:38 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 08B4BC13C51D for <regext@ietfa.amsl.com>; Mon, 18 Jul 2022 08:38:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.106
X-Spam-Level:
X-Spam-Status: No, score=-7.106 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, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 JHNkIA49g_D8 for <regext@ietfa.amsl.com>; Mon, 18 Jul 2022 08:38:46 -0700 (PDT)
Received: from mail6.verisign.com (mail6.verisign.com [69.58.187.32]) (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 DD55CC13C519 for <regext@ietf.org>; Mon, 18 Jul 2022 08:38:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=verisign.com; l=8244; q=dns/txt; s=VRSN; t=1658158726; h=from:to:cc:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version:subject; bh=z8Q1quCvO6QzDBGW0Qo+gKjf+M4r00n1K2HNDF9kxVI=; b=HKb58+tw4qSeckXm7GsWRwCwZR2ZeAlAwx/OpWy2DW6GT/PRI/7iUnjv AdshlrayPbKT7S+cF+mY5hbfTW33oXEAcVrEbgrnVJE0GzRKBNqdw5Ckb By3/iFGnLuKGcyrEkmHC4CH2IhzCWxlTMUGAxNVqwk29JPMciqieaB88a D81LkOjFVTQiZVit1OKvyQSryjjLl1KF2gO2OSs7ZpWyejBIMuouNxRid lHPNofBMviFoxX//+MWeAOB6nURaNJEh0vOs4X7Aiw49QQEL5Hi/Fjk/K L9+P5BZgJD1ArUkPPkfmeitwfoaA3UNuKF6mHk0Mu5+LYHBohZ+BUaRf+ g==;
IronPort-Data: A9a23:izjWlqiD/uaKFRDxmNprcc98X161PREKZh0ujC45NGQN5FlHY01je htvWWnVMvyOZWT3KNolOd/i/EhT757WyoRjTFRrqH0yRCoW8JqUDtmndUqhZCn6wu8v7q5Ex 55HNoSfdpBcolv0/ErF3m3J9CEkvU2wqz6V5NfsYkidfyc9IMsaoU8lyrRRbrJA24DjWVvS4 IOq+qUzBXf+s9JKGjNMg068gE431BjCkGtwUosWPK0jUPf2zhH5PbpHTU2DByKQrrp8R4ZWc 93+IISRpQs1yT92U4/4zeyrGqE9auW60QCm0hK6UoD82kQS/nRaPqwTbJLwYm8P49mFckwYJ HygevVcRC9wVpAgltjxXDFaC3FFGPVaxITiDiW6nPKWxUCeLXbjlqAG4EEeZeX0+85dO0cXy to1GGhXKA6IgPiuhru3DPd2ncJlJ87uVG8dkig4i2iGVrB/HMuFH/SiCdxwhV/cguhVHfHaY 8cfYzdkbzzebgdOIVYYDtQ1m+LAanzXKmAH8AzJ9fJfD2776SZX3YjHDcDuRNnJSdxLulq/r 3vA1jGsav0dHJnFodafyVqpj/XOmmX/X4wcDrC08dZrgUHVzWoJThwKPXOyp/Wook6uQZRCM CQ84CchoLgu3E2mUte7WAe3yENopTYWQdwJDOs3+FnXj7HK+UCcB3NBRDkHYsYg7YkoXycsk FSOmrsFGABSjVFcclrFnp/8kN94EXJ9wbMqDcPccTY43g==
IronPort-HdrOrdr: A9a23:XHzzpaw/2FtpycFJ1MzTKrPw8b1zdoMgy1knxilNoHtuA6mlfq GV7ZYmPHDP6Ar5NEtPpTniAsa9qBrnnPZICOIqTNSftWfd2VeAHcVN4Yzv2DX8FyC73f4178 tdWpk7LNHrF1B1gYLZ7BnQKbwd6ejC1Kyzn+/RwzNWUAdwZ8hbgjtREAqBDUFsfgVACKc4EJ b03KF6mwY=
X-IronPort-AV: E=Sophos;i="5.92,281,1650945600"; d="scan'208";a="15706480"
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.28; Mon, 18 Jul 2022 11:38:42 -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.028; Mon, 18 Jul 2022 11:38:42 -0400
From: "Hollenbeck, Scott" <shollenbeck@verisign.com>
To: "mario.loffredo@iit.cnr.it" <mario.loffredo@iit.cnr.it>, "Gould, James" <jgould@verisign.com>, "andy@hxr.us" <andy@hxr.us>
CC: "regext@ietf.org" <regext@ietf.org>
Thread-Topic: [EXTERNAL] Re: [regext] OK, What Next? (was RDAP Extensions Approach Analysis v2)
Thread-Index: AQHYmEQ9tunyk/PrlEesJ8OT8blWMK2EFlUA///1Y1CAAHJmAP//xOdA
Date: Mon, 18 Jul 2022 15:38:42 +0000
Message-ID: <b4965d3adcf54d19bf3252e921a9fe96@verisign.com>
References: <0C87A351-7EC7-4684-BF7A-FAB0EA12677E@verisign.com> <85387f48-2443-2e27-74f1-025e24ec8224@iit.cnr.it> <56cde22c2e7349faa86fb2c0deae6e4f@verisign.com> <fb9e13ab-1d1e-aa1f-e57b-3eb5cf06cad0@iit.cnr.it>
In-Reply-To: <fb9e13ab-1d1e-aa1f-e57b-3eb5cf06cad0@iit.cnr.it>
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/v_SaY0uOc3A9ddnlr0vlNYD5vzw>
Subject: Re: [regext] OK, What Next? (was RDAP Extensions Approach Analysis v2)
X-BeenThere: regext@ietf.org
X-Mailman-Version: 2.1.39
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, 18 Jul 2022 15:38:50 -0000

> -----Original Message-----
> From: Mario Loffredo <mario.loffredo@iit.cnr.it>
> Sent: Monday, July 18, 2022 10:51 AM
> To: Hollenbeck, Scott <shollenbeck@verisign.com>; Gould, James
> <jgould@verisign.com>; 'andy@hxr.us' <andy@hxr.us>
> Cc: 'regext@ietf.org' <regext@ietf.org>
> Subject: [EXTERNAL] Re: [regext] OK, What Next? (was RDAP Extensions
> Approach Analysis v2)
>
> 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.
>
> Hi Scott,
>
> please find my comments inline.
>
> Il 18/07/2022 15:11, Hollenbeck, Scott ha scritto:
> >> -----Original Message-----
> >> From: Mario Loffredo <mario.loffredo@iit.cnr.it>
> >> Sent: Monday, July 18, 2022 4:40 AM
> >> To: Gould, James <jgould=40verisign.com@dmarc.ietf.org>; andy@hxr.us
> >> Cc: Hollenbeck, Scott <shollenbeck@verisign.com>; regext@ietf.org
> >> Subject: [EXTERNAL] Re: [regext] OK, What Next? (was RDAP Extensions
> >> Approach Analysis v2)
> >>
> >> 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.
> >>
> >> I agree with James.
> >>
> >> The drawback of Approach A is that even an additive change to an
> >> existing extension would result in a breaking change to the RDAP
> >> service. As a consequence,  servers should always manage the
> >> transition from two subsequent versions of an extension.
> > Please explain how there's a breaking change. Let's assume that we
> > have an extension named "foo version 1" identified by the prefix
> > "foov1". "foov1" is registered with IANA, returned in the server's
> > rdapConformance data structure, and used to prefix extension elements.
> >
> > Now assume that a second version of the extension (foo version 2)
> > exists, identified by the prefix "foov2". "foov2" is also registered
> > with IANA, returned in the server's rdapConformance data structure,
> > and used to prefix extension elements.
> >
> > If the server supports only "foov1" or "foov2", it returns only one of
> > those values in the rdapConformance data structure, accepts only
> > extension elements prefixed with the supported value, and returns only
> > extension elements prefixed with the supported value. If a server
> > supports both "foov1" and "foov2", it returns both values in the
> > rdapConformance data structure, accepts extension elements prefixed
> > with either value, and returns extension elements prefixed with the
> > value that matches the requested value. So how does this transition
> scenario not work?
> >
> > Server supports "foov1" and returns that value in the rdapConformance
> > data structure. The server accepts requests and returns responses
> > prefixed with "foov1". The client sends requests and receives
> > responses prefixed with "foov1".
> >
> > At some point in the future a new version of "foo", identified by
> > "foov2", exists. The server enters a transition period and announces
> > support for both extensions by returning both values in the
> > rdapConformance data structure. It accepts extension elements prefixed
> > with either value and returns extension elements prefixed with the
> > value that matches the requested value. The client sends requests and
> receives responses prefixed with either "foov1" or "foov2"
> > depending on which value of the extension they support.
> >
> > Time passes, and the transition period ends. The server deprecates
> > support for "foov1" and announces support for only "foov2" by
> > returning only that value in the rdapConformance data structure. The
> > server accepts requests and returns responses prefixed with "foov2".
> > The client sends requests and receives responses prefixed with "foov2".
> >
> > Where's the breakage here? In both cases, the client and server can
> > identify extension elements by doing a simple pattern match for "foov1" or
> "foov2".
>
> Speaking technically, renaming a field name is considered a breaking change.
> Even admitting that the server can provide both the field versions for a
> period of time, the old version will be finally deleted and deleting a field 
> is a
> breaking change too.
>
> It's true that a transition process can geatly reduce the risk of breaking 
> the
> clients but, in my opinion, it doesn't make sense to adopt such a time-
> consuming approach also for additive changes.

[SAH] OK, I get the issue with long term backward compatibility when support 
for features is removed. That will exist no matter how clients and servers 
address extension identification.

So instead, let's assume that the server doesn't deprecate support for 
"foov1". Field names remain distinct, and clients can use whichever version 
they wish.

> Why should a response field be renamed when the new version differs from
> the old one only for the presence of an optional member?

[SAH] Because it is, in fact, different. A client would need to know that an 
optional member might be present.

> Think that the scenario is even worse when the new version of an extension
> consists in adding a new endpoint to a set of previously defined endpoints.
>
> Why should the existing endpoints be affected by the introduction of a new
> endpoint?

[SAH] Existing endpoints don't need to change when a new extension endpoint is 
added. Note that the federated authentication draft (identified by the prefix 
"roidc1"), for example, includes new session management endpoints that don't 
change the endpoints described in 9082, even though 9082 is being extended. If 
I ever write a draft for an extension identified by "roidc2" that includes a 
new endpoint, the endpoints identified by "roidc1" don't necessarily have to 
change. The "roidc2" extension could address only the new features, leaving 
the "roidc1" definitions alone.

Scott