[regext] Roman Danyliw's Discuss on draft-ietf-regext-rdap-sorting-and-paging-17: (with DISCUSS and COMMENT)

Roman Danyliw via Datatracker <noreply@ietf.org> Wed, 23 September 2020 13:33 UTC

Return-Path: <noreply@ietf.org>
X-Original-To: regext@ietf.org
Delivered-To: regext@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id E05083A1247; Wed, 23 Sep 2020 06:33:53 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: Roman Danyliw via Datatracker <noreply@ietf.org>
To: The IESG <iesg@ietf.org>
Cc: draft-ietf-regext-rdap-sorting-and-paging@ietf.org, regext-chairs@ietf.org, regext@ietf.org, Tom Harrison <tomh@apnic.net>, tomh@apnic.net
X-Test-IDTracker: no
X-IETF-IDTracker: 7.17.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: Roman Danyliw <rdd@cert.org>
Message-ID: <160086803388.29105.12080739329882950467@ietfa.amsl.com>
Date: Wed, 23 Sep 2020 06:33:53 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/9ANxInle5mK0_HMj3rgK-5mmB30>
Subject: [regext] Roman Danyliw's Discuss on draft-ietf-regext-rdap-sorting-and-paging-17: (with DISCUSS and COMMENT)
X-BeenThere: regext@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Registration Protocols Extensions <regext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/regext>, <mailto:regext-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/regext/>
List-Post: <mailto:regext@ietf.org>
List-Help: <mailto:regext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/regext>, <mailto:regext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 23 Sep 2020 13:33:58 -0000

Roman Danyliw has entered the following ballot position for
draft-ietf-regext-rdap-sorting-and-paging-17: 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/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.

The document, along with other ballot positions, can be found here:


** Canonical Reference for JSONPath.  Section 2.1/2.3.1 describes field(s)
whose syntax is in JSONPath.  The shepherd’s note acknowledges that there is no
good reference for JSONPath.  Nevertheless, the text needs to be clearer on
where to turn to for guidance.

(1) Section 2.3.1 says: “Such a reference could be
   expressed by using a JSONPath.  The JSONPath in a JSON document
   [RFC8259] is equivalent to the XPath [W3C.CR-xpath-31-20161213] in a
   XML document.

(2) The JSONPaths are provided according to the Goessner v.0.8.0
   specification [GOESSNER-JSON-PATH].

(3) Further documentation about
   JSONPath operators used in this specification is included in
   Appendix A.

Taking the perspective of the implementer, which of these three resources is
canonical for understanding JSONPath:

(a) [W3C.CR-xpath-31-20161213] = a reference marked normative that has nothing
to do with JSON but suggests equivalence through a few examples.

(b) [GOESSNER-JSON-PATH] = a reference marked as informative which is being
used to describe the normative mapping between JSONPaths of the RDAP fields in
the text, and is the actual description of the JSONPath syntax.  The shepherd’s
note points out the difficulty of using this as a normative reference

(c) Appendix A = self-contained text which describes JSONPath independent of
(a) and (c).  As an aside, I’m not sure of the completeness of this write-up.
Additionally, the IETF is currently considering it’s own version of JSONPath --

IMO, the fig leaf of citing [W3C.CR-xpath-31-20161213] is inappropriate (as in,
it isn’t the actual reference) and unnecessary (as in, it’s just there to meet
the letter of having a normative reference).  I recommend being practical about
the need:

-- Use language to the effect of saying the “JSONPath used here is a flavor
defined in XXX”

-- Make “XXX” be Appendix A.

-- Bolster Appendix A to say something to the effect of “this version of
JSONPath is inspired by [W3C.CR-xpath-31-20161213] (informative reference) and
an articulation of what is used in production [GOESSNER-JSON-PATH] (informative
reference)”; and where necessary, add more language around the syntax.

This approach will also allow for new JSONPath WG to define a variant which is
not strictly compatible (if that’s where the work goes).

I’m open to an alternative approach.  I just want to end up with a single clear
reference of where to read about this documents particular JSONPath syntax.

** Section 2.4.  Does this specification provide any normative guidance of
“cursor” beyond an opaque value constrained by ABNF?  The text notes the notion
of “offsets”, “limits”, and “keys”, Base64, CSV but these appear to be
referenced as examples.  However, Appendix B contains normative language around
“limit” and “offset”.


Thank you for the SECDIR review, Rifaat (Shekh-Yusef)!

** Section 2.3.1.  The text notes that JSON Pointer is “hard to use”.  It
wasn’t clear where the mandate to use JSON Pointer came.

** Section 2.4.  Please replace thelastdomainofthepage.com with example.*

** Section 2.4  Is there any semantics to read into “&cursor=wJ…” in Figure 5
beyond it being blob conforming to the cursor ABNF?  Editorially, the text
doesn’t reference it to explain what’s there.

** Section 7.  The issue of paging is being framed as primarily a security
issue is puzzling.  It seems to me that this is about providing a more usable
API for the client which has a net benefit of reducing the resources required
to serve the comparable information.  If DoS is really the concern, the queries
can be rate or resource limited by the application or the underlying RDMS
(whose underlying capabilities are explained in earlier text as making this
process efficient)

** Section 7.   Per the third paragraph, what is the security issue?  What’s
the threat?

** Section 7.  Concur with Eric, there appears to be an implicit assumption
that returning subsets of a record set is “fast” and so is counting the number
of records.  IMO, this isn’t a problem if this is a stated assumption.