Re: [calsify] Working Group Last Call: draft-ietf-calext-subscription-upgrade-07

Bron Gondwana <brong@fastmailteam.com> Thu, 10 November 2022 17:41 UTC

Return-Path: <brong@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 79877C14F6E5 for <calsify@ietfa.amsl.com>; Thu, 10 Nov 2022 09:41:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.806
X-Spam-Level:
X-Spam-Status: No, score=-2.806 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_DNSWL_LOW=-0.7, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, 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=U0OozQdf; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=kQBFuMuJ
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 lfGhPEuEBERT for <calsify@ietfa.amsl.com>; Thu, 10 Nov 2022 09:41:41 -0800 (PST)
Received: from wout4-smtp.messagingengine.com (wout4-smtp.messagingengine.com [64.147.123.20]) (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 25FB9C1524BC for <calsify@ietf.org>; Thu, 10 Nov 2022 09:41:41 -0800 (PST)
Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 7CFA032007F0; Thu, 10 Nov 2022 12:41:40 -0500 (EST)
Received: from imap43 ([10.202.2.93]) by compute4.internal (MEProxy); Thu, 10 Nov 2022 12:41:40 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=cc:cc:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1668102100; x= 1668188500; bh=dFE+oVCLqrZY9V4VcTgTzPNYwEWM3XIhNjqZaNIMVtY=; b=U 0OozQdfb5K/jD1iM/d1cdPlTYhF87DHvlpxOEhA0gf/08Ae9Ryi9yV3nbfg1UWAT SfP+8mEePCxhZdH6S8LurcrHseIJivCYeNc6GM/mVKHGFxDpd19u3ji54EMUSqNr aXvsCS4xn/OMZ1sgs4+uBssFAyHEkEDvdGrinJfR+QaDCJw5uwXJ3rghZilkykg1 TligoRAH0objcKOPc890HY8izWWmDQaGJGWSWSaVQFrCQVeeLAY2cLeH5xTl6DrB 5r7g1EEl26POo53PmVB3Qkmzl4sF8/idFzPyrtdDBfdd04lhFrcj4lUacRtUNB7W CVEguuVpdcMuwGv6+YL+g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1668102100; x=1668188500; bh=dFE+oVCLqrZY9V4VcTgTzPNYwEWM 3XIhNjqZaNIMVtY=; b=kQBFuMuJyEn64SgRtAVrhDfvrEsRLuWa8kqBPgJb/KtQ 8hAy++acn0Hla6i9qXB9YextWCqp38GJG0qKNlLAsIEcL45iQbSH8KA3GobxjEx5 Zam+Bq3BskV8h0MjoiKVNmfTo3CH6ROcEtKVKpSXtqL9XtLF8zhJp9iIv88GMsXv GBjLhhXl+wWG6a1PonuDUZAr6OPeLsCK1N+mSXjcDPNtHmK6bXSr4mYb9DcEs5U9 FGCZMBsgHaYeURsNA7ine044fL13cH0vWsjwg100YZP3DBEdXvX99Z7R/XanWOxk odeWBbF9IZwrfSKMb0WgxtnVvfQhoJl8iIbPf8cCZg==
X-ME-Sender: <xms:0zdtY_PDSDZCnvpQ6qIHflwIIf5KhRuexLUn3UhfiGpPUDLe1tIH0A> <xme:0zdtY5_cASMU52k07dSBd-nGYEHmvLXBUfd1n9EML-2R1uen__VG6MUHAE7U6lUfJ sImQemot_U>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvgedrfeeggddutdegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkjghffffhvfevufgtsegrtderreerredtnecuhfhrohhmpedfuehr ohhnucfiohhnugifrghnrgdfuceosghrohhnghesfhgrshhtmhgrihhlthgvrghmrdgtoh hmqeenucggtffrrghtthgvrhhnpeegueehfeegueefveeiudelueelvdegtdehffeltdel ffeuiefgueekkeektedtvdenucffohhmrghinhepihgvthhfrdhorhhgnecuvehluhhsth gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepsghrohhnghesfhgrshht mhgrihhlthgvrghmrdgtohhm
X-ME-Proxy: <xmx:0zdtY-Qh9s97yFCZCURbTGCwPhGlZxA3P7tEnqnCGXAXvQ5zdLU-_A> <xmx:0zdtYzuyUum5SCB1PkdOshb4SU1FF88a5AxcR3-ikCZF8teduMUnQA> <xmx:0zdtY3ep_lig4CkLJul2eAHpC6VPHEAgFztBGBV2I0gzGO7fOqiC8g> <xmx:1DdtY1pkA7-ZuT8i4sNUfY5XMHI6uDgEmVafw1b8bo3bdyq5lQlSlg>
Feedback-ID: i2d7042ce:Fastmail
Received: by mailuser.nyi.internal (Postfix, from userid 501) id C01D92D40074; Thu, 10 Nov 2022 12:41:39 -0500 (EST)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.7.0-alpha0-1115-g8b801eadce-fm-20221102.001-g8b801ead
Mime-Version: 1.0
Message-Id: <62cd4cba-1797-42ba-997f-edf7182b0c24@app.fastmail.com>
In-Reply-To: <ea719614-4c86-4db7-9a3c-d933a813d979@app.fastmail.com>
References: <ea719614-4c86-4db7-9a3c-d933a813d979@app.fastmail.com>
Date: Thu, 10 Nov 2022 17:41:14 +0000
From: Bron Gondwana <brong@fastmailteam.com>
To: calsify@ietf.org
Content-Type: multipart/alternative; boundary="33f2b659e9d5435790e88e4e59e28044"
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/b85OrP4UNcJK0RJO4vzOn0o2uqE>
Subject: Re: [calsify] Working Group Last Call: draft-ietf-calext-subscription-upgrade-07
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, 10 Nov 2022 17:41:45 -0000

Here's my shepherd review as promised!

*Substantive comments:*

The first "SHOULD" here should be a "MUST".  There's no reasonable world in which anything else is legitimate there other than an error if the server isn't working properly, and "SHOULD" isn't for hedging against server failures.

The second "SHOULD" is legit because a server could be reverted to an old version which doesn't support this and just returns the resource without understanding the headers.

   If no Sync-Token header field is supplied the server SHOULD respond
   with a full set of data.  Otherwise, if the token is valid, it SHOULD
   return with a set of changed entities.

---

This is fuzzy.  Is it SHOULD?  Is it MUST?  I'd probably say MUST for the second case and SHOULD for the first, following the logic from above.  If you're sending a partial then you MUST put the Preference-Applied, and you SHOULD if sending the whole resource.

   In both cases the server should set the Preference-Applied header
   field and a new Sync-Token header field value.

---

Again, this should be a MUST.  The client MUST respond to a 409 error by starting from scratch.  Anything else doesn't make progress.

   The client SHOULD respond to this error by restarting the interaction
   from scratch, i.e. retrieve the full set of data then poll for
   updates.

---

This seems like an interop pain - given that the alternative is just fetching the whole thing.  I would at least gate this with "If the prefer header was set" as above, and then say that if the server limits the response then the behaviour MUST be as if the client had provided a preference for that size.

   A server MAY choose to limit the response size.  The behavior SHOULD
   be as if the client had provided a preference for that size -
   allowing the client to retrieve the full set of data in batches.

---

Do you mean `sync-token = DQUOTE URI DQUOTE` here?  And maybe `accept /= sync-token` if there's an ABNF being extended

6.  Header Field: Sync-Token

   This specification defines a new header field Sync-Token for use by
   the enhanced GET method.

       Accept = DQUOTE URI DQUOTE

---

*Open Issues**:
*

Confirm correct use of Vary header and remove the open issues section.

---

*Nits:**
*

There's probably a missing comma after mechanism here...

   The use of subscription upgrade may help reduce load on servers, but
   perhaps more importantly it allows mobile devices to use a more
   efficient update mechanism reducing data transferred and presumably
   improving battery life.

---

Should VARY be all caps?

   To enable proper caching of responses the server SHOULD provide a
   VARY header field in responses that names the Prefer and Sync-Token
   header fields along with any other that are appropriate.

...

I think that's it :)

Thanks,

Bron.

On Mon, Oct 24, 2022, at 20:33, Bron Gondwana wrote:
> Hi all,
> 
> This email starts a 2 week working group last call for https://datatracker.ietf.org/doc/draft-ietf-calext-subscription-upgrade/ - my fault that this wasn't done ages ago but I can't see emails to the effect and if they were, it's been a while!
> 
> Please post any comments / queries / objections to this thread.  If nothing, I'll push the buttons at IETF115 in a couple of weeks and finally ship this thing to the IESG (as our milestones suggest was going to have happened in August)
> 
> Thanks,
> 
> Bron.
> 
> --
>   Bron Gondwana, CEO, Fastmail Pty Ltd
>   brong@fastmailteam.com
> 
> 

--
  Bron Gondwana, CEO, Fastmail Pty Ltd
  brong@fastmailteam.com