Re: [core] WG Last Call on draft-ietf-core-problem-details

Christian Amsüss <christian@amsuess.com> Fri, 20 May 2022 16:50 UTC

Return-Path: <christian@amsuess.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A46E2C19E844; Fri, 20 May 2022 09:50:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.9
X-Spam-Level:
X-Spam-Status: No, score=-6.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wP9nv1p9rFWH; Fri, 20 May 2022 09:50:53 -0700 (PDT)
Received: from smtp.akis.at (smtp.akis.at [IPv6:2a02:b18:500:a515::f455]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 90ED3C19E842; Fri, 20 May 2022 09:50:48 -0700 (PDT)
Received: from poseidon-mailhub.amsuess.com ([IPv6:2a02:b18:c13b:8010:a800:ff:fede:b1bd]) by smtp.akis.at (8.17.1/8.17.1) with ESMTPS id 24KGofsq030274 (version=TLSv1.2 cipher=ECDHE-ECDSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 20 May 2022 18:50:42 +0200 (CEST) (envelope-from christian@amsuess.com)
X-Authentication-Warning: smtp.akis.at: Host [IPv6:2a02:b18:c13b:8010:a800:ff:fede:b1bd] claimed to be poseidon-mailhub.amsuess.com
Received: from poseidon-mailbox.amsuess.com (hermes.amsuess.com [10.13.13.254]) by poseidon-mailhub.amsuess.com (Postfix) with ESMTP id 26B8C638E; Fri, 20 May 2022 18:50:41 +0200 (CEST)
Received: from hephaistos.amsuess.com (unknown [IPv6:2a02:b18:c13b:8010:d00c:b8bc:8733:a6cc]) by poseidon-mailbox.amsuess.com (Postfix) with ESMTPSA id CA005A28C; Fri, 20 May 2022 18:50:40 +0200 (CEST)
Received: (nullmailer pid 3868263 invoked by uid 1000); Fri, 20 May 2022 16:50:40 -0000
Date: Fri, 20 May 2022 18:50:40 +0200
From: Christian Amsüss <christian@amsuess.com>
To: Thomas Fossati <Thomas.Fossati@arm.com>
Cc: "draft-ietf-core-problem-details@ietf.org" <draft-ietf-core-problem-details@ietf.org>, "core@ietf.org WG (core@ietf.org)" <core@ietf.org>, "cbor@ietf.org" <cbor@ietf.org>, "httpapi@ietf.org" <httpapi@ietf.org>
Message-ID: <YofG4B6gnFmMURSR@hephaistos.amsuess.com>
References: <3a2fb1c8-5c50-fa7a-0672-a73c3b6f1a5f@ri.se> <YoesjAXIKQS+PBLX@hephaistos.amsuess.com> <DB9PR08MB652451CD26EB777C1A0D133A9CD39@DB9PR08MB6524.eurprd08.prod.outlook.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="KDYITNRohan+eYHb"
Content-Disposition: inline
In-Reply-To: <DB9PR08MB652451CD26EB777C1A0D133A9CD39@DB9PR08MB6524.eurprd08.prod.outlook.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/EwCwQOrtHDnzhu9V-S3mS7WSsLs>
Subject: Re: [core] WG Last Call on draft-ietf-core-problem-details
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 20 May 2022 16:50:54 -0000

Hello Thomas,

On Fri, May 20, 2022 at 04:33:54PM +0000, Thomas Fossati wrote:
> The timing is unfortunate indeed.  Ideally CRI and CPD should have gone
> forward together, but this is apparently not possible due to the
> different time pressures.
> 
> I don't see a way forward that is not minting a new standard entry for
> the CRI type.

OK, that makes sense in the light of the next item.

> > * "MUST ignore": From recent chats I understand that it does not only
> >   refers to keys (standard, outer and inner custom) the receiver does
> >   not recognize, but also to values outside the expected set.
> 
> I don't think this is the case.  The "MUST ignore" refers to unknown
> keys, or keys inside keys (in case of custom problem details), not to
> values inside known keys.  I.e., once the key is associated with one or
> more types it's sealed forever.

Then I misunderstood -- fine with me as well. This will need to be
understood by authors of custom details; if they want to have extensible
types, I suppose they may still define their data items as

my-value = tstr / any .feature "extended-my-value"

and tell users to not fail processing the document if they fail to
understand the type of my-value.

> > * The presence of the response-code attribute implies to me that this is
> >   intended for persisting the problem details, and/or for exposing them
> >   on a different protocol. Both usually bring a change in the Base URI,
> >   so whoever sets the response-code WOULD PROBABLY also want to resolve
> >   the instance URI.
> 
> By "persisting the problem details" are you thinking about ingesting it
> into a log/analytics pipeline?  If so, I am not sure why, in that case, it
> would matter switching the base URI.

I was thinking "file stored on disk in a log folder". If that file is
later accessed, the program accessing it will see only the file and not
where it was obtained from, and will thus be unable to resolve the
instance URI.

Otherwise, I'd read the intention of the document is that any stored
form will be suitably encapsulated (eg. because the log infrastructure
tells the accessing program that this was an error response to a request
made to this-and-that-base-URI -- but then that same mechanism could
also tell the original response-code, so there'd be no need to have that
code in the file.

> As far as the second use case you mention (i.e., exposing on a different
> protocol), we say that the CoAP->HTTP transformation is out of scope -
> at least until 7807bis is finalised.  I think in that case one may want
> to apply some form of RFC8075 URI mapping to the instance element,
> but that’s future work.

I think that this can well be used over HTTP without a 7807bis mapping
-- there's a content format, and CBOR can go over HTTP just fine.

When accessed through a proxy, mapping the URI is much less of an issue
(many URI references work fine after being proxied). But maybe that's
the answer to my issue (at least the response-code vs.
relative-resolution part): Relative references can survive a proxy, but
the information on the original response-code will get lost.

> >   And what of URIs for which the entity that adds the response-code
> >   doesn't even know they're URIs?
> 
> I don't understand this.  Could you please unpack it a bit?

Assume the instance-uri, when traversing a proxy that fixes up
problem-details documents (whose existence I assume based on the
presence of response-code), gets resolved to its full URI form.

If a later (standard or custom) entry also uses `~uri` as its value
type, that URI reference would require the same treatment, but can't get
it because the fix-up proxy may not know that this is a URI typed key.

BR
c

-- 
To use raw power is to make yourself infinitely vulnerable to greater powers.
  -- Bene Gesserit axiom