The JSON Meta Application Protocol (JMAP)
draft-ietf-jmap-core-17
The information below is for an old version of the document that is already published as an RFC |
Document |
Type |
|
RFC Internet-Draft (jmap WG)
|
|
Authors |
|
Neil Jenkins
,
Chris Newman
|
|
Last updated |
|
2020-01-20
(latest revision 2019-03-20)
|
|
Replaces |
|
draft-jenkins-jmap
|
|
Stream |
|
Internet Engineering Task Force (IETF)
|
|
Formats |
|
pdf
htmlized (tools)
htmlized
bibtex
|
|
Reviews |
|
|
Stream |
WG state
|
|
Submitted to IESG for Publication
|
|
Document shepherd |
|
Bron Gondwana
|
|
Shepherd write-up |
|
Show
(last changed 2018-12-02)
|
IESG |
IESG state |
|
RFC 8620 (Proposed Standard)
|
|
Consensus Boilerplate |
|
Yes
|
|
Telechat date |
|
|
|
Responsible AD |
|
Alexey Melnikov
|
|
Send notices to |
|
Bron Gondwana <brong@fastmailteam.com>
|
IANA |
IANA review state |
|
Version Changed - Review Needed
|
|
IANA action state |
|
RFC-Ed-Ack
|
JMAP N. Jenkins
Internet-Draft FastMail
Intended status: Standards Track C. Newman
Expires: September 19, 2019 Oracle
March 18, 2019
JSON Meta Application Protocol
draft-ietf-jmap-core-17
Abstract
This document specifies a protocol for clients to efficiently query,
fetch and modify JSON-based data objects, with support for push
notification of changes and fast resynchronisation, and out-of-band
binary data upload/download.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 19, 2019.
Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Jenkins & Newman Expires September 19, 2019 [Page 1]
Internet-Draft JMAP March 2019
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Notational conventions . . . . . . . . . . . . . . . . . 4
1.2. The Id data type . . . . . . . . . . . . . . . . . . . . 5
1.3. The Int and UnsignedInt data types . . . . . . . . . . . 6
1.4. The Date and UTCDate data types . . . . . . . . . . . . . 6
1.5. JSON as the data encoding format . . . . . . . . . . . . 6
1.6. Terminology . . . . . . . . . . . . . . . . . . . . . . . 7
1.6.1. User . . . . . . . . . . . . . . . . . . . . . . . . 7
1.6.2. Accounts . . . . . . . . . . . . . . . . . . . . . . 7
1.6.3. Data types and records . . . . . . . . . . . . . . . 7
1.7. The JMAP API model . . . . . . . . . . . . . . . . . . . 8
1.8. Vendor-specific extensions . . . . . . . . . . . . . . . 8
2. The JMAP Session resource . . . . . . . . . . . . . . . . . . 9
2.1. Example . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2. Service autodiscovery . . . . . . . . . . . . . . . . . . 14
3. Structured data exchange . . . . . . . . . . . . . . . . . . 14
3.1. Making an API request . . . . . . . . . . . . . . . . . . 14
3.1.1. The Invocation data type . . . . . . . . . . . . . . 15
3.2. The Request object . . . . . . . . . . . . . . . . . . . 15
3.2.1. Example request . . . . . . . . . . . . . . . . . . . 16
3.3. The Response object . . . . . . . . . . . . . . . . . . . 16
3.3.1. Example response: . . . . . . . . . . . . . . . . . . 17
3.4. Omitting arguments . . . . . . . . . . . . . . . . . . . 17
3.5. Errors . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.5.1. Request-level errors . . . . . . . . . . . . . . . . 18
3.5.2. Method-level errors . . . . . . . . . . . . . . . . . 19
3.6. References to previous method results . . . . . . . . . . 21
3.7. Localisation of user-visible strings . . . . . . . . . . 25
3.8. Security . . . . . . . . . . . . . . . . . . . . . . . . 26
3.9. Concurrency . . . . . . . . . . . . . . . . . . . . . . . 26
4. The Core/echo method . . . . . . . . . . . . . . . . . . . . 26
4.1. Example . . . . . . . . . . . . . . . . . . . . . . . . . 26
5. Standard methods and naming convention . . . . . . . . . . . 26
5.1. /get . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2. /changes . . . . . . . . . . . . . . . . . . . . . . . . 28
5.3. /set . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.4. /copy . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Show full document text