Markdown Version | Transcript | Session Recording | Session Materials
Session Date/Time: 17 Mar 2026 01:00
JMAP
IETF 125 Session Minutes
Summary
The JMAP working group met in a joint session with CALEXT to discuss the progression of JScalendar, JSContact, and various JMAP extensions. Key outcomes included the decision to pursue a "bis" update for vCard 4.0 to resolve long-standing errata and align with JSContact, and a technical consensus to shift the JMAP File Storage model toward a more POSIX-like mutable structure. Progress was reported on several JMAP extensions, including Mail Sharing and Metadata, with implementations currently being tested in the Stalwart and Fastmail servers.
Key Discussion Points
CALEXT Updates: JScalendar and JSContact
Robert Stepanek provided an update on the JScalendar and JSContact suites (Slides: calext-jscalendar-jscontact).
- JScalendar: Documents are undergoing minor tweaks to align with JSContact definitions and IANA sections. Submission to the IESG is expected before July.
- JSContact:
JSContact-profilesis now unblocked in the IESG review process.JSContact-UIDis nearing the Auth48 stage. - RFC 9553-bis: This document aims to align JSContact/vCard conversion with the JScalendar/iCalendar conversion patterns. Adoption is expected imminently.
vCard 4.0-bis Proposal
Rick proposed a refresh of the vCard 4.0 specification (Slides: vcard-4.0-bis-proposal).
- Problem: The current spec has 33 reported errata. Significant confusion exists regarding UID types (text vs. URI) and membership indicators, which complicates the upgrade path from vCard 3.0 and synchronization with JSContact.
- Discussion: Ken and others supported the effort to clean up the specification to discourage vendors from creating non-standard vCard 3.0 extensions.
- Consensus: There was strong support for adopting this work within the working group to maintain the standard.
JMAP File Storage and Blob Extensions
Bron Gondwana presented updates on draft-ietf-jmap-filenode and the proposed Blobext (Slides: filenode-blobext).
- Filenode Roles: Bron proposed standard roles:
root,home,temp, andtrash. Ben suggested adding apicturesrole. - Mutablity Debate: The current draft used immutable
blobId,size, andtype. Neil Jenkins and Ben argued that allowing these properties to change on a single FileNode ID (POSIX-like) is more efficient for clients, sharing permissions, and avoiding unnecessary round-trips for small writes (e.g., SQLitefsync). Bron agreed to update the draft to allow mutability. - Blobext: Discussion centered on chunked uploads and
Blob/convertfor thumbnails. While Ken questioned the historical lack of adoption for IMAP CONVERT, Bron noted that thumbnailing is a critical requirement for modern file clients. - Resumable Uploads: The group discussed leveraging the ongoing HTTP Resumable Uploads work rather than reinventing a JMAP-specific mechanism.
JMAP Extensions: Mail Sharing, Metadata, and Refplus
Mario Loffredo provided updates on three drafts:
- draft-ietf-jmap-mail-sharing: Implemented in Stalwart; considered stable and ready for review.
- draft-ietf-jmap-metadata and draft-ietf-jmap-refplus: Mario is seeking further feedback before proceeding with full implementation. Neil Jenkins committed to reviewing the latest versions.
- CBOR and Compression: Mario suggested exploring CBOR for JMAP or using Compression Dictionary Transport (RFC 9842) to optimize JSON payloads. Neil Jenkins requested benchmarks to demonstrate significant wins over standard compressed JSON before adding protocol complexity.
JMAP Email Push
Neil Jenkins updated the group on draft-ietf-jmap-emailpush.
- Status: The document is adopted. Mario Loffredo confirmed partial implementation in Stalwart. The next step is full end-to-end testing of payload delivery.
Decisions and Action Items
- Decision: The working group will adopt a new work item to produce a vCard 4.0-bis document (Rick to lead).
- Action: Bron Gondwana to update draft-ietf-jmap-filenode to move away from the immutable content model to a POSIX-like model where the
blobIdcan change for a stable Node ID. - Action: Hans-Joerg to refresh the expired JMAP Tasks draft and determine if checklist features are ready for inclusion.
- Action: Bron Gondwana to issue a call for adoption for the JMAP Blobext draft.
- Action: Alexey to review the S/MIME sender draft in coordination with Philippe.
Next Steps
- WGLC: draft-ietf-jmap-mail-sharing will likely proceed to Working Group Last Call soon following final reviews.
- Implementation: Mario Loffredo will set up a public Stalwart instance to allow client developers to test draft-ietf-jmap-refplus and draft-ietf-jmap-emailpush.
- Milestones: Bron Gondwana to update the Datatracker milestones, including shifting the draft-ietf-jmap-filenode submission date to June and adding Blobext milestones.
Related Documents
draft-ietf-jmap-emailpush, draft-ietf-jmap-filenode, draft-ietf-jmap-mail-sharing, draft-ietf-jmap-metadata, draft-ietf-jmap-refplus