Minutes IETF126: jmap: Mon 14:30
minutes-126-jmap-202607201430-00
| Meeting Minutes | JSON Mail Access Protocol (jmap) WG | |
|---|---|---|
| Date and time | 2026-07-20 14:30 | |
| Title | Minutes IETF126: jmap: Mon 14:30 | |
| State | Active | |
| Other versions | markdown | |
| Last updated | 2026-07-22 |
JMAP/CALEXT joint session at IETF126, Vienna
Monday July 20th 16:30-18:30 (2 hours)
Room Name: Park Suite 6
Intro and notewell: 5 min
CALEXT WG
documents: https://datatracker.ietf.org/wg/calext/documents/
material: https://datatracker.ietf.org/meeting/126/session/calext
With IESG / RFC Editor: 5 min
- draft-ietf-calext-ical-tasks-17 (RFC Ed queue)
-
draft-ietf-calext-jscontact-profiles-14 (RFC Ed queue)
### Robert Stepanek (w/ Neil Jenkins, Mario Loffredo): 20 min {#robert-stepanek-w-neil-jenkins-mario-loffredo-20-min} -
draft-ietf-calext-jscalendarbis-17 (awaiting implementation reports)
- draft-ietf-calext-jscalendar-icalendar-24 (in WGLC)
- draft-ietf-calext-icalendar-jscalendar-extensions-06 (in WGLC)
- draft-ietf-calext-rfc9555bis-01 (JSContact/vCard conversion)
Ricardo Signes: 10 min
Phillip Hallam-Baker: 10 min
New Work — Ravi Kashyap: 5 min
Expired Drafts: 5 min
anything of interest to revive?
- draft-ietf-calext-icalendar-series-03
- draft-ietf-calext-itip-participants-00
- draft-ietf-calext-subscription-upgrade-13
- draft-ietf-calext-vpoll-07
AOB / Milestone review: 5 min
JMAP WG
documents: https://datatracker.ietf.org/wg/jmap/documents/
material: https://datatracker.ietf.org/meeting/126/session/jmap
With IESG: 5 min
- draft-ietf-jmap-calendars-26 (RFC Ed queue, blocked on
jscalendarbis)
Mauro De Gennaro: 15 min
Bron Gondwana: 15 min
- draft-ietf-jmap-filenode-14
- draft-ietf-jmap-blobext-01
- draft-gondwana-jmap-conditional-00 (new work)
-
draft-gondwana-jmap-object-history-00 (new work)
### Neil Jenkins: 5 min {#neil-jenkins-5-min}
Alexey Melnikov: 5 min
- draft-melnikov-jmap-smime-sender-extensions-alt-07 (alternative to
expired WG smime-sender-extensions)
Expired Drafts: 5 min
anything of interest to revive?
- essential
- portability
- rest
- smime-sender-extensions (see Alexey's alt draft above)
- tasks
AOB / Milestone Review: 5 min
MINUTES
CALEXT
jscalendar
Robert speaking
- In last call (one with ADs)
- all done!
Neil: JMAP-Calendars went to AUTH48 and had to be held for JSCalendar
changes. Plan to do a short WGLC again on the minor changes made.
Neil will publish latest JMAP Calendars first.
ACTION: Chairs working group last call any calendar documents not
already (including JMAP Calendars)
jscontact
Robert speaking
- 9555bis -> one more issue with localizations which will be done soon
- should hold this for vcard4-bis changes and go together
JSContact at Fastmail:
- Warts!
- Street name & Number issues - ordering.
Bron: IETF has a liaison with ISO, we could ask them. Also, you could
state order in the object
- Robert -> you can already give the order but maybe the
implementation doesn't know. Would be great to have details from
ISO.
ACTION: Bron to speak with ISO Liaison about address format spec.
No further work planned at the moment.
vCard4-bis
Rik speaking
- some errata from 15 years ago!
Bron: what does a non-escaped comma mean in a URI?
Rik: if you know the type, you can parse it - if not you should treat it
as opaque!
text/directory => media type used by LDAP?
Andy: If you could tell me which errata are accepted but conflicting, I
can make it hold-for-doc-update, and there's an ldap mailing list.
Murray: can you tell me about text/directory?
- Rik: in RFC introducting VCard 3, adds text/directory and some other
things. - VCard 4: introduces text/vcard and deprecates text/directory.
- Murray, so argument is that we shouldn't have deprecated it? Rik:
yes
ACTION: Rik fold extensions into VCARD4-BIS that we should keep.
Cryptographic Extensions
PHB Speaking
- Data URIs are bad because jscontact system shouldn't have to
understand new formats. - have running code
Robert: would be in favour of doing a breaking change (so can store both
kinds of keys in the same object type).
- PHB: also my preferred approach
- won't break running code
- Robert: shouldn't be afraid of breaking changes especially this
early - Ken (via chat) +1 to breaking change
Robert: with registry of update sources - would you want that in
JSContact registry, or another registry?
- PHB: IANA Registry under JSContact. Only reason not would be to use
it for other data types (e.g. jscalendar) - Doesn't make sense unless we have millions of these.
AOB
Murray: may have a solution for text/directory.
JMAP
jmap-calendars
Spoken about during CALEXT
Mauro
Mauro speaking
- Not much change since last sessions
Mail Sharing:
- very simple
ACTION: Bron to issue WGLC for JMAP Mail Sharing
Metadata:
- server advertises which objects you can add metadata to.
- standard types
- server advertises what's supported
- properties -> pointers
- IANA registry -> e.g. for filenode.
Will implement in Stalwart once people believe it's clean. Know people
who want to use this.
ACTION: All please read and give suggestions on JMAP metadata spec.
Result References:
Neil thinks too complicated. Suggested adding a Type property to
ResultReference object.
Arnt: Question about ERR -> drops some roundtrips, does it also drop
error handling between roundtrips? Does it make things atomic?
- Mauro: if you're chaining requests and the first one fails, then
second one fails. If error is that the query has no results, you
know you can't trust the second one. - E.g. writing a calendar event and want to import participants from
an object, but if query is wrong and yields no results then how do
you handle that? - Query yielding no results is not an error.
- Arnt: but still need error handling for servers that don't support
it.- If referencing a previous item which failed then you fail this
request, but if a query returns nothing that's not a failure. - Do we need to add a property for "must not be empty result set"?
- If referencing a previous item which failed then you fail this
Neil: was going to clarify for Arnt - don't think it affects error
handling, doesn't make things atomic, just reduces some round trips.
Alexey: Had dejavu with catenate etc in IMAP land, found it somewhat
useful but not widely deployed. Find some interesting enough, maybe
don't abandon but people need to think about it.
- JSON pointer?
- Ability to use in more places?
Mauro: server can say what it supports as well, JSON Pointer or JSON
Path? It's optional.
Bron: it's not dangerous to have this exist, question is who will
implement it.
Emailpush
Neil speaking
Not a lot to say. Last time were waiting for implementation experience.
Expect to have it by next meeting, and progress next time.
Mauro: have implemented it
- Bundling the group of multiple email pushes so the payload does not
get too big, but think we found a solution.
ACTION: Neil and Mauro to review bundling of pushes when multiple emails
being pushed and update emailpush draft
Filenode, etc
Bron speaking
Regarding "how much should we be compatible with"?
Arnt: just anything S3 supports. Everyone just cares about S3 compat!
Locking -> there wasn't significant interest for locking.
atomic swap -> clients use this for locking, so it's valuable to have
it. Will add to one of the existing specs.
ACTION: Bron to add more examples of interesting use cases and @Type
to FileNode
Mauro: Wants an extension for collaborative editing. Will talk about
what is involved in that during the week.
Bron thinks blobext is basically done.
ACTION: Jim to issue call for adoption for jmap object history and
conditional updates.
S/MIME
Alexey speaking
Bron: this looks like it should be a Blob/set option in the new blobext.
- Alexey: woried about having to do everything in Blobext just to
support this!
Bron: in favour of doing what you said on the slide.
ACTION: Alexey to update the adopted WG smime doc with the alt version
Parked docs:
Hans Joerg: majority of the expired docs were related just to our
use-cases.
- Rest one appeared recently in context of somethign else.
- Tasks - still on our agenda! Hope we get back to that soon.
- Question for the room:
- Have been discussing preferences things.
- Missing something about Notes -> how do people deal with
personal notes in their JMAP implementations. Would be natural
for us. Reference in PDPa. - Also: working with Chat messages, but an import/export format
maybe. Might be OK to use .eml mail files, but also interesting
in options.
Alexey: devils advocate / serious? Can use metadata to store notes!
Rik: We implement JMAP Notes. You could use Files (in a format that
stores the text you want) - can have a separate account or datagroup for
it.
Hans-Joerg: appreciate the feedback, right now observing that a lot of
tools are moving to block-notes (e.g. like Notion). Maybe could just
store in a file, but -- even JMAP Contacts you don't really need because
you could just store it in a file.
Ben: Notes app for Nextcloud just uses TXT files on storage. Main issue
is "where do I store that?" -- don't want a directory visible to the
user. Want private storage for my app. Like how IMAP clients create
folders which show up - want it private.
... Tasks: if not solved by jscalendar, then is needed.
Rik: Tasks "solved" by jscalendar, but what it solves is the
representation of a VTODO (a JS Task) but we don't have a JMAP API to
manage them. Audriga's draft handles lots of formats. We want a minimal
core, plus extensions for the rest.
JMAP Server settings
Mauro: was supposed to work on with Hans Joerg. Already present in
Stalwart. Standard way to store/access/set common proporties defined in
most servers. Account settings, user timezone, language, etc.
ACTION: Mauro and Hans-Joerg to publish a draft for jmap account
settings.
Milestones
We did them.