<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-ietf-jmap-metadata-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="JMAP Object Metadata">JMAP Object Metadata</title>

    <author initials="M." surname="De Gennaro" fullname="Mauro De Gennaro">
      <organization abbrev="Stalwart Labs">Stalwart Labs LLC</organization>
      <address>
        <postal>
          <street>1309 Coffeen Avenue, Suite 1200</street>
          <city>Sheridan</city>
          <region>WY</region>
          <code>82801</code>
          <country>USA</country>
        </postal>
        <email>mauro@stalw.art</email>
        <uri>https://stalw.art</uri>
      </address>
    </author>

    <date year="2025" month="November" day="29"/>

    
    <workgroup>JMAP</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 47?>

<t>This document defines a new extension to the JSON Meta Application Protocol (JMAP) that introduces a standardized mechanism for managing metadata associated with JMAP objects. The JMAP Object Metadata extension allows clients and servers to store, retrieve, and synchronize arbitrary metadata and annotations on any JMAP data type in a consistent manner. It defines a generic annotation model as well as specific mappings for accessing IMAP metadata and WebDAV “dead properties” where applicable. This extension facilitates interoperability between JMAP and existing metadata frameworks while allowing vendor-specific extensions in a structured and discoverable way.</t>



    </abstract>



  </front>

  <middle>


<?line 51?>

<section anchor="introduction"><name>Introduction</name>

<t>JMAP (<xref target="RFC8620"/> — JSON Meta Application Protocol) is a generic protocol for synchronizing data, such as mail, calendars or contacts, between a client and a server. It is optimized for mobile and web environments, and aims to provide a consistent interface to different data types.</t>

<t>Metadata and annotations are auxiliary data elements that provide additional context, user-defined properties, or system-specific information about primary data objects. These mechanisms have proven valuable in existing protocols: IMAP <xref target="RFC3501"/> provides the METADATA extension <xref target="RFC5464"/> for associating arbitrary key-value pairs with mailboxes and the server, while WebDAV <xref target="RFC4918"/> supports "dead properties" that allow clients to store custom XML properties on resources. Such metadata capabilities enable a wide range of use cases, including user annotations, application-specific settings, collaborative tagging, and protocol bridging.</t>

<t>This document defines a standardized approach to managing metadata within JMAP. The specification introduces a generic annotation mechanism that can be applied to any JMAP object type, allowing both common metadata properties and vendor-specific extensions. This provides a consistent interface for clients to store and retrieve supplementary information associated with emails, contacts, calendar events, and other JMAP data types.</t>

<t>For servers that implement multiple protocols, this specification also defines optional specialized metadata types: ImapMetadata for accessing IMAP METADATA extension entries through JMAP, and WebDavMetadata for exposing WebDAV dead properties via JMAP interfaces. These specialized types facilitate protocol interoperability and allow clients to manage metadata across different protocol boundaries.</t>

<section anchor="notational-conventions"><name>Notational Conventions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

</section>
<section anchor="addition-to-the-capabilities-object"><name>Addition to the Capabilities Object</name>

<t>The capabilities object is returned as part of the JMAP Session object; see <xref section="2" sectionFormat="of" target="RFC8620"/>. This document defines one additional capability URI.</t>

<section anchor="urnietfparamsjmapmetadata"><name>urn:ietf:params:jmap:metadata</name>

<t>This capability represents support for the Metadata data type and associated API methods. Servers that include this capability provide the ability to create, retrieve, update, and query Metadata objects.</t>

<t>The value of this property in the JMAP Session "capabilities" property is an empty object.</t>

<t>The value of this property in an account's "accountCapabilities" property is an object that <bcp14>MUST</bcp14> contain the following information on server capabilities and permissions for that account:</t>

<dl>
  <dt><strong>dataTypes</strong>: <spanx style="verb">String[]|null</spanx></dt>
  <dd>
    <t>A list of JMAP data types for which the server supports metadata operations. A value of <spanx style="verb">null</spanx> indicates support for all data types. When specified as an array, only the listed data types can have Metadata objects associated with them.</t>
  </dd>
  <dt><strong>metadataTypes</strong>: <spanx style="verb">String[]</spanx></dt>
  <dd>
    <t>A list of metadata type identifiers (values of the <spanx style="verb">@type</spanx> property) for which the server supports metadata operations. Only the listed metadata types can be created or retrieved.</t>
  </dd>
  <dt><strong>maxDepth</strong>: <spanx style="verb">UnsignedInt|null</spanx></dt>
  <dd>
    <t>Maximum depth of nested vendor-specific metadata properties that can be set or retrieved. A depth of 1 indicates only flat properties are supported. A depth of 2 allows one level of nesting, and so forth. A value of <spanx style="verb">null</spanx> indicates no server-enforced limit on nesting depth. This limitation applies to the structure of vendor-defined nested metadata properties within Annotation objects and does not affect the standard properties defined in this specification.</t>
  </dd>
  <dt><strong>maySetPrivate</strong>: <spanx style="verb">Boolean</spanx> (default: true)</dt>
  <dd>
    <t>Indicates whether the authenticated user has permission to create private metadata objects (<spanx style="verb">isPrivate</spanx>: true) in this account. If false, the user can only create shared metadata objects. Attempts to create private metadata when this capability is false <bcp14>MUST</bcp14> be rejected with a "forbidden" SetError.</t>
  </dd>
</dl>

</section>
</section>
</section>
<section anchor="metadata-object"><name>Metadata Object</name>

<t>The Metadata object has a collection of properties, as specified in the following sections. Properties are specified as being either mandatory or optional. Optional properties may have a default value if explicitly specified in the property definition.</t>

<section anchor="object-types"><name>Object Types</name>

<t>This specification defines three metadata object types: Annotation, ImapMetadata, and WebDavMetadata. The Annotation type provides a generic mechanism for attaching metadata to any JMAP object and supports arbitrary vendor-specific properties. The ImapMetadata and WebDavMetadata types are specialized metadata objects that provide structured access to IMAP METADATA extension <xref target="RFC5464"/> entries and WebDAV <xref target="RFC4918"/> dead properties, respectively, enabling protocol interoperability for servers that support multiple protocols.</t>

<t>Additional specifications <bcp14>MAY</bcp14> define further metadata types as needed to address specific use cases or protocol requirements. Such specifications <bcp14>MUST</bcp14> define a unique type identifier and specify which JMAP data types the metadata type may be associated with.</t>

<t>Metadata objects <bcp14>MUST</bcp14> name their type in the <spanx style="verb">@type</spanx> property. If not specified, the type is assumed to be "Annotation".</t>

<section anchor="object-type-annotation"><name>Annotation</name>

<t>An Annotation represents general-purpose metadata that can be attached to any JMAP object. Annotations provide a flexible mechanism for storing supplementary information about JMAP data objects without modifying the objects themselves. This metadata type is suitable for user comments, application-specific tags, workflow states, collaborative annotations, and other extensible metadata requirements.</t>

<t>The Annotation type is designed to be extensible through vendor-specific properties. This allows vendors and third-party applications to add custom metadata fields while maintaining interoperability with the core JMAP metadata system. Vendors can define domain-namespaced properties to avoid naming conflicts and ensure that their extensions do not interfere with standard properties or extensions from other vendors.</t>

<t>Common use cases for Annotations include: storing user notes or comments on emails or calendar events; maintaining application-specific flags or states; recording collaborative review or approval status; tracking custom workflow stages; and preserving client-specific UI preferences or cached computations.</t>

<t>The Annotation type <bcp14>MUST</bcp14> allow vendor-specific properties to be added beyond the common properties defined in this specification, subject to the naming and structure requirements specified in <xref target="vendor-specific-properties">Vendor-Specific Properties</xref>.</t>

<t>The <xref target="type-property">@type</xref> property value <bcp14>MUST</bcp14> be "Annotation".</t>

</section>
<section anchor="object-type-imap"><name>IMAP Metadata</name>

<t>ImapMetadata represents metadata associated with IMAP mailboxes as defined by the IMAP METADATA extension <xref target="RFC5464"/>. This metadata type provides a JMAP interface to IMAP metadata entries, allowing clients to read and potentially modify IMAP metadata through the JMAP protocol. This facilitates migration scenarios, protocol bridging, and unified metadata management for servers that support both IMAP and JMAP.</t>

<t>The IMAP METADATA extension defines a hierarchical namespace of metadata entries associated with mailboxes, organized under "/shared" and "/private" prefixes. Shared metadata entries are visible to all users with appropriate access to the mailbox, while private metadata entries are visible only to the authenticated user. The ImapMetadata type maps these IMAP concepts onto the JMAP metadata model.</t>

<t>Servers that support ImapMetadata <bcp14>MUST</bcp14> provide read access to IMAP metadata through the Metadata/get method. Write access (the ability to create, update, or destroy ImapMetadata objects through Metadata/set) is <bcp14>OPTIONAL</bcp14>. Servers that provide read-only access to IMAP metadata <bcp14>MUST</bcp14> reject modification attempts with an appropriate SetError (typically "forbidden"). Servers <bcp14>SHOULD</bcp14> document whether they provide read-only or read-write access to ImapMetadata.</t>

<t>This metadata type can only be associated with JMAP Mailbox objects as defined in <xref section="2" sectionFormat="of" target="RFC8621"/>. Attempts to create ImapMetadata objects with a <spanx style="verb">parentType</spanx> other than "Mailbox" <bcp14>MUST</bcp14> be rejected with an "invalidProperties" SetError.</t>

<t>The <xref target="type-property">@type</xref> property value <bcp14>MUST</bcp14> be "ImapMetadata".</t>

</section>
<section anchor="object-type-webdav"><name>WebDAV Metadata</name>

<t>WebDavMetadata represents metadata associated with WebDAV resources in the form of "dead properties" as defined in <xref section="4" sectionFormat="of" target="RFC4918"/>. Dead properties are arbitrary XML properties that clients can set on WebDAV resources to store metadata. This metadata type enables JMAP clients to access and potentially manipulate WebDAV dead properties, facilitating protocol interoperability and unified metadata management on servers that support both WebDAV and JMAP.</t>

<t>WebDAV dead properties are identified by their expanded XML name, which consists of a namespace URI and a local name. The WebDavMetadata type preserves this structure by using the expanded-name format for property keys: "{namespace-uri}localname". This ensures that WebDAV properties can be accurately represented and manipulated through JMAP without loss of namespace information.</t>

<t>Servers that support WebDavMetadata <bcp14>MUST</bcp14> provide read access to WebDAV dead properties through the Metadata/get method. Write access (the ability to create, update, or destroy WebDavMetadata objects through Metadata/set) is <bcp14>OPTIONAL</bcp14>. Servers that provide read-only access to WebDAV dead properties <bcp14>MUST</bcp14> reject modification attempts with an appropriate SetError (typically "forbidden"). Servers <bcp14>SHOULD</bcp14> document whether they provide read-only or read-write access to WebDavMetadata.</t>

<t>This metadata type can be associated with Calendar <xref target="I-D.ietf-jmap-calendars"/>, CalendarEvent <xref target="I-D.ietf-jmap-calendars"/>, AddressBook <xref target="RFC9610"/>, ContactCard <xref target="RFC9610"/>, and FileNode <xref target="I-D.ietf-jmap-filenode"/> data types, corresponding to the WebDAV-based protocols such as CalDAV <xref target="RFC4791"/>, CardDAV <xref target="RFC6352"/>, and WebDAV file storage. Servers <bcp14>MUST</bcp14> enforce that WebDavMetadata objects are only created for parent types that correspond to WebDAV resources. Attempts to create WebDavMetadata objects with inappropriate <spanx style="verb">parentType</spanx> values <bcp14>MAY</bcp14> be rejected with an "invalidProperties" SetError.</t>

<t>The <xref target="type-property">@type</xref> property value <bcp14>MUST</bcp14> be "WebDavMetadata".</t>

</section>
</section>
<section anchor="properties"><name>Properties</name>

<section anchor="common-metadata-properties"><name>Common Properties</name>

<section anchor="type-property"><name>@type</name>

<t>Type: <spanx style="verb">String</spanx> (mandatory)</t>

<t>This specifies the type that this object represents. The allowed value differs by object type and is defined in Sections <xref target="object-type-annotation"></xref>, <xref target="object-type-imap"></xref>, and <xref target="object-type-webdav"></xref>.</t>

</section>
<section anchor="id-property"><name>id</name>

<t>Type: <spanx style="verb">Id</spanx> (server-set)</t>

<t>The id of the Metadata object. This identifier is unique within the scope of the account and is assigned by the server upon creation.</t>

</section>
<section anchor="parent-type-property"><name>parentType</name>

<t>Type: <spanx style="verb">String</spanx> (mandatory)</t>

<t>The JMAP data type of the object to which this Metadata object is attached, e.g., "Email", "ContactCard", "Mailbox", "CalendarEvent". The <spanx style="verb">parentType</spanx> determines the kind of object identified by the <spanx style="verb">parentId</spanx> property.</t>

</section>
<section anchor="parent-id-property"><name>parentId</name>

<t>Type: <spanx style="verb">Id</spanx> (mandatory)</t>

<t>The id of the JMAP object to which this Metadata object is attached. This id <bcp14>MUST</bcp14> correspond to a valid object of the type specified in <spanx style="verb">parentType</spanx> within the same account.</t>

</section>
<section anchor="is-private-property"><name>isPrivate</name>

<t>Type: <spanx style="verb">Boolean</spanx> (default: false)</t>

<t>Indicates whether the Metadata object is private to the authenticated user or shared among all users with access to the parent object. If true, the Metadata object represents user-specific metadata that is visible only to the user who created it. If false or omitted, the Metadata object is considered shared and can be accessed by other users with appropriate permissions on the parent object, as defined in <xref target="access-control">Access Control</xref>.</t>

<t>The <spanx style="verb">isPrivate</spanx> property enables per-user metadata on shared objects. Multiple users may each have their own private Metadata objects associated with the same parent object and metadata type. When a client queries for Metadata objects with <spanx style="verb">isPrivate</spanx>: true, the server <bcp14>MUST</bcp14> return only those private Metadata objects that were created by the currently authenticated user. Private Metadata objects created by other users <bcp14>MUST NOT</bcp14> be visible to the authenticated user, even if they have access to the parent object.</t>

<t>Internally, the server may store multiple private Metadata objects for the same combination of <spanx style="verb">parentType</spanx>, <spanx style="verb">parentId</spanx>, and <spanx style="verb">@type</spanx> (one for each user who has set private metadata). However, from the perspective of any given authenticated user, there is at most one visible private Metadata object for each parent-type combination—specifically, the private Metadata object that they themselves created. Other users' private Metadata objects for the same parent object and type are not visible to them.</t>

<t>For shared Metadata objects (<spanx style="verb">isPrivate</spanx>: false), there is at most one Metadata object per combination of <spanx style="verb">parentType</spanx>, <spanx style="verb">parentId</spanx>, and <spanx style="verb">@type</spanx>, and it is visible to all users with appropriate permissions on the parent object.</t>

<t>For ImapMetadata objects, this property determines whether the metadata corresponds to IMAP entries under the "/private/" or "/shared/" prefix hierarchy.</t>

</section>
<section anchor="vendor-specific-properties"><name>Vendor-Specific Properties</name>

<t>Vendors <bcp14>MAY</bcp14> add additional properties to Metadata objects to support their custom features or requirements. To prevent naming conflicts, the names of vendor-specific properties <bcp14>MUST</bcp14> be prefixed by a domain name controlled by the vendor followed by a colon, e.g., <spanx style="verb">example.com:customField</spanx> or <spanx style="verb">vendor.org:internalState</spanx>. The use of domain name prefixes ensures global uniqueness and allows multiple vendors to extend the metadata schema without interference.</t>

<t>If the value of a vendor-specific property is itself a Metadata object (nested object), it either <bcp14>MUST</bcp14> include an <spanx style="verb">@type</spanx> property to identify its type, or the property definition <bcp14>MUST</bcp14> explicitly specify that a type designator is not required for that particular property. If a type is specified for a nested vendor-specific object, the type name <bcp14>MUST</bcp14> also be prefixed with a domain name controlled by the vendor, e.g., <spanx style="verb">example.com:CustomMetadataType</spanx>.</t>

<t>Vendors are strongly encouraged to register any new property values or extensions that are useful to other systems as well, rather than use a vendor-specific prefix. Registration with IANA or documentation in public specifications enhances interoperability and allows broader adoption of useful metadata extensions.</t>

<t>Server implementations <bcp14>MUST</bcp14> preserve vendor-specific properties that they do not recognize when updating Metadata objects, unless the update explicitly removes those properties. This ensures that metadata from one vendor's client is not inadvertently lost when another client (or the server itself) modifies other properties of the Metadata object.</t>

<t>Annotation type Metadata objects <bcp14>MUST</bcp14> allow vendor-specific properties to be added beyond the common properties defined above. This extensibility mechanism enables vendors and third-party applications to store custom metadata without requiring standardization of every use case.</t>

</section>
</section>
<section anchor="imapmetadata-properties"><name>ImapMetadata Properties</name>

<t>In addition to the common Metadata object properties (<xref target="common-metadata-properties"></xref>), an <spanx style="verb">ImapMetadata</spanx> object has the following properties:</t>

<section anchor="metadata-property-imap"><name>metadata</name>

<t>Type: <spanx style="verb">[String]String</spanx> (default: {})</t>

<t>The IMAP METADATA extension <xref target="RFC5464"/> defines a mechanism for clients to store and retrieve arbitrary key-value metadata associated with IMAP mailboxes. Metadata entries are organized in a hierarchical namespace with two top-level prefixes: "/private/" for per-user private metadata and "/shared/" for metadata shared among all users with access to the mailbox.</t>

<t>This property contains the key-value pairs of IMAP metadata entries associated with the mailbox. The keys in this map represent IMAP metadata entry names with the "/private/" or "/shared/" prefix removed. The values are the corresponding metadata values as strings. The interpretation of keys depends on the value of the <spanx style="verb">isPrivate</spanx> property:</t>

<t><list style="symbols">
  <t>If <spanx style="verb">isPrivate</spanx> is true, the keys represent metadata entries under the "/private/" prefix. For example, a key "comment" with value "Important mailbox" corresponds to the IMAP metadata entry "/private/comment" with that value. A key "vendor/example.com/setting" would correspond to "/private/vendor/example.com/setting".</t>
  <t>If <spanx style="verb">isPrivate</spanx> is false, the keys represent metadata entries under the "/shared/" prefix. A key "comment" with value "Team mailbox" would correspond to "/shared/comment". For example, if an ImapMetadata object has <spanx style="verb">isPrivate</spanx> set to true and the metadata property contains <spanx style="verb">{"comment": "My notes", "vendor/acme.example/color": "blue"}</spanx>, this represents IMAP metadata entries "/private/comment" with value "My notes" and "/private/vendor/acme.example/color" with value "blue".</t>
</list></t>

<t>Servers <bcp14>MUST</bcp14> ensure that the IMAP metadata namespace conventions are preserved. When retrieving IMAP metadata, servers <bcp14>SHOULD</bcp14> strip the "/private/" or "/shared/" prefix based on the <spanx style="verb">isPrivate</spanx> property value. When setting IMAP metadata through this interface, servers <bcp14>MUST</bcp14> prepend the appropriate prefix before storing the entry in the IMAP metadata store.</t>

<t>Empty string values are permitted and represent IMAP metadata entries that exist but have no value. To delete an IMAP metadata entry through this interface, clients should remove the corresponding key from the metadata map entirely.</t>

</section>
</section>
<section anchor="webdavmetadata-properties"><name>WebDavMetadata Properties</name>

<t>In addition to the common Metadata object properties (<xref target="common-metadata-properties"></xref>), an <spanx style="verb">WebDavMetadata</spanx> object has the following properties:</t>

<section anchor="metadata-property-webdav"><name>metadata</name>

<t>Type: <spanx style="verb">[String]String</spanx> (default: {})</t>

<t>WebDAV <xref target="RFC4918"/> defines "dead properties" as arbitrary properties set by clients on WebDAV resources. Unlike "live properties" which have their semantics enforced by the server, dead properties are stored and returned verbatim without server interpretation. Dead properties are identified by XML expanded names, which consist of a namespace URI and a local name.</t>

<t>This property contains the key-value pairs of WebDAV dead properties associated with the resource. The keys <bcp14>MUST</bcp14> be in the expanded-name format: "{namespace-uri}localname". For example, a property with namespace URI "http://example.com/ns" and local name "priority" would be represented as the key "{http://example.com/ns}priority".</t>

<t>The values are the string representations of the dead properties. For properties that contain simple text content, the value is that text content. For properties that contain complex XML structure or content that cannot be directly represented as a simple string, the value <bcp14>MUST</bcp14> be the serialized XML representation of the property's content. The serialization <bcp14>SHOULD</bcp14> preserve the XML structure including elements, attributes, and namespaces, but typically excludes the outer property element itself (since the property name is already represented in the key).</t>

<t>For example, a WebDavMetadata object might have a metadata property containing:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "{http://example.com/ns}priority": "high",
  "{http://example.com/ns}reviewedBy": "alice@example.com",
  "{DAV:}displayname": "Project Documents",
  "{http://example.com/ns}complexdata": 
     "<item><name>Test</name><value>123</value></item>"
}
]]></sourcecode></figure>

<t>This represents four WebDAV dead properties: three with simple text content and one with XML structure serialized as a string.</t>

<t>Servers <bcp14>MUST</bcp14> preserve the namespace and local name structure of WebDAV properties. When synchronizing between JMAP and WebDAV interfaces, servers <bcp14>MUST</bcp14> maintain consistency such that setting a property through one interface makes it visible through the other interface (subject to server support for write operations).</t>

<t>The XML serialization format allows round-tripping of complex WebDAV properties through the JMAP interface. Clients that need to work with structured WebDAV properties can parse the XML string values to access the internal structure.</t>

</section>
</section>
</section>
</section>
<section anchor="metadata-methods"><name>Metadata Methods</name>

<section anchor="metadataset"><name>Metadata/set</name>

<t>This is a standard "/set" method as described in <xref section="5.2" sectionFormat="of" target="RFC8620"/>.</t>

<t>The Metadata/set method enforces a uniqueness constraint to ensure consistent metadata management. From the perspective of an authenticated user, their account <bcp14>MUST NOT</bcp14> contain multiple visible Metadata objects with the same combination of <spanx style="verb">parentType</spanx>, <spanx style="verb">parentId</spanx>, <spanx style="verb">@type</spanx>, and <spanx style="verb">isPrivate</spanx> values. This constraint ensures that for any given parent object and metadata type, the user sees at most one private Metadata object (their own) and at most one shared Metadata object.</t>

<t>For shared metadata (<spanx style="verb">isPrivate</spanx>: false), the server <bcp14>MUST</bcp14> enforce global uniqueness: only one shared Metadata object may exist for each combination of <spanx style="verb">parentType</spanx>, <spanx style="verb">parentId</spanx>, and <spanx style="verb">@type</spanx> across all users.</t>

<t>For private metadata (<spanx style="verb">isPrivate</spanx>: true), the server <bcp14>MUST</bcp14> enforce per-user uniqueness: each user may have at most one private Metadata object for each combination of <spanx style="verb">parentType</spanx>, <spanx style="verb">parentId</spanx>, and <spanx style="verb">@type</spanx>. The server internally may store multiple private Metadata objects for the same parent-type combination (one per user), but each user can only see and modify their own.</t>

<t>If a client attempts to create a Metadata object that would violate this uniqueness constraint for the authenticated user, the server <bcp14>MUST</bcp14> reject the create operation with an "invalidProperties" SetError. The SetError <bcp14>SHOULD</bcp14> include a description indicating that a Metadata object with the specified combination of properties already exists. Clients that wish to modify existing metadata should use the update operation rather than attempting to create a duplicate.</t>

<t>Similarly, if an update operation would change the <spanx style="verb">parentType</spanx>, <spanx style="verb">parentId</spanx>, <spanx style="verb">@type</spanx>, or <spanx style="verb">isPrivate</spanx> properties such that the resulting Metadata object would conflict with an existing object visible to the authenticated user, the server <bcp14>MUST</bcp14> reject the update with an "invalidProperties" SetError.</t>

<t>If the maySetPrivate capability is false for the account and a client attempts to create or update a Metadata object with <spanx style="verb">isPrivate</spanx>: true, the server <bcp14>MUST</bcp14> reject the operation with a "forbidden" SetError.</t>

<t>Servers <bcp14>SHOULD</bcp14> enforce quota limits when processing Metadata/set requests. If a create or update operation would cause the account's metadata storage to exceed its quota, the server <bcp14>MUST</bcp14> reject the operation with an "overQuota" SetError. The SetError <bcp14>MAY</bcp14> include additional information about the quota limit and current usage in its description property. Quota enforcement is discussed further in <xref target="quota"></xref>.</t>

<t>Servers <bcp14>MUST</bcp14> validate that the <spanx style="verb">parentType</spanx> and <spanx style="verb">parentId</spanx> values reference a valid existing object of the appropriate type. If the parent object does not exist or the <spanx style="verb">parentType</spanx> is not recognized, the server <bcp14>SHOULD</bcp14> reject the operation with an "invalidProperties" SetError, with the "properties" field including "<spanx style="verb">parentType</spanx>" and/or "<spanx style="verb">parentId</spanx>" as appropriate.</t>

<t>For ImapMetadata objects, servers <bcp14>MUST</bcp14> verify that the <spanx style="verb">parentType</spanx> is "Mailbox" (<xref section="2" sectionFormat="of" target="RFC8621"/>). For WebDavMetadata objects, servers <bcp14>MUST</bcp14> verify that the <spanx style="verb">parentType</spanx> is one of the supported WebDAV-backed types (Calendar <xref target="I-D.ietf-jmap-calendars"/>, CalendarEvent <xref target="I-D.ietf-jmap-calendars"/>, AddressBook <xref target="RFC9610"/>, ContactCard <xref target="RFC9610"/>, FileNode <xref target="I-D.ietf-jmap-filenode"/>, or other appropriate types as defined by the server).</t>

</section>
<section anchor="metadataget"><name>Metadata/get</name>

<t>This is a standard "/get" method as described in <xref section="5.1" sectionFormat="of" target="RFC8620"/>. The "ids" argument <bcp14>MAY</bcp14> be null to fetch all Metadata objects in the account at once.</t>

</section>
<section anchor="metadatachanges"><name>Metadata/changes</name>

<t>This is a standard "/changes" method as described in <xref section="5.2" sectionFormat="of" target="RFC8620"/>.</t>

</section>
<section anchor="metadataquery"><name>Metadata/query</name>

<t>This is a standard "/query" method as described in <xref section="5.5" sectionFormat="of" target="RFC8620"/>.</t>

<section anchor="filtering"><name>Filtering</name>

<t>A <strong>FilterCondition</strong> object has the following properties, any of which may be omitted:</t>

<dl newline="true">
  <dt><strong>@type</strong>: <spanx style="verb">String[]</spanx></dt>
  <dd>
    <t>Only Metadata objects whose <spanx style="verb">@type</spanx> property value is in the specified array are returned. This allows filtering for specific metadata types, for example, to retrieve only Annotation objects or only ImapMetadata objects.</t>
  </dd>
  <dt><strong>parentType</strong>: <spanx style="verb">String</spanx></dt>
  <dd>
    <t>Only Metadata objects whose <spanx style="verb">parentType</spanx> is equal to the specified value are returned. This is useful for retrieving metadata associated with a particular JMAP data type, such as all metadata on Email objects.</t>
  </dd>
  <dt><strong>parentIds</strong>: <spanx style="verb">Id[]</spanx></dt>
  <dd>
    <t>Only Metadata objects whose <spanx style="verb">parentId</spanx> is in the specified array are returned. This allows retrieving metadata for a specific set of parent objects.</t>
  </dd>
  <dt><strong>isPrivate</strong>: <spanx style="verb">Boolean</spanx></dt>
  <dd>
    <t>Only Metadata objects whose <spanx style="verb">isPrivate</spanx> property matches the specified value are returned. This allows filtering to retrieve only private metadata (true) or only shared metadata (false).</t>
  </dd>
  <dt><strong>textMatch</strong>: <spanx style="verb">String</spanx></dt>
  <dd>
    <t>Only Metadata objects whose vendor-specific string properties contain the specified text are returned. The match <bcp14>SHOULD</bcp14> be case-insensitive and <bcp14>SHOULD</bcp14> look for the text anywhere within the property values. Servers <bcp14>MAY</bcp14> extend this to match against standard properties as well, but <bcp14>MUST</bcp14> at minimum search vendor-specific properties. The exact matching algorithm is implementation-defined, but servers <bcp14>SHOULD</bcp14> document their behavior for this filter.</t>
  </dd>
</dl>

</section>
<section anchor="sorting"><name>Sorting</name>

<t>The following properties <bcp14>SHOULD</bcp14> be supported for sorting:</t>

<t><list style="symbols">
  <t>@type</t>
  <t>parentType</t>
  <t>parentId</t>
  <t>isPrivate</t>
</list></t>

</section>
</section>
<section anchor="metadataquerychanges"><name>Metadata/queryChanges</name>

<t>This is a standard "/queryChanges" method as described in <xref section="5.6" sectionFormat="of" target="RFC8620"/>.</t>

</section>
</section>
<section anchor="standard-method-extensions"><name>Standard Method Extensions</name>

<t>This specification extends the standard JMAP methods for existing data types to support metadata operations. These extensions allow clients to retrieve and manage metadata alongside the primary data objects in a unified, efficient manner.</t>

<section anchor="extended-get"><name>/get</name>

<t>This extension enhances the standard "/get" method defined in <xref section="5.1" sectionFormat="of" target="RFC8620"/> for all JMAP data types specified in the dataTypes capability. The extension adds metadata retrieval capabilities to any supported data type's /get method (e.g., Email/get, Mailbox/get, Contact/get).</t>

<t>The following additional arguments are defined for the extended /get method:</t>

<dl>
  <dt><strong>metadataTypes</strong>: <spanx style="verb">String[]|null</spanx> (default: [])</dt>
  <dd>
    <t>A list of metadata object type identifiers (<spanx style="verb">@type</spanx> values) to retrieve for the requested objects. If not provided or an empty array is provided, no metadata is returned. If null is specified, all metadata is returned. If one or more type identifiers are specified, the server returns metadata objects of those types associated with the requested objects. Servers <bcp14>MUST</bcp14> support this argument for all data types listed in the dataTypes capability.</t>
  </dd>
  <dt><strong>metadataProperties</strong>: <spanx style="verb">String[]|null</spanx> (default: null)</dt>
  <dd>
    <t>A list of metadata property names to include in the returned metadata objects. If null, all properties of the metadata objects are returned. If specified, only the requested properties are included in the response. The <spanx style="verb">@type</spanx> and <spanx style="verb">parentId</spanx> properties <bcp14>MUST</bcp14> always be included in metadata objects even if not explicitly requested, as they are necessary to correlate metadata with their parent objects and identify the metadata type. This argument follows the same semantics as the properties argument in the standard /get method. Servers <bcp14>MUST</bcp14> support this argument for all data types listed in the dataTypes capability.</t>
  </dd>
</dl>

<t>The response to an extended /get method includes the following additional property:</t>

<dl newline="true">
  <dt><strong>metadata</strong>: <spanx style="verb">Metadata[]</spanx> (default: [])</dt>
  <dd>
    <t>An array of Metadata objects associated with the objects returned in the list property. The metadata array contains only those metadata objects whose <spanx style="verb">parentId</spanx> corresponds to an object id in the list response and whose <spanx style="verb">@type</spanx> matches one of the types specified in the metadataTypes request argument. If metadataTypes was null or empty, this property is an empty array or may be omitted. The <spanx style="verb">parentId</spanx> property of each metadata object allows clients to correlate metadata with their parent objects.</t>
  </dd>
</dl>

<t>If a requested parent object does not have any metadata of the specified types, it simply will not have corresponding entries in the metadata array.</t>

</section>
<section anchor="extended-set"><name>/set</name>

<t>This specification extends the standard "/set" method defined in <xref section="5.3" sectionFormat="of" target="RFC8620"/> for all JMAP data types to ensure proper metadata lifecycle management.</t>

<t>When an object is destroyed through a /set method (e.g., Email/set with a destroy operation), the server <bcp14>MUST</bcp14> automatically delete all associated Metadata objects. This includes both private and shared metadata, regardless of which user created them. This cascading deletion ensures that metadata does not become orphaned when its parent object is removed.</t>

<t>The automatic deletion of metadata applies to all metadata types (Annotation, ImapMetadata, WebDavMetadata, and any other registered metadata types) associated with the destroyed object.</t>

<t>Servers <bcp14>SHOULD NOT</bcp14> generate separate Metadata/set responses or state changes for automatically deleted metadata. The deletion is considered an implicit consequence of destroying the parent object. However, servers <bcp14>MAY</bcp14> emit push notifications or update metadata state strings to reflect that metadata has been deleted, if such notifications would otherwise occur for explicitly deleted metadata.</t>

<t>Clients do not need to manually delete metadata before destroying parent objects, and attempting to do so would be inefficient. The server handles metadata cleanup automatically.</t>

<t>If an error occurs during parent object deletion that prevents the destruction from completing, the associated metadata <bcp14>MUST NOT</bcp14> be deleted either, maintaining referential integrity.</t>

</section>
</section>
<section anchor="access-control"><name>Access Control</name>

<t>Access control for Metadata objects is determined by the <spanx style="verb">isPrivate</spanx> property and the permissions on the parent object. This model ensures that metadata access aligns with the access control of the objects being annotated.</t>

<t>For private Metadata objects (<spanx style="verb">isPrivate</spanx>: true), only the authenticated user who created the Metadata object can read or modify it. Private metadata is isolated to the creating user and is not visible to other users regardless of their permissions on the parent object. This allows users to maintain personal annotations on shared objects without exposing them to collaborators or other users with shared access.</t>

<t>When processing Metadata/get or Metadata/query requests, the server <bcp14>MUST</bcp14> filter private Metadata objects to return only those created by the currently authenticated user. Private Metadata objects created by other users <bcp14>MUST NOT</bcp14> be included in the response, even if those other users have access to the same parent objects.</t>

<t>When processing Metadata/set requests for private Metadata objects, the server <bcp14>MUST</bcp14> verify that the user has appropriate access to the parent object (at minimum, read access to create private annotations on it). However, the user does not need write access to the parent object to create or modify their own private metadata about it.</t>

<t>For shared Metadata objects (<spanx style="verb">isPrivate</spanx>: false), access is governed by the permissions of the parent object. Users who have permission to read the parent object can also read shared Metadata objects associated with it. Users who have permission to modify the parent object can also modify shared Metadata objects associated with it.</t>

<t>For shareable JMAP object types as defined in <xref section="4" sectionFormat="of" target="RFC9670"/> and type-specific specifications, the server <bcp14>MUST</bcp14> enforce access control based on the mayRead and mayWrite properties (or equivalent permission indicators) of the parent object when processing Metadata/get and Metadata/set requests on shared Metadata objects.</t>

<t>Specifically:</t>

<t><list style="symbols">
  <t>A Metadata/get request for a shared Metadata object <bcp14>MUST</bcp14> only succeed if the requesting user has read permission (mayRead: true or equivalent) on the parent object.</t>
  <t>A Metadata/set request that creates or updates a shared Metadata object <bcp14>MUST</bcp14> only succeed if the requesting user has write permission (mayWrite: true or equivalent) on the parent object.</t>
  <t>A Metadata/set request that destroys a shared Metadata object <bcp14>MUST</bcp14> only succeed if the requesting user has write permission on the parent object (some servers may require additional permissions for deletion).</t>
  <t>For private Metadata objects, the server <bcp14>MUST</bcp14> verify that the requesting user has at least read access to the parent object before allowing creation, and that the user is the creator of the private Metadata object before allowing updates or deletion.</t>
</list></t>

<t>If a user attempts to access a Metadata object but lacks the necessary permissions, the server <bcp14>MUST</bcp14> reject the request with a "forbidden" error at the method level, or include a "forbidden" SetError in the notCreated/notUpdated/notDestroyed response for the specific object in Metadata/set operations.</t>

<t>If the maySetPrivate capability is false and a user attempts to create a private Metadata object, the server <bcp14>MUST</bcp14> reject the request with a "forbidden" SetError, regardless of their permissions on the parent object.</t>

<t>Servers <bcp14>SHOULD</bcp14> enforce these access control rules consistently across all Metadata operations. When a user's permissions on a parent object change (for example, when sharing is revoked), the visibility of shared Metadata objects associated with that parent <bcp14>MUST</bcp14> change accordingly. Private Metadata objects remain accessible only to their creator regardless of permission changes on the parent object.</t>

<t>It is <bcp14>RECOMMENDED</bcp14> that servers provide clear error messages when access is denied, indicating whether the issue is lack of permission on the parent object, attempting to access another user's private metadata, or lack of permission to create private metadata in the account.</t>

</section>
<section anchor="quota"><name>Quota</name>

<t>Servers <bcp14>SHOULD</bcp14> enforce quota limits on the total storage consumed by Metadata objects within a JMAP account. Unbounded metadata storage could lead to resource exhaustion and denial of service conditions. Quota enforcement ensures fair resource allocation among users and protects server resources.</t>

<t>Servers that support the JMAP Quotas extension <xref target="RFC9425"/> <bcp14>SHOULD</bcp14> integrate metadata storage into the quota framework defined in that specification, allowing clients to query current metadata quota usage and limits through the standard Quota API. Servers that do not support <xref target="RFC9425"/> <bcp14>SHOULD</bcp14> still enforce implementation-defined limits on metadata storage and reject operations that would exceed those limits with an "overQuota" SetError.</t>

<t>The method for calculating the size of a Metadata object is implementation-specific, as different server architectures may have different storage characteristics. However, the following approach is <bcp14>RECOMMENDED</bcp14> for consistency and predictability:</t>

<t>Calculate the size of a Metadata object as the size of its CBOR <xref target="RFC8949"/> serialized representation in bytes. CBOR provides a compact binary encoding of structured data similar to JSON, and using CBOR size as the quota metric provides a consistent measure that is independent of the server's internal storage format. This approach accounts for all property names and values, including vendor-specific properties, in a standardized way.</t>

<t>When a Metadata/set operation would cause the account to exceed its metadata quota, the server <bcp14>MUST</bcp14> reject the operation with an "overQuota" SetError. The SetError <bcp14>SHOULD</bcp14> include a descriptive message indicating that the metadata quota has been exceeded. Servers <bcp14>MAY</bcp14> include additional information in the description, such as the current quota usage, the quota limit, and the size of the rejected operation.</t>

<t>Quota enforcement applies to both create and update operations. Creating a new Metadata object consumes quota, and updating an existing object may increase quota usage if the update adds or enlarges properties. Destroying a Metadata object <bcp14>MUST</bcp14> free the quota consumed by that object.</t>

</section>
<section anchor="examples"><name>Examples</name>

<t>This section provides practical examples demonstrating common metadata management scenarios.</t>

<section anchor="creating-a-mailbox-with-annotation"><name>Creating a Mailbox with Annotation</name>

<t>This example shows how to create a new JMAP Mailbox and associate an Annotation object with vendor-specific properties in a single request.</t>

<figure><sourcecode type="json"><![CDATA[
[
  ["Mailbox/set", {
    "accountId": "A12345",
    "create": {
      "new-mailbox": {
        "name": "Project Alpha",
        "parentId": null,
        "role": null
      }
    }
  }, "c1"],
  ["Metadata/set", {
    "accountId": "A12345",
    "create": {
      "new-metadata": {
        "@type": "Annotation",
        "parentType": "Mailbox",
        "parentId": "#new-mailbox",
        "isPrivate": true,
        "acme.example.com:color": "blue",
        "acme.example.com:priority": "high",
        "acme.example.com:project": {
          "@type": "acme.example.com:ProjectInfo",
          "projectId": "ALPHA-2024",
          "deadline": "2024-12-31",
          "team": "Engineering"
        }
      }
    }
  }, "c2"]
]
]]></sourcecode></figure>

</section>
<section anchor="retrieving-a-mailbox-with-metadata"><name>Retrieving a Mailbox with Metadata</name>

<t>This example shows how to retrieve the created mailbox along with its associated Annotation metadata in a single request using the extended /get method:</t>

<t>Request:</t>

<figure><sourcecode type="json"><![CDATA[
[
  ["Mailbox/get", {
    "accountId": "A12345",
    "ids": ["MB789"],
    "properties": ["name", "parentId", "role"],
    "metadataTypes": ["Annotation"],
    "metadataProperties": ["acme.example.com:color", 
                           "acme.example.com:priority"]
  }, "c3"]
]
]]></sourcecode></figure>

<t>Response:</t>

<figure><sourcecode type="json"><![CDATA[
[
  ["Mailbox/get", {
    "accountId": "A12345",
    "state": "m101",
    "list": [
      {
        "id": "MB789",
        "name": "Project Alpha",
        "parentId": null,
        "role": null
      }
    ],
    "metadata": [
      {
        "parentId": "MB789",
        "@type": "Annotation",
        "acme.example.com:color": "blue",
        "acme.example.com:priority": "high"
      }
    ],
    "notFound": []
  }, "c3"]
]
]]></sourcecode></figure>

</section>
<section anchor="attaching-photography-metadata-to-a-filenode"><name>Attaching Photography Metadata to a FileNode</name>

<t>This example demonstrates using a <em>fictional</em> registered PhotoMetadata type to attach photography information to FileNode <xref target="I-D.ietf-jmap-filenode"/> objects. The PhotoMetadata type is assumed to be an IANA-registered metadata type specifically designed for photographic data.</t>

<t>Request:</t>

<figure><sourcecode type="json"><![CDATA[
[
  ["FileNode/set", {
    "accountId": "A12345",
    "update": {
      "F456": {
        "name": "lake-island.jpg"
      }
    }
  }, "c1"],
  ["Metadata/set", {
    "accountId": "A12345",
    "create": {
      "photo-meta": {
        "@type": "PhotoMetadata",
        "parentType": "FileNode",
        "parentId": "F456",
        "isPrivate": false,
        "geoLocation": {
          "latitude": 46.362,
          "longitude": 14.090
        },
        "cameraMake": "Canon",
        "cameraModel": "EOS R5",
        "aperture": "f/2.8",
        "shutterSpeed": "1/250",
        "iso": 400,
        "focalLength": "50mm",
        "dateTaken": "2023-10-01T01:14:00Z",
        "imageSize": {
          "width": 6000,
          "height": 4000
        }
      }
    }
  }, "c2"]
]
]]></sourcecode></figure>

</section>
<section anchor="retrieving-a-filenode-with-photography-metadata"><name>Retrieving a FileNode with Photography Metadata</name>

<t>Request:</t>

<figure><sourcecode type="json"><![CDATA[
[
  ["FileNode/get", {
    "accountId": "A12345",
    "ids": ["F456"],
    "metadataTypes": ["PhotoMetadata"],
    "metadataProperties": null
  }, "c3"]
]
]]></sourcecode></figure>

<t>Response:</t>

<figure><sourcecode type="json"><![CDATA[
[
  ["FileNode/get", {
    "accountId": "A12345",
    "state": "f201",
    "list": [
      {
        "id": "F456",
        "name": "lake-island.jpg",
        "type": "image/jpeg",
        "size": 2458624,
        "blobId": "Gabc123def456",
        "parentId": "folder789",
        "createdDate": "2024-07-15T20:00:00Z",
        "modifiedDate": "2024-10-20T15:30:00Z"
      }
    ],
    "metadata": [
      {
        "id": "photometa99",
        "@type": "PhotoMetadata",
        "parentId": "F456",
        "geoLocation": {
          "latitude": 46.362,
          "longitude": 14.090
        },
        "cameraMake": "Canon",
        "cameraModel": "EOS R5",
        "aperture": "f/2.8",
        "shutterSpeed": "1/250",
        "iso": 400,
        "focalLength": "50mm",
        "dateTaken": "2023-10-01T01:14:00Z",
        "imageSize": {
          "width": 6000,
          "height": 4000
        }
      }
    ],
    "notFound": []
  }, "c3"]
]
]]></sourcecode></figure>

</section>
</section>
<section anchor="security-considerations"><name>Security considerations</name>

<t>The metadata management capabilities defined in this specification introduce several security considerations that implementers and deployers must address to protect user data and prevent abuse.</t>

<section anchor="metadata-confidentiality"><name>Metadata Confidentiality</name>

<t>Metadata objects may contain sensitive information, including personal notes, workflow states, application-specific data, and other user-generated content. Servers <bcp14>MUST</bcp14> enforce the access control mechanisms defined in <xref target="access-control">Access Control</xref> to prevent unauthorized disclosure of metadata.</t>

<t>Private metadata (<spanx style="verb">isPrivate</spanx>: true) contains information intended only for the authenticated user who created it. Servers <bcp14>MUST</bcp14> ensure that private metadata is never exposed to other users through any interface, including JMAP, IMAP, WebDAV, or any other supported protocols. Each user's private metadata must remain isolated from all other users, even those who have full access to the parent object.</t>

<t>The per-user nature of private metadata introduces important implementation considerations. Since multiple users may each have their own private Metadata objects for the same parent object and metadata type, servers must carefully track which user created each private Metadata object. When processing queries or retrieval requests, servers <bcp14>MUST</bcp14> filter results to include only the private metadata belonging to the currently authenticated user. Failure to properly implement this filtering could result in serious privacy breaches where one user's private notes or annotations are exposed to other users.</t>

<t>Shared metadata visibility is tied to the permissions of the parent object. Servers <bcp14>MUST</bcp14> consistently enforce these permissions across all access methods. When sharing permissions on a parent object change, the visibility of associated shared metadata <bcp14>MUST</bcp14> change accordingly. Servers should be cautious about caching metadata in ways that could bypass updated permission checks.</t>

<t>For servers that bridge JMAP metadata to IMAP METADATA or WebDAV properties, special care must be taken to ensure that the visibility and access control semantics are correctly mapped between protocols. IMAP private metadata (entries under "/private/") must map to JMAP private metadata for the authenticated user. Access control on WebDAV properties must align with JMAP shared metadata permissions. Servers must ensure that the per-user isolation model is maintained when metadata is accessed through different protocol interfaces.</t>

</section>
<section anchor="user-identity-and-authentication"><name>User Identity and Authentication</name>

<t>The private metadata model relies critically on accurate user authentication and identity management. Servers <bcp14>MUST</bcp14>:</t>

<t><list style="symbols">
  <t>Reliably identify the authenticated user for all metadata operations</t>
  <t>Maintain accurate association between private Metadata objects and their creating users</t>
  <t>Prevent authentication bypass or identity spoofing that could allow access to other users' private metadata</t>
  <t>Handle account delegation or administrative access carefully to ensure private metadata is not inadvertently exposed (administrators accessing an account on behalf of a user should not see other users' private metadata on shared objects)</t>
</list></t>

<t>Servers that support account delegation, impersonation, or administrative access features must carefully consider whether delegated access should include visibility into the account owner's private metadata, and should provide controls to limit such access when appropriate.</t>

</section>
<section anchor="injection-attacks-through-vendor-specific-properties"><name>Injection Attacks Through Vendor-Specific Properties</name>

<t>The extensibility mechanism that allows vendor-specific properties introduces potential security risks if not properly handled. Malicious clients could attempt to inject harmful content through vendor-specific properties, including:</t>

<t><list style="symbols">
  <t>Script injection: Embedding executable code in metadata properties that might be rendered in a web context without proper sanitization</t>
  <t>XML/JSON injection: Crafting property values that could break parsing or processing logic</t>
  <t>Path traversal: Using specially crafted property names to attempt unauthorized file system access</t>
  <t>SQL injection: If metadata is stored in SQL databases, unsanitized property values could lead to SQL injection vulnerabilities</t>
</list></t>

<t>Servers <bcp14>MUST</bcp14> treat all vendor-specific property values as untrusted user input. When storing, processing, or displaying metadata, servers and clients <bcp14>MUST</bcp14>:</t>

<t><list style="symbols">
  <t>Validate property names conform to the specified format (domain-name prefix followed by colon and property name)</t>
  <t>Sanitize property values before use in any context where interpretation could occur (HTML rendering, script execution, database queries, etc.)</t>
  <t>Apply appropriate output encoding when displaying metadata to users</t>
  <t>Enforce length limits on property names and values to prevent resource exhaustion</t>
  <t>Reject or sanitize properties containing control characters or other potentially harmful content</t>
</list></t>

<t>For WebDavMetadata objects, special attention must be paid to the serialized XML content in property values. Servers <bcp14>MUST</bcp14>:</t>

<t><list style="symbols">
  <t>Validate that XML content is well-formed before storage</t>
  <t>Sanitize XML to remove potentially harmful constructs (scripts, entity expansions, external entity references)</t>
  <t>Apply appropriate XML entity encoding when processing or displaying the content</t>
  <t>Implement protections against XML external entity (XXE) attacks and XML bomb attacks</t>
</list></t>

<t>Clients that display metadata to users <bcp14>MUST</bcp14> treat metadata content as untrusted and apply appropriate security measures, such as Content Security Policy restrictions, HTML sanitization, and context-appropriate escaping.</t>

</section>
<section anchor="resource-exhaustion-and-denial-of-service"><name>Resource Exhaustion and Denial of Service</name>

<t>Without proper controls, metadata management features could be abused to cause resource exhaustion or denial of service:</t>

<t><list style="symbols">
  <t>Storage exhaustion: Attackers could create excessive metadata to consume storage quota or server resources. The per-user private metadata model amplifies this risk since multiple users could each create private metadata on the same shared objects.</t>
  <t>Processing exhaustion: Complex nested vendor-specific properties or deeply nested object structures could consume excessive CPU or memory during processing</t>
  <t>Query complexity: Expensive metadata queries, particularly those involving private metadata filtering across many users, could strain server resources</t>
</list></t>

<t>Servers <bcp14>SHOULD</bcp14> implement the quota mechanisms described in <xref target="quota"></xref> to limit total metadata storage per account. Additionally, servers <bcp14>SHOULD</bcp14>:</t>

<t><list style="symbols">
  <t>Enforce the maxDepth limit on nested vendor-specific properties</t>
  <t>Implement timeouts for metadata operations to prevent long-running queries</t>
  <t>Apply rate limiting to metadata creation and modification operations</t>
  <t>Monitor for unusual patterns of metadata usage that might indicate abuse (e.g., one user creating private metadata on unusually large numbers of objects)</t>
  <t>Implement reasonable limits on the size of individual property values</t>
  <t>Consider implementing separate quota tracking for private vs. shared metadata to prevent abuse</t>
</list></t>

<t>Servers <bcp14>MAY</bcp14> reject metadata creation or updates that appear abusive, returning appropriate SetError responses.</t>

</section>
<section anchor="protocol-bridging-risks"><name>Protocol Bridging Risks</name>

<t>For servers that bridge JMAP metadata to IMAP METADATA or WebDAV properties, inconsistencies or vulnerabilities in the bridging logic could lead to security issues:</t>

<t><list style="symbols">
  <t>Permission bypass: Differences in permission models between protocols could be exploited to gain unauthorized access. For example, IMAP and WebDAV may have different concepts of private vs. shared metadata that must be carefully reconciled.</t>
  <t>Metadata corruption: Improper format conversion could corrupt metadata or enable injection attacks. Special care is needed when converting between JMAP's JSON representation, IMAP's string values, and WebDAV's XML properties.</t>
  <t>Information leakage: Protocol-specific metadata might inadvertently be exposed through the bridging mechanism. For instance, internal IMAP server entries or WebDAV live properties should not be exposed as JMAP metadata.</t>
  <t>Synchronization inconsistencies: Race conditions or improper locking when synchronizing metadata across protocol boundaries could lead to data corruption or access control violations.</t>
</list></t>

<t>Servers that implement protocol bridging <bcp14>MUST</bcp14> carefully validate the security properties of their bridging implementation and ensure that the most restrictive applicable access control is enforced. The per-user isolation model for private metadata must be maintained consistently across all protocol interfaces.</t>

<t>For read-only ImapMetadata and WebDavMetadata access, servers should clearly document this limitation to prevent client confusion and ensure that clients do not assume modification capabilities that are not actually available.</t>

</section>
<section anchor="server-vulnerabilities"><name>Server Vulnerabilities</name>

<t>Implementations must be robust against malformed requests and unexpected data. Servers <bcp14>MUST</bcp14>:</t>

<t><list style="symbols">
  <t>Validate all input according to the type specifications in this document</t>
  <t>Handle JSON/XML parsing errors gracefully without exposing server internals</t>
  <t>Protect against integer overflow, buffer overflow, and other common vulnerabilities when processing metadata</t>
  <t>Properly handle the per-user filtering of private metadata to prevent information leakage</t>
  <t>Implement proper database indexing and query optimization to handle private metadata filtering efficiently even with large numbers of users and objects</t>
  <t>Log security-relevant events (authentication failures, authorization failures, suspicious patterns, attempts to access other users' private metadata) for monitoring and incident response</t>
</list></t>

</section>
<section anchor="client-vulnerabilities"><name>Client Vulnerabilities</name>

<t>Clients that implement metadata management must also consider security:</t>

<t><list style="symbols">
  <t>Clients <bcp14>MUST</bcp14> validate server responses and handle unexpected or malformed data gracefully</t>
  <t>Clients <bcp14>SHOULD</bcp14> warn users before displaying potentially sensitive metadata, particularly when displaying shared metadata that might have been created by other users</t>
  <t>Clients <bcp14>MUST NOT</bcp14> execute or interpret metadata content as code unless the user explicitly requests it and appropriate sandboxing is in place</t>
  <t>Clients accessing metadata through web browsers should utilize security features such as Content Security Policy</t>
  <t>Clients should clearly distinguish between private and shared metadata in the user interface to prevent users from inadvertently sharing private information</t>
  <t>When parsing XML content from WebDavMetadata properties, clients must use secure XML parsers and disable dangerous features like external entity resolution</t>
</list></t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA considerations</name>

<section anchor="jmap-capability-registration-for-metadata"><name>JMAP Capability Registration for "metadata"</name>

<t>IANA will register the "metadata" JMAP Capability as follows:</t>

<t><strong>Capability Name:</strong> urn:ietf:params:jmap:metadata<br />
<strong>Specification document:</strong> this document<br />
<strong>Intended use:</strong> common<br />
<strong>Change Controller:</strong> IETF<br />
<strong>Security and privacy considerations:</strong> this document, <xref target="security-considerations"></xref></t>

</section>
<section anchor="jmap-data-type-registration-for-metadata"><name>JMAP Data Type Registration for "Metadata"</name>

<t>IANA will register "Metadata" in the "JMAP Data Types" registry as follows:</t>

<t><strong>Type Name:</strong> Metadata<br />
<strong>Can reference blobs:</strong> no<br />
<strong>Can Use for State Change:</strong> yes<br />
<strong>Capability:</strong> urn:ietf:params:jmap:metadata<br />
<strong>Specification document:</strong> this document</t>

</section>
<section anchor="properties-registry"><name>Creation of the "JMAP Metadata Properties" Registry</name>

<t>IANA has created the "JMAP Metadata Properties" registry to allow interoperability of extensions to JMAP Metadata objects.</t>

<t>This registry follows the Expert Review process (<xref section="4.5" sectionFormat="comma" target="RFC8126"/>). If the "Intended Usage" field is common, sufficient documentation is required to enable interoperability. Preliminary community review for this registry is optional but strongly encouraged.</t>

<t>A registration can have an intended usage of common, reserved, or obsolete. IANA will list registrations with a common usage designation prominently and separately from those with other intended usage values.</t>

<t>A reserved registration reserves a property name without assigning semantics to avoid name collisions with future extensions or protocol use.</t>

<t>An obsolete registration denotes a property that is no longer expected to be added by up-to-date systems. A new property has probably been defined covering the obsolete property's semantics.</t>

<t>The JMAP Metadata property registration procedure is not a formal standards process but rather an administrative procedure intended to allow community comment and check it is coherent without excessive time delay. It is designed to encourage vendors to document and register new properties they add for use cases not covered by the original specification, leading to increased interoperability</t>

<section anchor="preliminary-community-review"><name>Preliminary Community Review</name>

<t>Notice of a potential new registration <bcp14>SHOULD</bcp14> be sent to the JMAP mailing list <eref target="mailto:jmap@ietf.org">jmap@ietf.org</eref> for review. This mailing list is appropriate to solicit community feedback on a proposed new property.</t>

<t>Property registrations must be marked with their intended use: "common", "reserved", or "obsolete".</t>

<t>The intent of the public posting to this list is to solicit comments and feedback on the choice of the property name, the unambiguity of the specification document, and a review of any interoperability or security considerations. The submitter may submit a revised registration proposal or abandon the registration completely at any time.</t>

</section>
<section anchor="change-procedures"><name>Change Procedures</name>

<t>Once a JMAP Metadata property has been published by 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.</t>

<t>JMAP Metadata property registrations may not be deleted; properties that are no longer believed appropriate for use can be declared obsolete by a change to their "intended usage" field; such properties will be clearly marked in the IANA registry.</t>

<t>Significant changes to a JMAP Metadata property's definition should be requested only when there are serious omissions or errors in the published specification, as such changes may cause interoperability issues. 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.</t>

<t>The owner of a JMAP Metadata property may pass responsibility to another person or agency by informing IANA; this can be done without discussion or review.</t>

</section>
<section anchor="jmap-metadata-properties-registry-template"><name>"JMAP Metadata Properties" Registry Template</name>

<dl newline="true">
  <dt><strong>Property Name</strong>:</dt>
  <dd>
    <t>This is the name of the property. The property name <bcp14>MUST NOT</bcp14> already be registered for any of the object types listed in the "Property Context" field of this registration. Other object types <bcp14>MAY</bcp14> already have registered a different property with the same name; however, the same name <bcp14>SHOULD</bcp14> only be used when the semantics are analogous.</t>
  </dd>
  <dt><strong>Property Type</strong>:</dt>
  <dd>
    <t>This is the type of this property, using type signatures, as specified in <xref target="type-property"></xref>. The property type <bcp14>MUST</bcp14> be registered in the "JMAP Metadata Types" registry.</t>
  </dd>
  <dt><strong>Property Context</strong>:</dt>
  <dd>
    <t>This is a comma-separated list of JMAP Metadata object types this property is allowed on.</t>
  </dd>
  <dt><strong>Reference or Description</strong>:</dt>
  <dd>
    <t>This is a brief description or RFC number and section reference where the property is specified (omitted for "reserved" property names).</t>
  </dd>
  <dt><strong>Intended Usage</strong>:</dt>
  <dd>
    <t>This may be "common", "reserved", or "obsolete".</t>
  </dd>
  <dt><strong>Change Controller</strong>:</dt>
  <dd>
    <t>This is who may request a change to this entry's definition (IETF for RFCs from the IETF stream).</t>
  </dd>
</dl>

</section>
<section anchor="submit-request-to-iana"><name>Submit Request to IANA</name>

<t>Registration requests can be sent to <eref target="mailto:iana@iana.org">iana@iana.org</eref>.</t>

</section>
<section anchor="designated-expert-review"><name>Designated Expert Review</name>

<t>The primary concern of the designated expert (DE) is preventing name collisions and encouraging the submitter to document security and privacy considerations. For a common-use registration, the DE is expected to confirm that suitable documentation, as described in <xref section="4.6" sectionFormat="of" target="RFC8126"/>, is available to ensure interoperability. That documentation will usually be in an RFC, but simple definitions are likely to use a web/wiki page, and if a sentence or two is deemed sufficient, it could be described in the registry itself. The DE should also verify that the property name does not conflict with work that is active or already published within the IETF. A published specification is not required for reserved or obsolete registrations.</t>

<t>The DE will either approve or deny the registration request and publish a notice of the decision to the JMAP WG mailing list or its successor, as well as inform IANA. A denial notice must be justified by an explanation, and, in the cases where it is possible, concrete suggestions on how the request can be modified so as to become acceptable should be provided.</t>

</section>
<section anchor="initial-contents-for-the-jmap-metadata-properties-registry"><name>Initial Contents for the "JMAP Metadata Properties" Registry</name>

<t>The following table lists the initial entries of the "JMAP Metadata Properties" registry. All properties are for common use. All RFC section references are for this document. The change controller for all these properties is "IETF".</t>

<texttable title="Initial Contents of the &quot;JMAP Metadata Properties&quot; Registry" anchor="tab-metadata-properties">
      <ttcol align='left'>Property Name</ttcol>
      <ttcol align='left'>Property Type</ttcol>
      <ttcol align='left'>Property Context</ttcol>
      <ttcol align='left'>Reference or Description</ttcol>
      <c>@type</c>
      <c>String</c>
      <c>Annotation, ImapMetadata, WebDavMetadata</c>
      <c><xref target="type-property"></xref></c>
      <c>id</c>
      <c>Id</c>
      <c>Annotation, ImapMetadata, WebDavMetadata</c>
      <c><xref target="id-property"></xref></c>
      <c>parentType</c>
      <c>String</c>
      <c>Annotation, ImapMetadata, WebDavMetadata</c>
      <c><xref target="parent-type-property"></xref></c>
      <c>parentId</c>
      <c>Id</c>
      <c>Annotation, ImapMetadata, WebDavMetadata</c>
      <c><xref target="parent-id-property"></xref></c>
      <c>isPrivate</c>
      <c>Boolean</c>
      <c>Annotation, ImapMetadata, WebDavMetadata</c>
      <c><xref target="is-private-property"></xref></c>
      <c>metadata</c>
      <c>[String]String</c>
      <c>ImapMetadata, WebDavMetadata</c>
      <c><xref target="metadata-property-imap"></xref>, <xref target="metadata-property-webdav"></xref></c>
</texttable>

</section>
</section>
<section anchor="creation-of-the-jmap-metadata-types-registry"><name>Creation of the "JMAP Metadata Types" Registry</name>

<t>IANA has created the "JMAP Metadata Types" registry to avoid name collisions and provide a complete reference for all metadata types used for JMAP Metadata property values. The registration process is the same as for the "JMAP Metadata Properties" registry, as defined in <xref target="properties-registry"></xref>.</t>

<section anchor="jmap-metadata-types-registry-template"><name>"JMAP Metadata Types" Registry Template</name>

<dl newline="true">
  <dt><strong>Type Name</strong>:</dt>
  <dd>
    <t>the name of the type</t>
  </dd>
  <dt><strong>Applicable Data Types</strong>:</dt>
  <dd>
    <t>a list of JMAP data type names that this metadata type can be associated with, or "any" if the metadata type can be associated with any JMAP data type</t>
  </dd>
  <dt><strong>Reference or Description</strong>:</dt>
  <dd>
    <t>a brief description or RFC number and section reference where the Type is specified (may be omitted for "reserved" type names)</t>
  </dd>
  <dt><strong>Intended Use</strong>:</dt>
  <dd>
    <t>common, reserved, or obsolete</t>
  </dd>
  <dt><strong>Change Controller</strong>:</dt>
  <dd>
    <t>who may request a change to this entry's definition (IETF for RFCs from the IETF stream)</t>
  </dd>
</dl>

</section>
<section anchor="initial-contents-for-the-jmap-metadata-types-registry"><name>Initial Contents for the "JMAP Metadata Types" Registry</name>

<t>The following table lists the initial entries of the JMAP Metadata Types registry. All properties are for common use. All RFC section references are for this document. The change controller for all these properties is "IETF".</t>

<texttable title="Initial Contents of the &quot;JMAP Metadata Types&quot; Registry" anchor="tab-metadata-types">
      <ttcol align='left'>Type Name</ttcol>
      <ttcol align='left'>Applicable Data Types</ttcol>
      <ttcol align='left'>Reference or Description</ttcol>
      <c>Annotation</c>
      <c>any</c>
      <c><xref target="object-type-annotation"></xref></c>
      <c>ImapMetadata</c>
      <c>Mailbox</c>
      <c><xref target="object-type-imap"></xref></c>
      <c>WebDavMetadata</c>
      <c>Calendar, CalendarEvent, AddressBook, ContactCard, FileNode</c>
      <c><xref target="object-type-webdav"></xref></c>
</texttable>

</section>
</section>
</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC8620">
  <front>
    <title>The JSON Meta Application Protocol (JMAP)</title>
    <author fullname="N. Jenkins" initials="N." surname="Jenkins"/>
    <author fullname="C. Newman" initials="C." surname="Newman"/>
    <date month="July" year="2019"/>
    <abstract>
      <t>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 for out-of- band binary data upload/download.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8620"/>
  <seriesInfo name="DOI" value="10.17487/RFC8620"/>
</reference>

<reference anchor="RFC8126">
  <front>
    <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
    <author fullname="M. Cotton" initials="M." surname="Cotton"/>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <author fullname="T. Narten" initials="T." surname="Narten"/>
    <date month="June" year="2017"/>
    <abstract>
      <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
      <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
      <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="26"/>
  <seriesInfo name="RFC" value="8126"/>
  <seriesInfo name="DOI" value="10.17487/RFC8126"/>
</reference>

<reference anchor="RFC5464">
  <front>
    <title>The IMAP METADATA Extension</title>
    <author fullname="C. Daboo" initials="C." surname="Daboo"/>
    <date month="February" year="2009"/>
    <abstract>
      <t>The METADATA extension to the Internet Message Access Protocol permits clients and servers to maintain "annotations" or "metadata" on IMAP servers. It is possible to have annotations on a per-mailbox basis or on the server as a whole. For example, this would allow comments about the purpose of a particular mailbox to be "attached" to that mailbox, or a "message of the day" containing server status information to be made available to anyone logging in to the server. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5464"/>
  <seriesInfo name="DOI" value="10.17487/RFC5464"/>
</reference>

<reference anchor="RFC4918">
  <front>
    <title>HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)</title>
    <author fullname="L. Dusseault" initials="L." role="editor" surname="Dusseault"/>
    <date month="June" year="2007"/>
    <abstract>
      <t>Web Distributed Authoring and Versioning (WebDAV) consists of a set of methods, headers, and content-types ancillary to HTTP/1.1 for the management of resource properties, creation and management of resource collections, URL namespace manipulation, and resource locking (collision avoidance).</t>
      <t>RFC 2518 was published in February 1999, and this specification obsoletes RFC 2518 with minor revisions mostly due to interoperability experience. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4918"/>
  <seriesInfo name="DOI" value="10.17487/RFC4918"/>
</reference>

<reference anchor="RFC9670">
  <front>
    <title>JSON Meta Application Protocol (JMAP) Sharing</title>
    <author fullname="N. Jenkins" initials="N." role="editor" surname="Jenkins"/>
    <date month="November" year="2024"/>
    <abstract>
      <t>This document specifies a data model for sharing data between users using the JSON Meta Application Protocol (JMAP). Future documents can reference this document when defining data types to support a consistent model of sharing.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9670"/>
  <seriesInfo name="DOI" value="10.17487/RFC9670"/>
</reference>

<reference anchor="RFC9610">
  <front>
    <title>JSON Meta Application Protocol (JMAP) for Contacts</title>
    <author fullname="N. Jenkins" initials="N." role="editor" surname="Jenkins"/>
    <date month="December" year="2024"/>
    <abstract>
      <t>This document specifies a data model for synchronising contact data with a server using the JSON Meta Application Protocol (JMAP).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9610"/>
  <seriesInfo name="DOI" value="10.17487/RFC9610"/>
</reference>


<reference anchor="I-D.ietf-jmap-filenode">
   <front>
      <title>JMAP File Storage extension</title>
      <author fullname="Bron Gondwana" initials="B." surname="Gondwana">
         <organization>Fastmail</organization>
      </author>
      <date day="17" month="October" year="2025"/>
      <abstract>
	 <t>   The JMAP base protocol (RFC8620) provides the ability to upload and
   download arbitrary binary data.  This binary data is called a &quot;blob&quot;,
   and can be used in all other JMAP extensions.

   This extension adds a method to expose blobs as a filesystem along
   with the types of metadata that are provided by other remote
   filesystem protocols.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-jmap-filenode-03"/>
   
</reference>


<reference anchor="I-D.ietf-jmap-calendars">
   <front>
      <title>JSON Meta Application Protocol (JMAP) for Calendars</title>
      <author fullname="Neil Jenkins" initials="N." surname="Jenkins">
         <organization>Fastmail</organization>
      </author>
      <author fullname="Michael Douglass" initials="M." surname="Douglass">
         <organization>Spherical Cow Group</organization>
      </author>
      <date day="4" month="November" year="2025"/>
      <abstract>
	 <t>   This document specifies a data model for synchronizing calendar data
   with a server using JMAP.  Clients can use this to efficiently read,
   write, and share calendars and events, receive push notifications for
   changes or event reminders, and keep track of changes made by others
   in a multi-user environment.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-jmap-calendars-26"/>
   
</reference>

<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>

<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>




    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC8949">
  <front>
    <title>Concise Binary Object Representation (CBOR)</title>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
    <date month="December" year="2020"/>
    <abstract>
      <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
      <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="94"/>
  <seriesInfo name="RFC" value="8949"/>
  <seriesInfo name="DOI" value="10.17487/RFC8949"/>
</reference>

<reference anchor="RFC3501">
  <front>
    <title>INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1</title>
    <author fullname="M. Crispin" initials="M." surname="Crispin"/>
    <date month="March" year="2003"/>
    <abstract>
      <t>The Internet Message Access Protocol, Version 4rev1 (IMAP4rev1) allows a client to access and manipulate electronic mail messages on a server. IMAP4rev1 permits manipulation of mailboxes (remote message folders) in a way that is functionally equivalent to local folders. IMAP4rev1 also provides the capability for an offline client to resynchronize with the server. IMAP4rev1 includes operations for creating, deleting, and renaming mailboxes, checking for new messages, permanently removing messages, setting and clearing flags, RFC 2822 and RFC 2045 parsing, searching, and selective fetching of message attributes, texts, and portions thereof. Messages in IMAP4rev1 are accessed by the use of numbers. These numbers are either message sequence numbers or unique identifiers. IMAP4rev1 supports a single server. A mechanism for accessing configuration information to support multiple IMAP4rev1 servers is discussed in RFC 2244. IMAP4rev1 does not specify a means of posting mail; this function is handled by a mail transfer protocol such as RFC 2821. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3501"/>
  <seriesInfo name="DOI" value="10.17487/RFC3501"/>
</reference>

<reference anchor="RFC8621">
  <front>
    <title>The JSON Meta Application Protocol (JMAP) for Mail</title>
    <author fullname="N. Jenkins" initials="N." surname="Jenkins"/>
    <author fullname="C. Newman" initials="C." surname="Newman"/>
    <date month="August" year="2019"/>
    <abstract>
      <t>This document specifies a data model for synchronising email data with a server using the JSON Meta Application Protocol (JMAP). Clients can use this to efficiently search, access, organise, and send messages, and to get push notifications for fast resynchronisation when new messages are delivered or a change is made in another client.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8621"/>
  <seriesInfo name="DOI" value="10.17487/RFC8621"/>
</reference>

<reference anchor="RFC4791">
  <front>
    <title>Calendaring Extensions to WebDAV (CalDAV)</title>
    <author fullname="C. Daboo" initials="C." surname="Daboo"/>
    <author fullname="B. Desruisseaux" initials="B." surname="Desruisseaux"/>
    <author fullname="L. Dusseault" initials="L." surname="Dusseault"/>
    <date month="March" year="2007"/>
    <abstract>
      <t>This document defines extensions to the Web Distributed Authoring and Versioning (WebDAV) protocol to specify a standard way of accessing, managing, and sharing calendaring and scheduling information based on the iCalendar format. This document defines the "calendar-access" feature of CalDAV. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4791"/>
  <seriesInfo name="DOI" value="10.17487/RFC4791"/>
</reference>

<reference anchor="RFC6352">
  <front>
    <title>CardDAV: vCard Extensions to Web Distributed Authoring and Versioning (WebDAV)</title>
    <author fullname="C. Daboo" initials="C." surname="Daboo"/>
    <date month="August" year="2011"/>
    <abstract>
      <t>This document defines extensions to the Web Distributed Authoring and Versioning (WebDAV) protocol to specify a standard way of accessing, managing, and sharing contact information based on the vCard format. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6352"/>
  <seriesInfo name="DOI" value="10.17487/RFC6352"/>
</reference>

<reference anchor="RFC9425">
  <front>
    <title>JSON Meta Application Protocol (JMAP) for Quotas</title>
    <author fullname="R. Cordier" initials="R." role="editor" surname="Cordier"/>
    <date month="June" year="2023"/>
    <abstract>
      <t>This document specifies a data model for handling quotas on accounts with a server using the JSON Meta Application Protocol (JMAP).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9425"/>
  <seriesInfo name="DOI" value="10.17487/RFC9425"/>
</reference>




    </references>

</references>


<?line 853?>

<section anchor="changes"><name>Changes</name>

<t>[[This section to be removed by RFC Editor]]</t>

<t><strong>draft-ietf-jmap-metadata-00</strong></t>

<t><list style="symbols">
  <t>Initial version</t>
</list></t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAOWnKmkAA+1923IbR5bgO76iFnowqQUoUpZkC/b2NE3J05yQLLVE9WVl
xaqAKpBlAVXoqgIpjqyJ+Yh53I3Yb9lPmS/Zc808mVUFUbZ7YjZiOzq6KaCQ
lXny3K/T6XTUFu0qnyX/9PT4efJs/lO+aJOneZtmaZuO0vm8zi8HvsyqRZmu
4adZnS7baZG3y+lP63QzXcsT08PDUbOdr4umKary7HoDz54+Pvt+tEjb/Lyq
r2dJ02aj7QYezptZMqrmTbXK8e9RsalnSVtvm/bu4eHDw7ujd/n1VVVnsELZ
5nWZt9NH+NpR06Zl9j/SVVXC6td5M4Kn3p3X1XbD2x5tilnyuq0Wk6Sp6rbO
lw38db3GP96MRum2vajq2SiZjhL4T1HCPp4eJI/y5B/zskzrij7mcz5Nt3UV
f1XV57PkZZuurtK6TZ6k8yZ58uSEvlLoBd/SNw3sI29nydGXhw+Tk2q5zPMy
Ob7My20+SV5uizZPjuDc9OyiaAFQLy/yusjSkj6q83MA6Cz581/5iSqD3X19
9+vDI/n3tmwRuq9eHtMH+TotVrNkjfv/fYO7OYDt0FfbGsBz0babZnbnjv9q
VFb1Om2LyxxAk7z4/uTrB3cPZ/qHfHR098FM/+CP7t97cG+mf/BH9x4efT3T
P/ijhw++4rXwD/3oSD86wo9Op48OPEIti1Ve0iE7Xy1S+CpLa0SfUVEu420/
vPdwpn/wR1/ePzya6R/ucEd6OPno3lcP+SP8gz968OX9uzP9Q7Z97+79mf4x
Gk2nU7h0uNx0ASA8uyiaBIhku87LNsnyZVHmTZImZX6V5O/bvESqSNoqaS/y
5J9ePvuBSCs53mxWBVAIfvm8rgBzq1Wyh6i8D0+mLeBoW1fZdkGLEfqndVb8
c54l63xxkZZFs04ADnDdZXpelOeJ0mOSNk21KIDYsuSqaC+YrCsi6+YgOcNt
9BC62Wy6WlVXTbJYFXAkeH2ZJU1eX+Z1g+do2qoG/K3zti7yS/iLvr8uFxd1
VcIGk7SeFwCc+tpsCR5Jy7Jq6cBNgi8pr3kf9EALbAOODEddwPdF0yIw4Whl
Xh8kpxau5zl8VizMcskakGYFx06u8hX9f7PJF8USHgLc2QBsGoJUugBgNgiq
U3xvsLk/5/NHx39K/v1f/2eWp1myqatNXrdF3vz7v/6v5AqoEo7FNzZf5QhE
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
Kys9+Bn2DMDWWoT2Pdxk6PgqqZsLojLm4z1sG4nVudNMwskG1wezbXVtMohM
GPQ/SmkKX/vbqU0u5elmilNvuQ3rSL0JTl4VMkdGlgSGpl5NT3bSQfKqXBXv
gHRWxWUeLMrxJONfb/J1ih7OJnF1j0E0cNKb9UPIq5gp9evw8Byk8top1Gp8
BCK7PyErDLRh2pDLISLeEiUQ3Sh/6HNVp6Ekpx7dSSFtlCf1UQmt92Uf7c41
inQGt216aXjUMXZsm90J5HIp7N4DIBkDewJW1F6rkKQMApOb5EABG+td8qNb
wZbNe91NuJZbVLt4seIVQZKP2Em2k3L2huz3BHshcU+kUjwyUn+odrr5fveC
WFWwyt8TMpmS3Fp/nWh5EprVc8wQALu/jdO3qJ8Ob40Pazeldy7UonV7+MYQ
JAoRvdQvGn+GM/NjflgkoPNd4C/DU/geQ9pfaoKx4LoA3p9LGZFDGWyjtaV8
B0ltyt+TN49vHwg1Nzlxsp66CvcaeFUeuvIIt6hICHObQngJ9gNK7YsL3aB0
bwoMZthftFp0OqhawVmBIf/Lv/xL8lNTlaMPo+TTOAv0dgGLjyc7HuZ6lzz7
jh6HO1jkvzePyG+BL8w+ZkWzWaXXRK7wLIgu2v8j8X01O98j2EgpNdTHEP4z
/rZo8/XvvsUVf3eWN+23d+jPbwm7fnd098tv7/Cf396hJ8ejjwgCYWxGTVwC
NxrgX7OEK2u5iqlLZNLzRR4I0czgNBMCUUCsGgZ46hlVxIyCqvhOFqXqZkGf
uE6DPPmZbyQU6WdaBuX7QC2uOZuMMydF8zPYpXoPAsAXnqzTd+ikNJEvkynJ
rjP/8J6pFgp7NnBDB0r98z0bNHhOkA7IXlJUxQ1aY5eiKSrB2KgQgaYMrZuC
2ilocbs7SE7U14IQwGJZyiqp6nda1+aqiPtTWzdp3QQsyKipPpO5VdOcynh1
zbAm/im3fKF8MpsCKuhc2NZlqOXnYNZwJirnJ5h+Rj7b+/5B1AQnrLnHVXQR
0W8aV9NLIRlEFVCxipIuUMwc22uymz0NcmcwcjwUMi5ql3zlovIqqXwoSNCt
PwXh8+PkQXj0rbGMNK9Q/KsGBoFXmqImLhj+iZwK06KhyfMw0DsUyd5zOR77
rL+Z3/THl8Pgs9vAYNA5yNDQDNBOYG7GWRvDr+XUFDKvXCj/F6UrSFsy5/uT
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

-->

</rfc>

