Skip to main content

JSON Meta Application Protocol
draft-ietf-jmap-core-08

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft that was ultimately published as RFC 8620.
Authors Neil Jenkins , Chris Newman
Last updated 2018-09-11 (Latest revision 2018-09-10)
Replaces draft-jenkins-jmap
RFC stream Internet Engineering Task Force (IETF)
Formats
Reviews
Additional resources Mailing list discussion
Stream WG state In WG Last Call
Document shepherd (None)
IESG IESG state Became RFC 8620 (Proposed Standard)
Consensus boilerplate Unknown
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-ietf-jmap-core-08
Jenkins & Newman         Expires March 14, 2019                [Page 61]
Internet-Draft                    JMAP                    September 2018

   where it is possible, concrete suggestions on how the request can be
   modified so as to become acceptable should be provided.

9.4.4.  Change procedures

   Once a JMAP capability has been published by the IANA, the change
   controller may request a change to its definition.  The same
   procedure that would be appropriate for the original registration
   request is used to process a change request.

   JMAP capability registrations may not be deleted; capabilities that
   are no longer believed appropriate for use can be declared obsolete
   by a change to their "intended use" field; such capabilities will be
   clearly marked in the lists published by the IANA.

   Significant changes to a capability's definition should be requested
   only when there are serious omissions or errors in the published
   specification.  When review is required, a change request may be
   denied if it renders entities that were valid under the previous
   definition invalid under the new definition.

   The owner of a JMAP capability may pass responsibility to another
   person or agency by informing the IANA; this can be done without
   discussion or review.

   The IESG may reassign responsibility for a JMAP capability.  The most
   common case of this will be to enable changes to be made to
   capabilities where the author of the registration has died, moved out
   of contact, or is otherwise unable to make changes that are important
   to the community.

9.4.5.  JMAP Capabilities registry template:

   Capability name: (see capability property in section 2)

   Specification document:

   Intended use: (one of common, limited, or obsolete)

   Change controller: (_IETF_ for standards-track/BCP RFCs)

   Security and privacy considerations:

9.4.6.  Initial registration for JMAP core

   Capability Name: "urn:ietf:params:jmap:core"

   Specification document: this document, section 2

Jenkins & Newman         Expires March 14, 2019                [Page 62]
Internet-Draft                    JMAP                    September 2018

   Intended use: common

   Change Controller: IETF

   Security and privacy considerations: this document, section 8.

9.4.7.  Registration for JMAP error placeholder in JMAP capabilities
        registry

   Capability Name: `urn:ietf:params:jmap:error:'

   Specification document: this document, next section.

   Intended use: placeholder

   Change Controller: IETF

   Security and privacy considerations: this document, section 8.

9.5.  Creation of "JMAP Error Codes" registry

   IANA will create a registry for JMAP error codes.  JMAP error codes
   appear in the "type" member of a JSON problem details object (as
   described in section 3.5.1), in the "type" member in a JMAP error
   object (as described in section 3.5.2), or the "type" member of a
   JMAP method-specific error object (such as SetError in section 5.3).
   When used in a problem details object, the prefix
   'urn:ietf:params:jmap:error:' is always included, and when used in
   JMAP objects, the prefix is always omitted.

   This registry follows the expert review process.  Preliminary
   community review for this registry follows the same procedures as the
   JMAP capabilities registry but is optional.  The change procedures
   for this registry are the same as the change procedures for the JMAP
   capabilities registry.

9.5.1.  Designated expert review

   The designated expert should review the following aspects of the
   registration:

   1.  Verify the error code does not conflict with existing names.

   2.  Verify the error code follows the syntax limitations (does not
       require URI encoding).

   3.  Encourage the error code to follow the naming convention of
       previously registered errors.

Jenkins & Newman         Expires March 14, 2019                [Page 63]
Internet-Draft                    JMAP                    September 2018

   4.  Encourage description of client behaviors that are recommended in
       response to the error code.  These may distinguish the error code
       from other error codes.

   5.  Encourage description of when the server should issue the error
       as opposed to some other error code.

   6.  Encourage the submitter to note any security considerations
       associated with the error, if any.  For example, an error code
       that might disclose existence of data the authenticated user does
       not have permission to know about.

   Steps 3-6 are meant to promote a higher-quality registry.  However,
   the expert is encouraged to approve any registration that would not
   actively harm JMAP interoperability to make this a relatively light-
   weight process.

9.5.2.  JMAP Error Codes registry template:

   JMAP Error Code:

   Intended use: (one of _common_, _limited_, _obsolete_)

   Change Controller: (_IETF_ for standards-track/BCP RFCs)

   Description or Reference:

9.5.3.  Initial JMAP Error Codes registry

   +------------------------------+---------+------------+-------------+
   |       JMAP Error Code        | Intende |   Change   | Description |
   |                              |  d Use  | Controller |      or     |
   |                              |         |            |  Reference  |
   +------------------------------+---------+------------+-------------+
   |       accountNotFound        |  common |    IETF    |   RFC XXXX  |
   |                              |         |            |   section   |
   |                              |         |            |    3.5.2    |
   | accountNotSupportedByMethod  |  common |    IETF    |   RFC XXXX  |
   |                              |         |            |   section   |
   |                              |         |            |    3.5.2    |
   |       accountReadOnly        |  common |    IETF    |   RFC XXXX  |
   |                              |         |            |   section   |
   |                              |         |            |    3.5.2    |
   |        anchorNotFound        |  common |    IETF    |   RFC XXXX  |
   |                              |         |            | section 5.5 |
   |        alreadyExists         |  common |    IETF    |   RFC XXXX  |
   |                              |         |            | section 5.4 |
   |    cannotCalculateChanges    |  common |    IETF    |   RFC XXXX  |

Jenkins & Newman         Expires March 14, 2019                [Page 64]
Internet-Draft                    JMAP                    September 2018

   |                              |         |            |   sections  |
   |                              |         |            | 5.2 and 5.6 |
   |          forbidden           |  common |    IETF    |   RFC XXXX  |
   |                              |         |            |   sections  |
   |                              |         |            | 3.5.2, 5.3, |
   |                              |         |            |  and 7.2.1  |
   |     fromAccountNotFound      |  common |    IETF    |   RFC XXXX  |
   |                              |         |            |   sections  |
   |                              |         |            | 5.4 and 6.3 |
   | fromAccountNotSupportedByMet |  common |    IETF    |   RFC XXXX  |
   |             hod              |         |            | section 5.4 |
   |       invalidArguments       |  common |    IETF    |   RFC XXXX  |
   |                              |         |            |   section   |
   |                              |         |            |    3.5.2    |
   |         invalidPatch         |  common |    IETF    |   RFC XXXX  |
   |                              |         |            | section 5.3 |
   |      invalidProperties       |  common |    IETF    |   RFC XXXX  |
   |                              |         |            | section 5.3 |
   |           notFound           |  common |    IETF    |   RFC XXXX  |
   |                              |         |            | section 5.3 |
   |           notJSON            |  common |    IETF    |   RFC XXXX  |
   |                              |         |            |   section   |
   |                              |         |            |    3.5.1    |
   |          notRequest          |  common |    IETF    |   RFC XXXX  |
   |                              |         |            |   section   |
   |                              |         |            |    3.5.1    |
   |          overQuota           |  common |    IETF    |   RFC XXXX  |
   |                              |         |            | section 5.3 |
   |          rateLimit           |  common |    IETF    |   RFC XXXX  |
   |                              |         |            | section 5.3 |
   |       requestTooLarge        |  common |    IETF    |   RFC XXXX  |
   |                              |         |            |   sections  |
   |                              |         |            | 5.1 and 5.3 |
   |    invalidResultReference    |  common |    IETF    |   RFC XXXX  |
   |                              |         |            |   section   |
   |                              |         |            |    3.5.2    |
   |          serverFail          |  common |    IETF    |   RFC XXXX  |
   |                              |         |            |   section   |
   |                              |         |            |    3.5.2    |
   |      serverPartialFail       | limited |    IETF    |   RFC XXXX  |
   |                              |         |            |   section   |
   |                              |         |            |    3.5.2    |
   |      serverUnavailable       |  common |    IETF    |   RFC XXXX  |
   |                              |         |            |   section   |
   |                              |         |            |    3.5.2    |
   |          singleton           |  common |    IETF    |   RFC XXXX  |
   |                              |         |            | section 5.3 |
   |        stateMismatch         |  common |    IETF    |   RFC XXXX  |

Jenkins & Newman         Expires March 14, 2019                [Page 65]
Internet-Draft                    JMAP                    September 2018

   |                              |         |            | section 5.3 |
   |      toAccountNotFound       |  common |    IETF    |   RFC XXXX  |
   |                              |         |            |   sections  |
   |                              |         |            | 5.4 and 6.3 |
   | toAccountNotSupportedByMetho |  common |    IETF    |   RFC XXXX  |
   |              d               |         |            | section 5.4 |
   |           tooLarge           |  common |    IETF    |   RFC XXXX  |
   |                              |         |            | section 5.3 |
   |        tooManyChanges        |  common |    IETF    |   RFC XXXX  |
   |                              |         |            | section 5.6 |
   |      unknownCapability       |  common |    IETF    |   RFC XXXX  |
   |                              |         |            |   section   |
   |                              |         |            |    3.5.1    |
   |        unknownMethod         |  common |    IETF    |   RFC XXXX  |
   |                              |         |            |   section   |
   |                              |         |            |    3.5.2    |
   |      unsupportedFilter       |  common |    IETF    |   RFC XXXX  |
   |                              |         |            | section 5.5 |
   |       unsupportedSort        |  common |    IETF    |   RFC XXXX  |
   |                              |         |            | section 5.5 |
   |         willDestroy          |  common |    IETF    |   RFC XXXX  |
   |                              |         |            | section 5.3 |
   +------------------------------+---------+------------+-------------+

10.  References

10.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC2782]  Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for
              specifying the location of services (DNS SRV)", RFC 2782,
              DOI 10.17487/RFC2782, February 2000,
              <https://www.rfc-editor.org/info/rfc2782>.

   [RFC3339]  Klyne, G. and C. Newman, "Date and Time on the Internet:
              Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,
              <https://www.rfc-editor.org/info/rfc3339>.

   [RFC3553]  Mealling, M., Masinter, L., Hardie, T., and G. Klyne, "An
              IETF URN Sub-namespace for Registered Protocol
              Parameters", BCP 73, RFC 3553, DOI 10.17487/RFC3553, June
              2003, <https://www.rfc-editor.org/info/rfc3553>.

Jenkins & Newman         Expires March 14, 2019                [Page 66]
Internet-Draft                    JMAP                    September 2018

   [RFC3629]  Yergeau, F., "UTF-8, a transformation format of ISO
              10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November
              2003, <https://www.rfc-editor.org/info/rfc3629>.

   [RFC4648]  Josefsson, S., "The Base16, Base32, and Base64 Data
              Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006,
              <https://www.rfc-editor.org/info/rfc4648>.

   [RFC4790]  Newman, C., Duerst, M., and A. Gulbrandsen, "Internet
              Application Protocol Collation Registry", RFC 4790,
              DOI 10.17487/RFC4790, March 2007,
              <https://www.rfc-editor.org/info/rfc4790>.

   [RFC5051]  Crispin, M., "i;unicode-casemap - Simple Unicode Collation
              Algorithm", RFC 5051, DOI 10.17487/RFC5051, October 2007,
              <https://www.rfc-editor.org/info/rfc5051>.

   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security
              (TLS) Protocol Version 1.2", RFC 5246,
              DOI 10.17487/RFC5246, August 2008,
              <https://www.rfc-editor.org/info/rfc5246>.

   [RFC5322]  Resnick, P., Ed., "Internet Message Format", RFC 5322,
              DOI 10.17487/RFC5322, October 2008,
              <https://www.rfc-editor.org/info/rfc5322>.

   [RFC5785]  Nottingham, M. and E. Hammer-Lahav, "Defining Well-Known
              Uniform Resource Identifiers (URIs)", RFC 5785,
              DOI 10.17487/RFC5785, April 2010,
              <https://www.rfc-editor.org/info/rfc5785>.

   [RFC6186]  Daboo, C., "Use of SRV Records for Locating Email
              Submission/Access Services", RFC 6186,
              DOI 10.17487/RFC6186, March 2011,
              <https://www.rfc-editor.org/info/rfc6186>.

   [RFC6335]  Cotton, M., Eggert, L., Touch, J., Westerlund, M., and S.
              Cheshire, "Internet Assigned Numbers Authority (IANA)
              Procedures for the Management of the Service Name and
              Transport Protocol Port Number Registry", BCP 165,
              RFC 6335, DOI 10.17487/RFC6335, August 2011,
              <https://www.rfc-editor.org/info/rfc6335>.

   [RFC6570]  Gregorio, J., Fielding, R., Hadley, M., Nottingham, M.,
              and D. Orchard, "URI Template", RFC 6570,
              DOI 10.17487/RFC6570, March 2012,
              <https://www.rfc-editor.org/info/rfc6570>.

Jenkins & Newman         Expires March 14, 2019                [Page 67]
Internet-Draft                    JMAP                    September 2018

   [RFC6749]  Hardt, D., Ed., "The OAuth 2.0 Authorization Framework",
              RFC 6749, DOI 10.17487/RFC6749, October 2012,
              <https://www.rfc-editor.org/info/rfc6749>.

   [RFC6764]  Daboo, C., "Locating Services for Calendaring Extensions
              to WebDAV (CalDAV) and vCard Extensions to WebDAV
              (CardDAV)", RFC 6764, DOI 10.17487/RFC6764, February 2013,
              <https://www.rfc-editor.org/info/rfc6764>.

   [RFC6838]  Freed, N., Klensin, J., and T. Hansen, "Media Type
              Specifications and Registration Procedures", BCP 13,
              RFC 6838, DOI 10.17487/RFC6838, January 2013,
              <https://www.rfc-editor.org/info/rfc6838>.

   [RFC6901]  Bryan, P., Ed., Zyp, K., and M. Nottingham, Ed.,
              "JavaScript Object Notation (JSON) Pointer", RFC 6901,
              DOI 10.17487/RFC6901, April 2013,
              <https://www.rfc-editor.org/info/rfc6901>.

   [RFC7159]  Bray, T., Ed., "The JavaScript Object Notation (JSON) Data
              Interchange Format", RFC 7159, DOI 10.17487/RFC7159, March
              2014, <https://www.rfc-editor.org/info/rfc7159>.

   [RFC7230]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
              Protocol (HTTP/1.1): Message Syntax and Routing",
              RFC 7230, DOI 10.17487/RFC7230, June 2014,
              <https://www.rfc-editor.org/info/rfc7230>.

   [RFC7235]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
              Protocol (HTTP/1.1): Authentication", RFC 7235,
              DOI 10.17487/RFC7235, June 2014,
              <https://www.rfc-editor.org/info/rfc7235>.

   [RFC7493]  Bray, T., Ed., "The I-JSON Message Format", RFC 7493,
              DOI 10.17487/RFC7493, March 2015,
              <https://www.rfc-editor.org/info/rfc7493>.

   [RFC7617]  Reschke, J., "The 'Basic' HTTP Authentication Scheme",
              RFC 7617, DOI 10.17487/RFC7617, September 2015,
              <https://www.rfc-editor.org/info/rfc7617>.

   [RFC7807]  Nottingham, M. and E. Wilde, "Problem Details for HTTP
              APIs", RFC 7807, DOI 10.17487/RFC7807, March 2016,
              <https://www.rfc-editor.org/info/rfc7807>.

Jenkins & Newman         Expires March 14, 2019                [Page 68]
Internet-Draft                    JMAP                    September 2018

   [RFC8030]  Thomson, M., Damaggio, E., and B. Raymor, Ed., "Generic
              Event Delivery Using HTTP Push", RFC 8030,
              DOI 10.17487/RFC8030, December 2016,
              <https://www.rfc-editor.org/info/rfc8030>.

   [RFC8126]  Cotton, M., Leiba, B., and T. Narten, "Guidelines for
              Writing an IANA Considerations Section in RFCs", BCP 26,
              RFC 8126, DOI 10.17487/RFC8126, June 2017,
              <https://www.rfc-editor.org/info/rfc8126>.

   [RFC8291]  Thomson, M., "Message Encryption for Web Push", RFC 8291,
              DOI 10.17487/RFC8291, November 2017,
              <https://www.rfc-editor.org/info/rfc8291>.

10.2.  URIs

   [1] https://html.spec.whatwg.org/multipage/server-sent-events.html

Authors' Addresses

   Neil Jenkins
   FastMail
   PO Box 234, Collins St West
   Melbourne  VIC 8007
   Australia

   Email: neilj@fastmailteam.com
   URI:   https://www.fastmail.com

   Chris Newman
   Oracle
   440 E. Huntington Dr., Suite 400
   Arcadia  CA 91006
   United States of America

   Email: chris.newman@oracle.com

Jenkins & Newman         Expires March 14, 2019                [Page 69]