Re: [Rum] Robert Wilton's Discuss on draft-ietf-rum-rue-09: (with DISCUSS and COMMENT)

Brian Rosen <br@brianrosen.net> Thu, 23 December 2021 21:16 UTC

Return-Path: <br@brianrosen.net>
X-Original-To: rum@ietfa.amsl.com
Delivered-To: rum@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 55E173A0AB9 for <rum@ietfa.amsl.com>; Thu, 23 Dec 2021 13:16:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.888
X-Spam-Level:
X-Spam-Status: No, score=-1.888 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=brianrosen-net.20210112.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gjEyV0S6BYic for <rum@ietfa.amsl.com>; Thu, 23 Dec 2021 13:16:20 -0800 (PST)
Received: from mail-il1-x12b.google.com (mail-il1-x12b.google.com [IPv6:2607:f8b0:4864:20::12b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 11D993A0AB5 for <rum@ietf.org>; Thu, 23 Dec 2021 13:16:20 -0800 (PST)
Received: by mail-il1-x12b.google.com with SMTP id d14so5199217ila.1 for <rum@ietf.org>; Thu, 23 Dec 2021 13:16:20 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brianrosen-net.20210112.gappssmtp.com; s=20210112; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=jO43aw0f9rLg9+OluFEhqjHrXD21KZl/ErivFHExYSE=; b=goBMNFp1W25To2rlNf386j6M+xqh6tggk9MO4EpJJcuHEvvNiEF6o8kE8TUKqEPFzb 9MUweWNSuxXQ8xl5+9NpMDgdYGa6zA4J3+yK8U3SkuWY1kjSVui0lZFhBlrHWQySFfRp f61o6hO4vXOqnA2Brt5GiaVblSc1UjVunOF+VouSKuhOk8Qpd/GSBSufoQ0h8LRf7o3p Fii5M91qeGuHZ0s7WKhqNqLG33Ls4QikNUAl97txp3BSDvqUsdpwFlKK0SMG2YJ2aI6E iJ37CY1dD6LO/zZPNc2DdVb4CcRGV5o7QFYbPP8hfDDmKbRSZeXpKOaEgZLuZvoQm85f Ag3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=jO43aw0f9rLg9+OluFEhqjHrXD21KZl/ErivFHExYSE=; b=7svtlsv+DqSliszGcN6vQ5Lq3QEj4hH2h17Qeezajfw7usD1BdBwZTYxLVCgabn4cY vygk4QwQaXByp4vS229DGdpIZZk3G5tlEbmD37rYEyoFtcXLd3hv1Ug7yKYq6GK96deG Hw11t7ZsuqBkjKesCgRa5paAXF90WJLQwubVJj2PC+niWX0wxy2yjzYAPedpMWlKPMtI YO2uG2zNt9OBF0O5PbMG9AhwuAQJQRrfw6mKZlxBEV17QP5B+XmkJxGps7Ifo4B7pa2T PdsFKfxE4a5Dz+CiJUfl0KTgZdImmg5AN1W2EExy1PaO+sloo38MAuTKeF2pGyTOjT7q 6ePQ==
X-Gm-Message-State: AOAM533WebHk90scyNOTByoz7dWQGHUfnsjVEab/6rnfmfZARLILSgzC aCRapxXQZycL19l9WsCcgXVr7Q==
X-Google-Smtp-Source: ABdhPJxcMsEjiCjXXmzyto+SwO/d4ndTVRsWK6sNca2LDp0O6SME3QZ317Sa2ZRM+a/6XdleMWHqWA==
X-Received: by 2002:a05:6e02:148d:: with SMTP id n13mr1955523ilk.66.1640294178106; Thu, 23 Dec 2021 13:16:18 -0800 (PST)
Received: from smtpclient.apple (dynamic-acs-24-154-121-237.zoominternet.net. [24.154.121.237]) by smtp.gmail.com with ESMTPSA id b8sm4093354iow.2.2021.12.23.13.16.17 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 Dec 2021 13:16:17 -0800 (PST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 15.0 \(3693.20.0.1.32\))
From: Brian Rosen <br@brianrosen.net>
In-Reply-To: <163957183657.10054.2789790212865898062@ietfa.amsl.com>
Date: Thu, 23 Dec 2021 16:16:16 -0500
Cc: The IESG <iesg@ietf.org>, draft-ietf-rum-rue@ietf.org, rum-chairs@ietf.org, rum@ietf.org, Paul Kyzivat <pkyzivat@alum.mit.edu>
Content-Transfer-Encoding: quoted-printable
Message-Id: <3A2D8BEA-23D0-4EE8-8EFE-CCE6B3EB0AFD@brianrosen.net>
References: <163957183657.10054.2789790212865898062@ietfa.amsl.com>
To: Robert Wilton <rwilton@cisco.com>
X-Mailer: Apple Mail (2.3693.20.0.1.32)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rum/Tm7TFysZMLiA3mm0uQsRdqbgKJc>
Subject: Re: [Rum] Robert Wilton's Discuss on draft-ietf-rum-rue-09: (with DISCUSS and COMMENT)
X-BeenThere: rum@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Relay User Machine <rum.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rum>, <mailto:rum-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rum/>
List-Post: <mailto:rum@ietf.org>
List-Help: <mailto:rum-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rum>, <mailto:rum-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 23 Dec 2021 21:16:24 -0000

Thank you for your comments.  Please see inline

> On Dec 15, 2021, at 7:37 AM, Robert Wilton via Datatracker <noreply@ietf.org> wrote:
> 
> Robert Wilton has entered the following ballot position for
> draft-ietf-rum-rue-09: Discuss
> 
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
> 
> 
> Please refer to https://www.ietf.org/blog/handling-iesg-ballot-positions/
> for more information about how to handle DISCUSS and COMMENT positions.
> 
> 
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-rum-rue/
> 
> 
> 
> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
> 
> There are a couple of points related to versioning that I would like to see
> clarified, but I hope that it should be fairly easy to do so.
> 
> 1.
>   This means an implementation of a
>   specific major version and minor version is backwards compatible with
>   all minor versions of the major version.
> 
> Is it actually compatible with all other minor versions, or only other minor
> versions with a greater minor version number.  E.g., could an implementation be
> coded to use/expect a object added in a minor version but that is not present
> in preceding minor versions?
All other minor versions.  

It has to be truly optional.  You can do things like add two parameters, a and b, and say if a is provided b must be provided, but it has to work if neither are there, and even if an implementation provided a but not b, an earlier version would ignore a.

> 
> 2.
>   The configuration API also provides the same version mechanism as
>   specified above in Section 9.1.  The version of the configuration
>   service MAY be different than the version of the provider list
>   service.
> 
> It wasn't obvious to me, that for a given provider, how this is communicated. 
> I'm not that familiar with OpenAPI, but looks like the /Versions path is a top
> level API path, and the data that is contains seems to just be version numbers.
> Hence, how would a client know which versions apply to provider list service
> and/or which versions apply to the provide configuration service.
‘
First of all, the Provider list is not available at alll providers.  It’s only available at a service that is one per country.  So one entity normally doesn’t supply both the Provider and the ProviderConfig entry points.
To be really pedantic, I suppose that it’s actually possible for it to be one entity, and then that statement that there are separate versions wouldn’t apply.  So I guess I will change the text to:
Unless the per-country provider list service is operated by a provider at the same base URI as that provider’s configuration service, the version of the configuration service MAY be different from the version of the provider list service.

> 
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
> 
> Hi Brian,
> 
> Thank you for working on this.  This technology is quite a long way outside of
> my expertise, and hence my review is primarily focused on the Configuration
> section (section 9).
> 
> Nit: when used with the following interface =>  when used with the following
> OpenAPI interface
Fixed
> 
> Nit: with a corresponding a entry point -> with a corresponding entry point
Fixed
> 
>   Minor version definitions
>   SHALL only add objects, non-required members of existing objects, and
>   non-mandatory-to use functions and SHALL NOT delete any objects,
>   members of objects or functions.
> 
> Would "delete or change" be more correct than just "delete" here?
Added “or change"
> 
> Somewhat related to the discuss comment, but it wasn't clear to me why the
> versioning is described as part of the "Rue Provider Selection" section and I
> think that the document would arguably be clearer if the versioning moved to
> its own separate 9.X section, making it clear that the versioning applies to
> the entire API?
I will do that

> 
> Nit: The method the API Key is obtained is not specified in this document. =>
>  Perhaps "The method used to obtain the API key …"
Fixed
> 
>   The provider MAY refuse to provide service to an implementation
>   presenting an API Key it does not recognize.
> 
> Why is this not a MUST?
Well, suppose a provider doesn’t implement an API key, but the client supplies one.  That would not be recognized by the provider, but it doesn’t care, so it provides service.

> 
> Is the "instance-identifier" arbitrarily chosen by the client?  Otherwise, it
> wasn't clear to me how a client would discover or know what
> "instance-identifier" to use.  It might be helpful if the text clarified this,
I added that text

> and possibly even the parameter name could be changed to make it more obvious
> that it is a client provided value?
“clientInstanceId” wouldn’t help.  It would have to be “clientProvidedInstanceId”.  That seems to be a bit much as a parameter name.  I’ll do it if you think it’s important, but I’m inclined to just leave the explanatory text specifying that it’s client provided.
> 
> Regards,
> Rob
> 
> 
>