[regext] Re: RDAP versioning - on client-server interactions and 2-RTT flow
Mario Loffredo <mario.loffredo@iit.cnr.it> Thu, 09 January 2025 11:23 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 6E421C151992 for <regext@ietfa.amsl.com>; Thu, 9 Jan 2025 03:23:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.004
X-Spam-Level:
X-Spam-Status: No, score=-2.004 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, 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=iit.cnr.it
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 xpBh-6dDkQdd for <regext@ietfa.amsl.com>; Thu, 9 Jan 2025 03:23:30 -0800 (PST)
Received: from mx5.iit.cnr.it (mx5.iit.cnr.it [146.48.58.12]) by ietfa.amsl.com (Postfix) with ESMTP id D9BDEC15152D for <regext@ietf.org>; Thu, 9 Jan 2025 03:23:29 -0800 (PST)
DKIM-Filter: OpenDKIM Filter v2.11.0 mx5.iit.cnr.it EDEC5C0356
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iit.cnr.it; s=mx520231221; t=1736421807; bh=N8g9ZcgEITLe63a4kF5BTVaI0xNfp/LCM4vQ2kMyItE=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=gt77NqnJLvmui07xwd2ZCIChziZ7WcOoO5CJeq5heD94XsHvJdg1OZPuy7nbsFSZI H0BPhIpDSLCdPTmooawC+lHLou3oAEKCWdOU3sSpqvm06iXiRh4GjXF4ubNwziXrAy P3K0BGSKg1iqvcbpS0LqVbo1O9LqqY+cVEHRdFmQQrE7BF22CcttAJAlH0w4mtJhmB xcFLTlHwcbfk7sT68xEz/PIOgw1vof5RrFHHIWlQPhz5mXTc7+SZQbKqLv3lFQpTZu 5fEJJT0kgCs+P1gTrMBlykuSpRUsGCF6qkw43RXwf47MPkxjxwrj6a1pQYQwCmN2+G lhUQEL2DR/f7Q==
Received: from localhost (localhost [127.0.0.1]) by mx5.iit.cnr.it (Postfix) with ESMTP id EDEC5C0356; Thu, 9 Jan 2025 12:23:26 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at mx5.iit.cnr.it
Received: from mx5.iit.cnr.it ([127.0.0.1]) by localhost (mx5.iit.cnr.it [127.0.0.1]) (amavisd-new, port 10028) with ESMTP id bT27_D-9D8-s; Thu, 9 Jan 2025 12:23:26 +0100 (CET)
X-Relay-Autenticated: yes
Message-ID: <7216918c-22d6-4817-987a-870c97d926db@iit.cnr.it>
Date: Thu, 09 Jan 2025 12:17:21 +0100
Mime-Version: 1.0
Content-Language: it
To: "kowalik@denic.de" <kowalik@denic.de>, "Andrew Newton (andy)" <andy@hxr.us>
References: <10ba3faa-8bf7-4202-81bf-e2c99473c3db@denic.de> <10BE3B85-4538-49C5-AB98-4EDDCDCF2B5F@verisign.com> <a872a3d3-ca80-4fbc-b747-b3738e857dae@denic.de> <F6BD2F41-C0E6-4892-B9DA-920A62A46CC5@verisign.com> <7fc24d8e-f845-4e62-b164-cf6dcaa39915@denic.de> <02044771-6C63-466D-88F4-FD08B270F4F3@verisign.com> <beb2763a-97ea-4e71-b144-45c5a3501042@denic.de> <EFD94C63-7AA1-400A-9A38-F7696409686A@verisign.com> <ba62eea0-6861-4b7b-9d5b-75ae4fae571c@iit.cnr.it> <CAAQiQRf+erCuYquLN25nAEcExe1CqEyhhF8pTX-SvVM-5TnYsw@mail.gmail.com> <38d4f728-44f3-49bb-b52f-037a806c2d68@iit.cnr.it> <a8e01119-2f44-4eef-a7cb-0016a2e91467@denic.de>
From: Mario Loffredo <mario.loffredo@iit.cnr.it>
In-Reply-To: <a8e01119-2f44-4eef-a7cb-0016a2e91467@denic.de>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
Message-ID-Hash: NFYTRJPQBVIUK2ZQJ6OXC52W7643KRNU
X-Message-ID-Hash: NFYTRJPQBVIUK2ZQJ6OXC52W7643KRNU
X-MailFrom: mario.loffredo@iit.cnr.it
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-regext.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "Gould, James" <jgould@verisign.com>, "regext@ietf.org" <regext@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [regext] Re: RDAP versioning - on client-server interactions and 2-RTT flow
List-Id: Registration Protocols Extensions Working Group <regext.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/36ifNdLPZwe5bl1UDM-r4jzVsiI>
List-Archive: <https://mailarchive.ietf.org/arch/browse/regext>
List-Help: <mailto:regext-request@ietf.org?subject=help>
List-Owner: <mailto:regext-owner@ietf.org>
List-Post: <mailto:regext@ietf.org>
List-Subscribe: <mailto:regext-join@ietf.org>
List-Unsubscribe: <mailto:regext-leave@ietf.org>
Hi Pawel, Il 08/01/2025 09:57, kowalik@denic.de ha scritto: > > [PK] This is all true, assuming there is always 100% match between the > client and the server on the version. Note that here, because we > version a specification not an implementation, we may face an unusual > situation that the client may be ahead of the server. In this case if > client depends on 0.8 functionality, it would not be fine with 0.4 > response (missing fields added between 0.4 and 0.8). So, if the server > eventually would ramp up 0.9 (not default yet) the client would not > get 0.9 response which would be working for him, unless it makes 2-RTT > flow and discovers 0.9 version, which it does not know (yet), but > which may serve a compatible response for it. > > The bottom line is, that the clients would either need the implement > 2-RTT flow to get an optimum answer, or always support somehow the > lowest version that may come from the server missing functionality > that may have come from a better version. > > This could be solved if the client would be able to make range version > requests. For me it would be one of the reasons to bother with > semantic versioning at all if machines could figure out on their own > the best fit. > > If it is not a goal and semantics behind versioning is just for > humans, then I would return to my previous position that we shouldn't > bother defining any semantics at all and let each extension define > their own stuff how they like. It is a waste in my eyes to define and > maintain strict rules for versioning with a new IANA registry and all > processes around it. > [ML] At any time a client version of a given specification may be ahead of a server version and vice versa. I wouldn't worry if the mismatch was due to a chain of backward compatible changes as the client can still process the response. Since we are talking about backward compatible versions, if the client is ahead of the server, all missing fields should be optional and the client would interpret their absence as a lack of information, vice versa, the client would ignore fields it doesn't recognize due to JSON being schemaless. Anyway, if both the client and the server supported the rdap-versioning spec, the client would get from the response the information about the version currently supported by the server. In a way, this is what happens when the client gets a redacted response. The only difference is that, if the server supports RFC 9537, the client can know that a missing field is not returned but supported. If the mismatch is due to a breaking change, both clients and servers are expected to play their part in the transition process : - The breaking version is supported as default by the client but not by the server The client should previously check if that version is supported before asking the server for it or submitting a request anyway. If the new version is not supported, the client should be able to switch to the old version as long as all the servers it usually deals with are alligned to the new version. Please note that the client knows that it is asking for and expecting a version related to a breaking change with regard to the previous version. - The breaking version is supported as default by the server but not by the client Similarly, the server should have previously planned a transition process to switch to that version to mitigate the risk of returning a breaking response. Such a transition should consist in first, announcing the sunrise of the new version, then serving the old version by default and the new version on request, finally returning the new version as default after giving appropriate time to all (or almost all of) the clients it deals with to switch to the new version. This is explained in the rdap-jscontact document. Generally, this is expected to happen for every version upgrade but in case of mismatches due to non-breaking versions both clients and servers never risk to break interoperability. I also think that since managing a transition process could be very cumbersome for both clients and servers depending on the scope of the breaking change, I think introducing a breaking version as the default should reset the sequence of non-breaking versions supported by both of them. In conclusion, I do believe that the RTT-flow is needed to efficiently implement a possible transition process and the rdap-versioning spec is helpful in this respect. Best, Mario -- Dott. Mario Loffredo Senior Technologist Technological Unit “Digital Innovation” Institute of Informatics and Telematics (IIT) National Research Council (CNR) Address: Via G. Moruzzi 1, I-56124 PISA, Italy Phone: +39.0503153497 Web: http://www.iit.cnr.it/mario.loffredo
- [regext] Re: RDAP versioning - on client-server i… Gould, James
- [regext] RDAP versioning - on client-server inter… Pawel Kowalik
- [regext] Re: RDAP versioning - on client-server i… kowalik@denic.de
- [regext] Re: RDAP versioning - on client-server i… Gould, James
- [regext] Re: RDAP versioning - on client-server i… kowalik@denic.de
- [regext] Re: RDAP versioning - on client-server i… Gould, James
- [regext] Re: RDAP versioning - on client-server i… kowalik@denic.de
- [regext] Re: RDAP versioning - on client-server i… Gould, James
- [regext] Re: RDAP versioning - on client-server i… Mario Loffredo
- [regext] Re: RDAP versioning - on client-server i… Andrew Newton (andy)
- [regext] Re: RDAP versioning - on client-server i… Mario Loffredo
- [regext] Re: RDAP versioning - on client-server i… kowalik@denic.de
- [regext] Re: RDAP versioning - on client-server i… Mario Loffredo
- [regext] Re: RDAP versioning - on client-server i… kowalik@denic.de