[apps-discuss] Appsdir review for draft-ietf-cdni-control-triggers-06
Carsten Bormann <cabo@tzi.org> Mon, 06 April 2015 23:18 UTC
Return-Path: <cabo@tzi.org>
X-Original-To: apps-discuss@ietfa.amsl.com
Delivered-To: apps-discuss@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9CCF71ACE39 for <apps-discuss@ietfa.amsl.com>; Mon, 6 Apr 2015 16:18:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.15
X-Spam-Level: *
X-Spam-Status: No, score=1.15 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HELO_EQ_DE=0.35] autolearn=no
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 rGiFo1ESuLej for <apps-discuss@ietfa.amsl.com>; Mon, 6 Apr 2015 16:18:37 -0700 (PDT)
Received: from mailhost.informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) (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 4CA411ACE38 for <apps-discuss@ietf.org>; Mon, 6 Apr 2015 16:18:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from submithost.informatik.uni-bremen.de (submithost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::b]) by mailhost.informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id t36NIOSi003127; Tue, 7 Apr 2015 01:18:24 +0200 (CEST)
Received: from alma.local (p5DC7F099.dip0.t-ipconnect.de [93.199.240.153]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by submithost.informatik.uni-bremen.de (Postfix) with ESMTPSA id 3lLSTq5kcPzCsXB; Tue, 7 Apr 2015 01:18:23 +0200 (CEST)
Message-ID: <5523143E.3070503@tzi.org>
Date: Tue, 07 Apr 2015 01:18:22 +0200
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 3.0.11 (Macintosh/20140602)
MIME-Version: 1.0
To: "Francois Le Faucheur (flefauch)" <flefauch@cisco.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/apps-discuss/pyemmMVIzX0G8hsotyH4CrQdeMQ>
Cc: draft-ietf-cdni-control-triggers.all@tools.ietf.org, apps-discuss@ietf.org
Subject: [apps-discuss] Appsdir review for draft-ietf-cdni-control-triggers-06
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss/>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 06 Apr 2015 23:18:39 -0000
I have been selected as an Applications Area Directorate reviewer for this draft (for background on appsdir, please see http://trac.tools.ietf.org/area/app/trac/wiki/ApplicationsAreaDirectorate ), with a specific view on the JSON usage in this specification. Please resolve these comments along with any other comments you may receive. Please wait for direction from your document shepherd or AD before posting a new version of the draft. (Feel free to forward these comments to the WG list if that helps in resolving the comments.) Document: draft-ietf-cdni-control-triggers-06 Title: CDNI Control Interface / Triggers Reviewer: Carsten Bormann Review Date: 2015-04-06 * Summary: This draft is ready for publication as a standards track RFC, after a few misphrasings and minor details in the usage of HTTP have been corrected. * Major issues: None. * Minor issues: The protocol is REST-based in that it creates dCDN activities using a POST-based interface, which then can be examined using GET on the location returned (making good use of HTTP, e.g., for caching) and be DELETEd for canceling them. It is not making use of the fact that the subject of these activities are REST resources themselves. This paragraph just takes note of this fact, without necessarily suggesting a need (or even usefulness) for a change. Is "authenticate" the right word in the 2nd para of 4.1? (How do you authenticate a CI/T command? There is no authentication information provided.) For the benefit of the implementer, the last paragraph of section 4.1 could say what is "an appropriate HTTP status code" here -- 405 Method not allowed? 4.2.1 could give a little additional guidance on how to use the ETag for the collection (possibly pointing to the examples). 4.3 uses 403 forbidden to indicate that a feature is not implemented? 4.6 the phrasing "into the cdn-path key" used here is misleading: The intent is to have one array element appended to the end of the array under the entry named "cdn-path". 4.7 uses 401 for no permission, while section 8.1 correctly proposes 403 Forbidden (or 404 Not Found) for this case. 5.1.2 uses the phrasing "list of" Error Descriptions, apparently with the intention that this be an array of Error Descriptions. Prefer making this explicit. Are empty lists allowed? (The whole entry is non-mandatory.) (More generally, the spec could be explicit where empty arrays are allowed and where not.) 5.1.3: Is staleresourcetime allowed to be negative? zero? (Note also that Absolute Time is a general JSON number, which includes floating point, while this is an integer?) 5.2.6 fails to say that Error Descriptions are JSON objects. Why is the third request in 6.2.4 not using an ETag, contrary to its own recommendation? * Gratuitous formalization of the JSON data: (I have validated the examples against this formalization, using the CDDL tool.) CIT-object = CIT-command / Trigger-Status-Resource / Trigger-Collection CIT-command ; use media type application/cdni.ci.TriggerCommand+json = { ? trigger: Triggerspec ? cancel: [* URI] cdn-path: [* Cdn-PID] } Trigger-Status-Resource ; application/cdni.ci.TriggerStatus+json. = { trigger: Triggerspec ctime: Absolute-Time mtime: Absolute-Time ? etime: Absolute-Time status: Trigger-Status ? errors: [* Error-Description] } Trigger-Collection ; application/cdni.ci.TriggerCollection+json = { triggers: [* URI] ? staleresourcetime: int ; time in seconds ? coll-all: URI ? coll-pending: URI ? coll-active: URI ? coll-complete: URI ? coll-failed: URI ? cdn-id: Cdn-PID } Triggerspec = { ; 5.2.1 type: Trigger-Type ? metadata.urls: [* URI] ? content.urls: [* URI] ? content.ccid: [* Ccid] ? metadata.patterns: [* Pattern-Match] ? content.patterns: [* Pattern-Match] } Trigger-Type = "preposition" / "invalidate" / "purge" ; 5.2.2 Trigger-Status = "pending" / "active" / "complete" / "processed" / "failed" / "cancelling" / "cancelled" ; 5.2.3 Pattern-Match = { ; 5.2.4 pattern: tstr ? case-sensitive: bool ? match-query-string: bool } Absolute-Time = number ; seconds since UNIX epoch, 5.2.5 Error-Description = { ; 5.2.6 error: Error-Code ? metadata.urls: [* URI] ? content.urls: [* URI] ? metadata.patterns: [* Pattern-Match] ? content.patterns: [* Pattern-Match] ? description: tstr } Error-Code = "emeta" / "econtent" / "eperm" / "ereject" / "ecdn" / "ecancelled" ; 5.2.7 Ccid = tstr ; see I-D.ietf-cdni-metadata Cdn-PID = tstr .regexp "AS[0-9]+:[0-9]+" URI = tstr
- [apps-discuss] Appsdir review for draft-ietf-cdni… Carsten Bormann
- Re: [apps-discuss] Appsdir review for draft-ietf-… Francois Le Faucheur (flefauch)
- Re: [apps-discuss] Appsdir review for draft-ietf-… Murray, Rob (Rob)