Re: [calsify] Request for preliminary review of JSContact property registrations

Robert Stepanek <rsto@fastmailteam.com> Thu, 29 February 2024 13:00 UTC

Return-Path: <rsto@fastmailteam.com>
X-Original-To: calsify@ietfa.amsl.com
Delivered-To: calsify@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C58E9C151992 for <calsify@ietfa.amsl.com>; Thu, 29 Feb 2024 05:00:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.106
X-Spam-Level:
X-Spam-Status: No, score=-2.106 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b="mBv1/NVf"; dkim=pass (2048-bit key) header.d=messagingengine.com header.b="Id8Mn9mm"
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 jjJNggtjBGSa for <calsify@ietfa.amsl.com>; Thu, 29 Feb 2024 05:00:40 -0800 (PST)
Received: from wfout7-smtp.messagingengine.com (wfout7-smtp.messagingengine.com [64.147.123.150]) (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 229FFC14F60A for <calsify@ietf.org>; Thu, 29 Feb 2024 05:00:40 -0800 (PST)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailfout.west.internal (Postfix) with ESMTP id 329A51C000AB for <calsify@ietf.org>; Thu, 29 Feb 2024 08:00:37 -0500 (EST)
Received: from imap43 ([10.202.2.93]) by compute5.internal (MEProxy); Thu, 29 Feb 2024 08:00:37 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=cc:content-type:content-type:date:date:from :from:in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm2; t=1709211636; x= 1709298036; bh=BZYxNcrxoGed6LgF66jBkgpy/BqYeuACNVKRRTe6gXY=; b=m Bv1/NVf9gP0oNaCaUr+ZRQ7J5iFogTtsqSmSIq2E8XT6D6zrCip9KKU1UXYenRHX brFdqdo0owv1Efs1RGTb/5UrkhApZhnSbQs3JmeCemIxlQqrJ8hObMaE3d1RT5dG ZriOQqUdUWip0qSZxSGxDhA9QN2BWY4FLtpvsLl7EBc65gfl406HcVm7F/QjOkpB NGv/jX3nanZnjukwJrS3X3pCssm8KflyVAB4wwaHhO3JEn7QyLTuSt9PmmjtT3oW DFDzWC62ZUJiqETry4A8aZ9jgftNKHAkhbFqla7jyHhyGzxCQb9bPWE+7psY3bX6 JnRhzSq05w/INHAgEpxpQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1709211636; x=1709298036; bh=BZYxNcrxoGed6LgF66jBkgpy/BqY euACNVKRRTe6gXY=; b=Id8Mn9mml6Yim9vgs1b2CVcyqsVgRWPji9B7HTqUs9D4 2r7nKRYluFh9XGtvI5kdxN3Z+wvxoAUahMES36/EjAfVUmDXqagh3Q5+4X3Unpir 2kJYsdVDs00UjS07+MTceicWkyAx2XgnohYm1PnD4tLD0FIAc+AgiJaXi+xv+B0Z HOU1ebYYukgHVLShWOJXrXxxJ0PTjS4fLlPrFIsf+Y5BqY6GfM2gBCJjlzZBzudf 4ceh0QH6aBqf/yg0bLvQjjqhkFvAz4XNZsXEih97BYfcBuyMQCNdEBWFvEBvA1JN 8ja3xJrpUSfQH6Qu5v+3FFsrHcgI6Nz13a1nf4ywuA==
X-ME-Sender: <xms:9H_gZVSQR_DAidUIDW30G0lAreVFzwCr8qr6_EqfoGmFk5JmBiPnSw> <xme:9H_gZewHisc0d_uJdLZUbOr4p98gw2Ve2_S-lVds84JJyprxa-WGFxz-fwZHnXEJN 6Jc6b-rBn9GDg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrgeelgdegiecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkjghffffhvffutgesrgdtre erreertdenucfhrhhomhepfdftohgsvghrthcuufhtvghprghnvghkfdcuoehrshhtohes fhgrshhtmhgrihhlthgvrghmrdgtohhmqeenucggtffrrghtthgvrhhnpeethfffffekue ekveelleeglefhgeefjeeugeetkeejkefgtdfhheehvdehhedvhfenucffohhmrghinhep ihgvthhfrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilh hfrhhomheprhhsthhosehfrghsthhmrghilhhtvggrmhdrtghomh
X-ME-Proxy: <xmx:9H_gZa2_0-UXXamyKZIjdvWEBum-tQZBueZiidxNCEhbqb9pCraJDA> <xmx:9H_gZdB2vRdyLRa1oOtt6PHI0CC4CZ7cfgHN3CLq52NVq4f6fb_eAQ> <xmx:9H_gZeg6bni1ZeQFBbyNpeulExaUbcEzcL-qcVS0KexHJuM_qn0sPA> <xmx:9H_gZUfMlpzN1g7sNkxWWMXkGn2tYZpuVwI47P2Q-KRCP8LIfbfAaG2YfHE>
Feedback-ID: ia5d944da:Fastmail
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 6CD372D4007D; Thu, 29 Feb 2024 08:00:36 -0500 (EST)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.11.0-alpha0-182-gaab6630818-fm-20240222.002-gaab66308
MIME-Version: 1.0
Message-Id: <e9f91a3b-2d10-41b6-9bda-fb1e06eb2303@app.fastmail.com>
In-Reply-To: <1c877912-b20c-4cc5-9fdf-5f8487a4075d@dogfoodapp.fastmail.com>
References: <f090ffad-18ca-4ad1-8483-bae0d9117f69@dogfoodapp.fastmail.com> <11572858-a721-4a02-a2a0-3cb5766405c7@app.fastmail.com> <e134df94-758a-4a25-be92-1c413cd67934@dogfoodapp.fastmail.com> <1899d542-c730-4cbb-ba85-7db43c846c30@app.fastmail.com> <1c877912-b20c-4cc5-9fdf-5f8487a4075d@dogfoodapp.fastmail.com>
Date: Thu, 29 Feb 2024 14:00:11 +0100
From: Robert Stepanek <rsto@fastmailteam.com>
To: calsify@ietf.org
Content-Type: multipart/alternative; boundary="2f0f768efea14cabb8161dd178393b6f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/X2Qu0hQNgs9lf1vnv6CT-HpGTVo>
Subject: Re: [calsify] Request for preliminary review of JSContact property registrations
X-BeenThere: calsify@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Calendaring and Scheduling Standards Simplification <calsify.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/calsify>, <mailto:calsify-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/calsify/>
List-Post: <mailto:calsify@ietf.org>
List-Help: <mailto:calsify-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/calsify>, <mailto:calsify-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 29 Feb 2024 13:00:44 -0000

On Thu, Feb 29, 2024, at 4:02 AM, Neil Jenkins wrote:
> On Wed, 28 Feb 2024, at 19:41, Robert Stepanek wrote:
>> Since this is the first time that we might add "reserved" usage properties in the IANA JSCalender and JSContact registries (apart from "extra" in JSContact), let's put our own criteria to the test:
>>  • "to avoid name collisions with future extensions" means: reserve this name now because it's likely that a some time in the future there will be a "common" usage property for which this name is a very good choice.
> 
> My understanding was that this was more to do with avoiding name collisions by making it fairly easy to reserve a name on a first-come-first-serve basis, so people didn't start accidentally building extensions with conflicting names.

So we have two different understandings of RFC 8984's definition for "reserved" properties, and that's despite us being co-authors of that I-D! This shows that its phrasing leaves too much room for interpretation.

I'd like to get that sorted out now for both JSCalendar and JSContact.

JSCalendar RFC 8984, section 8.2 <https://datatracker.ietf.org/doc/html/rfc8984#name-creation-of-the-jscalendar-> defines:

"If the Intended Usage field is `common`, sufficient documentation is required to enable interoperability. [...]
A `reserved` registration reserves a property name without assigning semantics to avoid name collisions with future extensions or protocol use."

JSContact, draft version 16, section 3.3 <https://www.ietf.org/archive/id/draft-ietf-calext-jscontact-16.html#name-registry-policy-and-change-> defines:

"A `common` usage denotes an item with shared semantics and syntax across systems. Up-to-date systems MUST expect such items to occur in JSContact data.
A `reserved` usage reserves an item in the registry without assigning semantics to avoid name collisions with future extensions or protocol use."

First, both definitions leave it unclear if reserved properties may show up in JSCalendar/JSContact data. If they can, then one must expect implementations to also store them. This suggests the answer to be no. Implementations MUST NOT expect or add properties with reserved names, and any such JSCalendar/JSContact data is invalid outside the protocol that uses them. A major version change might change a reserved property name to a common usage one, though.

Secondly, this suggests that registering the property type of a reserved property name does not make any sense. The IANA Considerations should make clear that for a reserved property the type MUST be omitted, and the property context and reference or description MAY be omitted.  Currently, it states that the reference/description is omitted, but that doesn't make sense either: one would want to know why it's reserved and the JSContact I-D does exactly that for the "extra" property at the end of section 8.2.6 <https://www.ietf.org/archive/id/draft-ietf-calext-jscontact-16.html#name-initial-contents-for-the-jsc>.

Lastly, I so far understood we would want to encourage registering properties with "common" usage in favor of vendor-specific properties. I did not understand this to apply also for reserved properties which I rather have seen as a rare edge case.