Jmap
Configures JMAP protocol limits for requests, uploads, and push notifications.
This object can be configured from the WebUI under Settings › Network › JMAP › Limits Settings › Network › JMAP › Push Settings › Network › JMAP › WebSocket
Fields
Section titled “Fields”parseLimitEvent
Section titled “parseLimitEvent”Type:
UnsignedInt· default:10· min: 1Limits the maximum number of iCalendar items that can be parsed in a single request
parseLimitContact
Section titled “parseLimitContact”Type:
UnsignedInt· default:10· min: 1Limits the maximum number of vCard items that can be parsed in a single request
parseLimitEmail
Section titled “parseLimitEmail”Type:
UnsignedInt· default:10· min: 1Limits the maximum number of e-mail message that can be parsed in a single request
changesMaxResults
Section titled “changesMaxResults”Type:
UnsignedInt· default:5000· min: 1Determines the maximum number of change objects that a Changes method can return
getMaxResults
Section titled “getMaxResults”Type:
UnsignedInt· default:500· min: 1Determines the maximum number of objects that can be fetched in a single method call
queryMaxResults
Section titled “queryMaxResults”Type:
UnsignedInt· default:5000· min: 1Sets the maximum number of results that a Query method can return
maxMethodCalls
Section titled “maxMethodCalls”Type:
UnsignedInt· default:16· min: 1Limits the maximum number of method calls that can be included in a single request
maxConcurrentRequests
Section titled “maxConcurrentRequests”Type:
UnsignedInt?· default:4· min: 1Restricts the number of concurrent requests a user can make to the JMAP server
maxRequestSize
Section titled “maxRequestSize”Type:
Size· default:10000000· min: 1Defines the maximum size of a single request, in bytes, that the server will accept
setMaxObjects
Section titled “setMaxObjects”Type:
UnsignedInt· default:500· min: 1Establishes the maximum number of objects that can be modified in a single method call
snippetMaxResults
Section titled “snippetMaxResults”Type:
UnsignedInt· default:100· min: 1Maximum number of search snippets to return in a single request
maxConcurrentUploads
Section titled “maxConcurrentUploads”Type:
UnsignedInt?· default:4· min: 1Restricts the number of concurrent file uploads a user can perform
maxUploadSize
Section titled “maxUploadSize”Type:
UnsignedInt· default:50000000· min: 1Defines the maximum file size for file uploads to the server
maxUploadCount
Section titled “maxUploadCount”Type:
UnsignedInt· default:1000· min: 1Specifies the maximum number of files that a user can upload within a certain period
uploadQuota
Section titled “uploadQuota”Type:
UnsignedInt· default:50000000· min: 1Defines the total size of files that a user can upload within a certain period
uploadTtl
Section titled “uploadTtl”Type:
Duration· default:"1h"Specifies the Time-To-Live (TTL) for each uploaded file, after which the file is deleted from temporary storage
eventSourceThrottle
Section titled “eventSourceThrottle”Type:
Duration· default:"1s"Specifies the minimum time between two event source notifications
pushAttemptWait
Section titled “pushAttemptWait”Type:
Duration· default:"1m"Time to wait between push attempts
pushMaxAttempts
Section titled “pushMaxAttempts”Type:
UnsignedInt· default:3· min: 1Maximum number of push attempts before a notification is discarded
pushRetryWait
Section titled “pushRetryWait”Type:
Duration· default:"1s"Time to wait between retry attempts
pushThrottle
Section titled “pushThrottle”Type:
Duration· default:"1s"Time to wait before sending a new request to the push service
pushRequestTimeout
Section titled “pushRequestTimeout”Type:
Duration· default:"10s"Time before a connection with a push service URL times out
pushVerifyTimeout
Section titled “pushVerifyTimeout”Type:
Duration· default:"1m"Time to wait for the push service to verify a subscription
pushShardsTotal
Section titled “pushShardsTotal”Type:
UnsignedInt· default:1· min: 1Total number of shards for push notification processing across multiple nodes
websocketHeartbeat
Section titled “websocketHeartbeat”Type:
Duration· default:"1m"Time to wait before sending a new heartbeat to the WebSocket client
websocketThrottle
Section titled “websocketThrottle”Type:
Duration· default:"1s"Amount of time to wait before sending a batch of notifications to a WS client
websocketTimeout
Section titled “websocketTimeout”Type:
Duration· default:"10m"Time before an inactive WebSocket connection times out
maxSubscriptions
Section titled “maxSubscriptions”Type:
UnsignedInt?· default:15· min: 1The default maximum number of push subscriptions a user can create
JMAP API
Section titled “JMAP API”The Jmap singleton is available via the urn:stalwart:jmap capability.
x:Jmap/get
Section titled “x:Jmap/get”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 sysJmapGet permission.
curl -X POST https://mail.example.com/api \ -H 'Authorization: Bearer $TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "methodCalls": [ [ "x:Jmap/get", { "ids": [ "singleton" ] }, "c1" ] ], "using": [ "urn:ietf:params:jmap:core", "urn:stalwart:jmap" ] }'x:Jmap/set
Section titled “x:Jmap/set”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 sysJmapUpdate permission.
curl -X POST https://mail.example.com/api \ -H 'Authorization: Bearer $TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "methodCalls": [ [ "x:Jmap/set", { "update": { "singleton": { "parseLimitEvent": 10 } } }, "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.
stalwart-cli get JmapUpdate
Section titled “Update”stalwart-cli update Jmap --field parseLimitEvent=10