Skip to content

Metadata

Configures object metadata: JMAP metadata, WebDAV dead properties and IMAP annotations.

This object can be configured from the WebUI under Settings › Network › Metadata

Type: Set<MetadataDataType> · default: {"AddressBook":true,"Calendar":true,"CalendarEvent":true,"ContactCard":true,"Email":true,"FileNode":true,"Mailbox":true,"SieveScript":true}

JMAP data types that support the metadata and privateMetadata properties

Type: Boolean · default: true

Whether JMAP clients may store metadata under vendor (domain name) namespaces

Type: Boolean · default: true

Whether users may store private metadata that only they can see

Type: UnsignedInt? · default: 8 · min: 1

Maximum nesting depth of a JMAP metadata namespace value. Leave empty for no limit

Type: Size · default: 8192 · min: 1024

Maximum size of a single entry: a JMAP namespace value, a WebDAV dead property or an IMAP annotation

Type: Size · default: 65536 · min: 1024

Maximum size of the shared metadata of an object

Type: Size · default: 16384 · min: 1024

Maximum size of the private metadata a user stores on an object

Type: UnsignedInt · default: 128 · min: 10

Maximum number of entries in the metadata of an object

Type: UnsignedInt · default: 50000 · min: 1

Maximum number of annotated objects a JMAP query scans to evaluate a metadata text condition. Queries above this limit reject text conditions

Type: Text?

Comment returned to IMAP clients as the /shared/comment server annotation

Type: Uri?

URI for contacting the server administrator (for example mailto:[email protected]), returned to IMAP clients as the /shared/admin server annotation

The Metadata singleton is available via the urn:stalwart:jmap capability.

This is a standard Foo/get method as defined in RFC 8620, Section 5.1.

For singletons, the ids argument should be the literal singleton (or null to return the single instance).

This method requires the sysMetadataGet permission.

Terminal window
curl -X POST https://mail.example.com/jmap/ \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"methodCalls": [
[
"x:Metadata/get",
{
"ids": [
"singleton"
]
},
"c1"
]
],
"using": [
"urn:ietf:params:jmap:core",
"urn:stalwart:jmap"
]
}'

This is a standard Foo/set method as defined in RFC 8620, Section 5.3.

For singletons, only the update argument with id singleton is accepted; create and destroy arguments are rejected.

This method requires the sysMetadataUpdate permission.

Terminal window
curl -X POST https://mail.example.com/jmap/ \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"methodCalls": [
[
"x:Metadata/set",
{
"update": {
"singleton": {
"imapServerComment": "updated value"
}
}
},
"c1"
]
],
"using": [
"urn:ietf:params:jmap:core",
"urn:stalwart:jmap"
]
}'

stalwart-cli wraps the same JMAP calls. See the CLI reference for installation, authentication, and general usage.

Terminal window
stalwart-cli get Metadata
Terminal window
stalwart-cli update Metadata --field imapServerComment='updated value'
ValueLabel
EmailEmail
MailboxMailbox
SieveScriptSieve Script
CalendarCalendar
CalendarEventCalendar Event
AddressBookAddress Book
ContactCardContact Card
FileNodeFile Node