Re: [Netconf] RESTCONF and draft-ietf-appsawg-uri-get-off-my-lawn-04 (on the IESG telechat this week)

Mark Nottingham <mnot@mnot.net> Mon, 28 July 2014 01:03 UTC

Return-Path: <mnot@mnot.net>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3A2271B27D2 for <netconf@ietfa.amsl.com>; Sun, 27 Jul 2014 18:03:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.602
X-Spam-Level:
X-Spam-Status: No, score=-2.602 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
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 anjQSfBh7yO4 for <netconf@ietfa.amsl.com>; Sun, 27 Jul 2014 18:03:09 -0700 (PDT)
Received: from mxout-07.mxes.net (mxout-07.mxes.net [216.86.168.182]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C6A411B27D0 for <netconf@ietf.org>; Sun, 27 Jul 2014 18:03:08 -0700 (PDT)
Received: from [192.168.1.55] (unknown [118.209.32.55]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp.mxes.net (Postfix) with ESMTPSA id A465622E1FA; Sun, 27 Jul 2014 21:03:03 -0400 (EDT)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <CFF41936.7AFEF%kwatsen@juniper.net>
Date: Mon, 28 Jul 2014 11:03:00 +1000
Content-Transfer-Encoding: quoted-printable
Message-Id: <B591048C-B4FB-4151-820D-8B7B7930637E@mnot.net>
References: <53714FEC.2030709@cisco.com> <CABCOCHQ4LoM_xcRH-j=3gYo_eBcOjnLmifed1HNa7mt5_k8xAQ@mail.gmail.com> <CABCOCHTMRwSh32owC7E_XCmFm6abcVF4cRigPCz9nBo5R7nQcA@mail.gmail.com> <CF97DDB1.6FB67%kwatsen@juniper.net> <CABCOCHQ8BB-dJdu-jwKhVH3k0UzpCvAY+EOJqfa=EBFveB0RUA@mail.gmail.com> <53743F8F.2050308@cisco.com> <CF9A4A3A.71AEB%kwatsen@juniper.net> <CFF41936.7AFEF%kwatsen@juniper.net>
To: Kent Watsen <kwatsen@juniper.net>
X-Mailer: Apple Mail (2.1878.6)
Archived-At: http://mailarchive.ietf.org/arch/msg/netconf/13IzLETRQA6aX7P_ZCB-Hl6dd1U
X-Mailman-Approved-At: Mon, 28 Jul 2014 01:49:55 -0700
Cc: NETCONF <netconf@ietf.org>
Subject: Re: [Netconf] RESTCONF and draft-ietf-appsawg-uri-get-off-my-lawn-04 (on the IESG telechat this week)
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 28 Jul 2014 01:03:11 -0000

Hi Kent,

This looks good. In a perfect world, the structure of URIs "under" the restconf resource also would be dynamic, but this is good enough for get-off-my-lawn purposes.

Cheers,


On 23 Jul 2014, at 3:42 am, Kent Watsen <kwatsen@juniper.net> wrote:

> 
> Hi Mark,
> 
> Thank you for meeting with Andy, Bert, and myself yesterday.   We're happy that you support our use of /.well-known/host-meta as described here: http://tools.ietf.org/html/draft-ietf-netconf-restconf-01#section-3.2.    Thank you also for suggesting the draft advise clients to cache the result using standard HTTP caching, we'll be sure to update the accordingly.
> 
> Thanks again,
> Kent
> 
> 
> From: Kent Watsen <kwatsen@juniper.net>
> Date: Thursday, May 15, 2014 at 11:21 AM
> To: Benoit Claise <bclaise@cisco.com>, Andy Bierman <andy@yumaworks.com>
> Cc: Mark Nottingham <mnot@mnot.net>, 'Barry Leiba' <barryleiba@computer.org>, NetConf <netconf@ietf.org>
> Subject: Re: [Netconf] RESTCONF and draft-ietf-appsawg-uri-get-off-my-lawn-04 (on the IESG telechat this week)
> 
> 
> Hi Mark, thanks for looking in on this!
> 
> Currently RESTCONF hardcodes the top-level URL path "/restconf", which isn't in line with your BCP.    Our thoughts are to put in text like that below.  Looking at rfc6570, I don't see how URI templates would help here.  Can you suggest a better way?  - or were you thinking that we could use URI Templates to define the structure of the RESTCONF API's URLs?
> 
> Thanks,
> Kent
> 
> =====START=====
> 
> RESTCONF Path Resolution
> 
>    In line the best practices defined by "get-off-my-lawn", RESTCONF
>    enables deployments to specify where the RESTCONF API is located.
>    When first connecting to a RESTCONF server, a RESTCONF client MUST
>    determine the root of the RESTCONF API.  The client discovers this
>    by getting the ".well-known/host-meta" resource [RFC6415] as follows:
> 
>        Request
>        -------
>        GET /.well-known/host-meta users HTTP/1.1
>        Host: example.com
>        Accept: application/xrd+xml
> 
>        Response
>        --------
>        HTTP/1.1 200 OK
>        Content-Type: application/xrd+xml
>        Content-Length: nnn
> 
>        <XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'>
>            <Link rel='restconf' href='/api/restconf'/>
>        </XRD>
> 
> 
>    Once discovering the RESTCONF API root, the client MUST prepend it to
>    any access to a RESTCONF resource.  For instance, using the "/api/restconf"
>    path discovered above, the client can now determine the version of 
>    RESTCONF protocol as follows:
> 
>        Request
>        -------
>        GET /api/restconf/version  HTTP/1.1
>        Host: example.com
>        Accept: application/yang.api+json
> 
>        Response
>        --------
>        HTTP/1.1 200 OK
>        Date: Mon, 23 Apr 2012 17:01:00 GMT
>        Server: example-server
>        Cache-Control: no-cache
>        Pragma: no-cache
>        Last-Modified: Sun, 22 Apr 2012 01:00:14 GMT
>        Content-Type: application/yang.api+json
> 
>        { "version": "1.0" }
> 
> 
> ===== STOP =====
> 
> 
> 
> From: Benoit Claise <bclaise@cisco.com>
> Date: Thursday, May 15, 2014 at 12:16 AM
> To: Andy Bierman <andy@yumaworks.com>, Kent Watsen <kwatsen@juniper.net>
> Cc: NetConf <netconf@ietf.org>, 'Barry Leiba' <barryleiba@computer.org>, Mark Nottingham <mnot@mnot.net>
> Subject: Re: [Netconf] RESTCONF and draft-ietf-appsawg-uri-get-off-my-lawn-04 (on the IESG telechat this week)
> 
> Dear all,
> 
> Discussing this issue with Barry:
>> Yes, .well-known is a possible solution for netconf/restconf.  Another possibility is URI templates.  The get-off-my-lawn document talks about both.  For restconf, Mark Nottingham could help advise which would be a better option for them.
> Regards, Benoit
>> 
>> 
>> On Tue, May 13, 2014 at 11:53 AM, Kent Watsen <kwatsen@juniper.net> wrote:
>>> 
>>> Andy writes:
>>>> I think RESTCONF violates sec 2.3 wrt/ structure within the URI path.
>>> <snip/>
>>> 
>>> I agree with Andy that RESTCONF violates section 2.3.  I also think that we can remove that violation by supporting "well-known" URIs.  Notice that the 2nd paragraph in section 2.3 says "The only exception to this requirement is registered 'well-known' URIs, as specified by [RFC5785]."   My reading is, if we use a "well-known" URI, then our subtree can defined sub-structure per RESTCONF convention.
>>> 
>>> We discussed using well-known URIs before.   Appendix B.3. in the RESTCONF draft ("Open Issues") regards ".well-known usage".  This issue was closed with the resolution "not needed in RESTCONF".   We may need to revisit that decision now.
>>> 
>> 
>> I agree we need to support .well-known to conform to this BCP.
>>  
>>> Thanks,
>>> Kent
>>> 
>> 
>> Andy
>> 
> 

--
Mark Nottingham   https://www.mnot.net/