Re: [dispatch] Potential incoming work: web push for IMAP, CalDAV and CardDAV

Michael Toomim <toomim@gmail.com> Thu, 24 October 2019 09:34 UTC

Return-Path: <toomim@gmail.com>
X-Original-To: dispatch@ietfa.amsl.com
Delivered-To: dispatch@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6F3D61207FE for <dispatch@ietfa.amsl.com>; Thu, 24 Oct 2019 02:34:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 7NHS8Ay2x703 for <dispatch@ietfa.amsl.com>; Thu, 24 Oct 2019 02:34:10 -0700 (PDT)
Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 009AD120024 for <dispatch@ietf.org>; Thu, 24 Oct 2019 02:34:09 -0700 (PDT)
Received: by mail-pf1-x42c.google.com with SMTP id y5so14775445pfo.4 for <dispatch@ietf.org>; Thu, 24 Oct 2019 02:34:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=45kwT7fMY3KMfnR1rBkeiqqCaSwiZN8gh4oLvxaJkaE=; b=QjGFAcGNkZ0436BNQhrqbk7lAS0Hhoxfe0P08rNkSVrbrxIe4QAHUCPP6SPJNQoq+H yLYAjgvGkAqn5W0AnXd/al25LpMiWz4Dr1sF/Oew7LjFPt2diI5uAVYHH4mMe5GLfDB7 NrvDLvdQhcAxm5EjoyREjxqZhHAntTCcBTofwDqRVmJBJW5NSQ8Vr24ew+31Yl1D1K4H wVquxaHi0UBlQDsINRBtGFiUNVJNkQfiPv6ilRM3DL+SgyOfE5xyzSvPvXvmIWhMBmFg EHv17ElydPiTRIB7gQ88/Rqmm4cBHbvVsphprx8TihbGQgh03VaJsdN3gfiuvyQBTvLi urBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=45kwT7fMY3KMfnR1rBkeiqqCaSwiZN8gh4oLvxaJkaE=; b=aW49xps/GxYbMLkbES5i8F5emeAFaicQcpR5e93F3+gH3wl9oeL3bF/dM4WhV3gTOq KdzKeaVxM38rsr3FAlDjM29Ip2ZkoHA+sw0DLLvXzevO9R308/zSCW1jd88t/ZTBNwA+ x8m9JDsptfcN1/9eq9nd2yo7oVcRyNkF8A0dDGcGb6SkbHjK32VvfuH7IHB+PhiumtEE EPFZ1rbNLuUMod+QUUZcR9tiOr15mDqB+B81UkwhcsBTrnwFG44sySU9wAjhOmK+oYrd rNQ4HpNH7BcRzWzHqwnzfnJH8VDcoT6fpU2qyOusXEdWwy2pQMmOYhaTa/w+kDBlEZ50 yQWw==
X-Gm-Message-State: APjAAAVaXn/T5PcsYfzNhtrnzb8N6XNg3toAZgxlP10NuIriZ1EINicK 7qYgSJQsTpRl7tYI8HVAkJQ=
X-Google-Smtp-Source: APXvYqyt2rL9xRwENK5E0sbQNG6mU/WA1HEHlFRREFXb82K4uHVEYkCx8AsmsTCiQIwvdiONA/DT+A==
X-Received: by 2002:a62:1b50:: with SMTP id b77mr3334287pfb.187.1571909649441; Thu, 24 Oct 2019 02:34:09 -0700 (PDT)
Received: from [192.168.42.3] (135-180-2-130.static.sonic.net. [135.180.2.130]) by smtp.gmail.com with ESMTPSA id x26sm1892420pfr.110.2019.10.24.02.34.08 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 24 Oct 2019 02:34:08 -0700 (PDT)
Content-Type: text/plain; charset="windows-1252"
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
From: Michael Toomim <toomim@gmail.com>
In-Reply-To: <a89ee52b-306b-60ca-35a6-e912c2a2eb82@gmx.de>
Date: Thu, 24 Oct 2019 02:34:07 -0700
Cc: Bron Gondwana <brong@fastmailteam.com>, dispatch@ietf.org, Seph Gentle <me@josephg.com>, Rafie Walker <slickytail.mc@gmail.com>, Bryn Bellomy <bryn.bellomy@gmail.com>, greg little <glittle@gmail.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <34B388A2-50A7-4344-98B6-0D8B08E1277F@gmail.com>
References: <290514e7-79ce-4852-bf05-a684e2e8d045@beta.fastmail.com> <DFC3797D-DA12-4470-9CBE-D7BD981DB6CE@gmail.com> <839ea4e5-db2d-8220-6058-93869a29c185@gmx.de> <82F33D05-D8BC-4F69-A198-677773F3427C@gmail.com> <11cabf2e-1550-53e5-60dd-7d1bdf65805a@gmx.de> <B1A18B63-B78A-4AE5-A164-A9CE0B13D326@gmail.com> <450f4113-7cdb-f65e-761d-9023e3d625bd@gmx.de> <CEECFFAD-ECAA-41FF-8817-4090DF694B27@gmail.com> <a89ee52b-306b-60ca-35a6-e912c2a2eb82@gmx.de>
To: Julian Reschke <julian.reschke@gmx.de>
X-Mailer: Apple Mail (2.3124)
Archived-At: <https://mailarchive.ietf.org/arch/msg/dispatch/ExU2KNVutsxsPcTDxj7WeSqc8Lw>
Subject: Re: [dispatch] Potential incoming work: web push for IMAP, CalDAV and CardDAV
X-BeenThere: dispatch@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DISPATCH Working Group Mail List <dispatch.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dispatch>, <mailto:dispatch-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dispatch/>
List-Post: <mailto:dispatch@ietf.org>
List-Help: <mailto:dispatch-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dispatch>, <mailto:dispatch-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Oct 2019 09:34:11 -0000

Thank you very much for your early comments!

Julian:
> 
> Hmm. I think you'll need to work on the proper labeling of things. Even
> if the client opts into this format, the Content-Type will still have to
> describe the overall payload.

Hm, I think I see where you're coming from.  Here's the example in my mind:

Request:
     GET /animated-braid.gif
     Subscribe

Response:
     OK 200
     Subscribe
     Cache-Control: no-cache
     Patch-Type: braid-patch(bytes, sync9(array))
     ---- Part 1
     Content-Type: image/gif
     Patch-Type: braid-patch(bytes, sync9(array))
     Content-Length: 1239

     [100:200] = <binary data>
     ---- Part 2
     Content-Type: image/gif
     Patch-Type: braid-patch(bytes, sync9(array))
     Content-Length: 62638

     [348:887] = <binary data>

I think you're saying that the Content-Type of each part should need to describe the BODY of each part.  Why is that necessary?  I would imagine that it would only impact a cache, but we rule out caches with no-cache unless they understand the patch format.

It seems to me that the Content-Type *could* conceivably describe the semantic content of the resource, even though its updates are described with a particular Patch-Type.  Similar to how Range Requests don't change the Content-Type, even though they are only sending a small patch of the object in the BODY.

> You're basically inventing a new payload format that can wrap multiple
> payloads. But then we already have multipart/*; it really seems to me
> you should be using that instead.

I'm open to using multipart/*.  Are there any advantages to it?  It requires the sender to come up with a unique separator string, which means they need to scan all messages before choosing the separator to wrap them with.  It seems simpler to just use Content-Length: N to communicate how to break apart multiple messages, and as a bonus, you can stream the data and process just one message at a time.

Thank you very much for your early comments!