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

Kent Watsen <kwatsen@juniper.net> Tue, 22 July 2014 17:42 UTC

Return-Path: <kwatsen@juniper.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 3C7541B2AFC for <netconf@ietfa.amsl.com>; Tue, 22 Jul 2014 10:42:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 JUqiO3798OFg for <netconf@ietfa.amsl.com>; Tue, 22 Jul 2014 10:42:27 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1blp0182.outbound.protection.outlook.com [207.46.163.182]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7A0C21A01B0 for <netconf@ietf.org>; Tue, 22 Jul 2014 10:42:26 -0700 (PDT)
Received: from CO1PR05MB458.namprd05.prod.outlook.com (10.141.72.140) by CO1PR05MB458.namprd05.prod.outlook.com (10.141.72.140) with Microsoft SMTP Server (TLS) id 15.0.990.7; Tue, 22 Jul 2014 17:42:24 +0000
Received: from CO1PR05MB458.namprd05.prod.outlook.com ([169.254.10.190]) by CO1PR05MB458.namprd05.prod.outlook.com ([169.254.10.190]) with mapi id 15.00.0990.007; Tue, 22 Jul 2014 17:42:23 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: Mark Nottingham <mnot@mnot.net>
Thread-Topic: [Netconf] RESTCONF and draft-ietf-appsawg-uri-get-off-my-lawn-04 (on the IESG telechat this week)
Thread-Index: AQHPbjTesrzdWmo2rkmRPyjc5i2Otps9kRSAgAAaUoCAAO5HgIAARg6AgAIsroCAAHbbgIBrBdYA
Date: Tue, 22 Jul 2014 17:42:23 +0000
Message-ID: <CFF41936.7AFEF%kwatsen@juniper.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>
In-Reply-To: <CF9A4A3A.71AEB%kwatsen@juniper.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.4.3.140616
x-originating-ip: [66.129.241.10]
x-microsoft-antispam: BCL:0;PCL:0;RULEID:
x-forefront-prvs: 02801ACE41
x-forefront-antispam-report: SFV:NSPM; SFS:(52604005)(377454003)(16813002)(189002)(199002)(24454002)(43784003)(17383004)(164054003)(85852003)(54356999)(92566001)(99396002)(21056001)(105586002)(77982001)(83072002)(76176999)(81342001)(107046002)(74502001)(74662001)(79102001)(76482001)(93886003)(83506001)(81542001)(101416001)(95666004)(92726001)(106356001)(50986999)(99286002)(77096002)(19617315012)(110136001)(86362001)(19580405001)(15975445006)(80022001)(85306003)(19580395003)(83322001)(66066001)(20776003)(36756003)(64706001)(87936001)(106116001)(31966008)(16236675004)(4396001)(2656002)(46102001)(15202345003)(166863002); DIR:OUT; SFP:; SCL:1; SRVR:CO1PR05MB458; H:CO1PR05MB458.namprd05.prod.outlook.com; FPR:; MLV:sfv; PTR:InfoNoRecords; MX:1; LANG:en;
Content-Type: multipart/alternative; boundary="_000_CFF419367AFEFkwatsenjunipernet_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
Archived-At: http://mailarchive.ietf.org/arch/msg/netconf/G0Z5UpBJJF0yxxUtrElrTGgH0U4
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: Tue, 22 Jul 2014 17:42:29 -0000

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<mailto:kwatsen@juniper.net>>
Date: Thursday, May 15, 2014 at 11:21 AM
To: Benoit Claise <bclaise@cisco.com<mailto:bclaise@cisco.com>>, Andy Bierman <andy@yumaworks.com<mailto:andy@yumaworks.com>>
Cc: Mark Nottingham <mnot@mnot.net<mailto:mnot@mnot.net>>, 'Barry Leiba' <barryleiba@computer.org<mailto:barryleiba@computer.org>>, NetConf <netconf@ietf.org<mailto: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<mailto:bclaise@cisco.com>>
Date: Thursday, May 15, 2014 at 12:16 AM
To: Andy Bierman <andy@yumaworks.com<mailto:andy@yumaworks.com>>, Kent Watsen <kwatsen@juniper.net<mailto:kwatsen@juniper.net>>
Cc: NetConf <netconf@ietf.org<mailto:netconf@ietf.org>>, 'Barry Leiba' <barryleiba@computer.org<mailto:barryleiba@computer.org>>, Mark Nottingham <mnot@mnot.net<mailto: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<mailto: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