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
parseLimitEvent
Type:
UnsignedInt· default:10· min: 1Limits the maximum number of iCalendar items that can be parsed in a single request
parseLimitContact
Type:
UnsignedInt· default:10· min: 1Limits the maximum number of vCard items that can be parsed in a single request
parseLimitEmail
Type:
UnsignedInt· default:10· min: 1Limits the maximum number of e-mail message that can be parsed in a single request
changesMaxResults
Type:
UnsignedInt· default:5000· min: 1Determines the maximum number of change objects that a Changes method can return
getMaxResults
Type:
UnsignedInt· default:500· min: 1Determines the maximum number of objects that can be fetched in a single method call
queryMaxResults
Type:
UnsignedInt· default:5000· min: 1Sets the maximum number of results that a Query method can return
maxMethodCalls
Type:
UnsignedInt· default:16· min: 1Limits the maximum number of method calls that can be included in a single request
maxConcurrentRequests
Type:
UnsignedInt?· default:4· min: 1Restricts the number of concurrent requests a user can make to the JMAP server
maxRequestSize
Type:
Size· default:10000000· min: 1Defines the maximum size of a single request, in bytes, that the server will accept
setMaxObjects
Type:
UnsignedInt· default:500· min: 1Establishes the maximum number of objects that can be modified in a single method call
snippetMaxResults
Type:
UnsignedInt· default:100· min: 1Maximum number of search snippets to return in a single request
maxConcurrentUploads
Type:
UnsignedInt?· default:4· min: 1Restricts the number of concurrent file uploads a user can perform
maxUploadSize
Type:
UnsignedInt· default:50000000· min: 1Defines the maximum file size for file uploads to the server
maxUploadCount
Type:
UnsignedInt· default:1000· min: 1Specifies the maximum number of files that a user can upload within a certain period
uploadQuota
Type:
UnsignedInt· default:50000000· min: 1Defines the total size of files that a user can upload within a certain period
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
Type:
Duration· default:"1s"Specifies the minimum time between two event source notifications
pushAttemptWait
Type:
Duration· default:"1m"Time to wait between push attempts
pushMaxAttempts
Type:
UnsignedInt· default:3· min: 1Maximum number of push attempts before a notification is discarded
pushRetryWait
Type:
Duration· default:"1s"Time to wait between retry attempts
pushThrottle
Type:
Duration· default:"1s"Time to wait before sending a new request to the push service
pushRequestTimeout
Type:
Duration· default:"10s"Time before a connection with a push service URL times out
pushVerifyTimeout
Type:
Duration· default:"1m"Time to wait for the push service to verify a subscription
pushShardsTotal
Type:
UnsignedInt· default:1· min: 1Total number of shards for push notification processing across multiple nodes
websocketHeartbeat
Type:
Duration· default:"1m"Time to wait before sending a new heartbeat to the WebSocket client
websocketThrottle
Type:
Duration· default:"1s"Amount of time to wait before sending a batch of notifications to a WS client
websocketTimeout
Type:
Duration· default:"10m"Time before an inactive WebSocket connection times out
maxSubscriptions
Type:
UnsignedInt?· default:15· min: 1The default maximum number of push subscriptions a user can create
JMAP API
The Jmap singleton is available via the urn:stalwart:jmap capability.
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
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"
]
}'
CLI
stalwart-cli wraps the same JMAP calls. See the CLI reference for installation, authentication, and general usage.
Fetch
stalwart-cli get jmap
Update
stalwart-cli update jmap --field description='Updated'