Skip to content

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

Type: UnsignedInt · default: 10 · min: 1

Limits the maximum number of iCalendar items that can be parsed in a single request

Type: UnsignedInt · default: 10 · min: 1

Limits the maximum number of vCard items that can be parsed in a single request

Type: UnsignedInt · default: 10 · min: 1

Limits the maximum number of e-mail message that can be parsed in a single request

Type: UnsignedInt · default: 5000 · min: 1

Determines the maximum number of change objects that a Changes method can return

Type: UnsignedInt · default: 500 · min: 1

Determines the maximum number of objects that can be fetched in a single method call

Type: UnsignedInt · default: 5000 · min: 1

Sets the maximum number of results that a Query method can return

Type: UnsignedInt · default: 16 · min: 1

Limits the maximum number of method calls that can be included in a single request

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

Restricts the number of concurrent requests a user can make to the JMAP server

Type: Size · default: 10000000 · min: 1

Defines the maximum size of a single request, in bytes, that the server will accept

Type: UnsignedInt · default: 500 · min: 1

Establishes the maximum number of objects that can be modified in a single method call

Type: UnsignedInt · default: 100 · min: 1

Maximum number of search snippets to return in a single request

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

Restricts the number of concurrent file uploads a user can perform

Type: UnsignedInt · default: 50000000 · min: 1

Defines the maximum file size for file uploads to the server

Type: UnsignedInt · default: 1000 · min: 1

Specifies the maximum number of files that a user can upload within a certain period

Type: UnsignedInt · default: 50000000 · min: 1

Defines the total size of files that a user can upload within a certain period

Type: Duration · default: "1h"

Specifies the Time-To-Live (TTL) for each uploaded file, after which the file is deleted from temporary storage

Type: Duration · default: "1s"

Specifies the minimum time between two event source notifications

Type: Duration · default: "1m"

Time to wait between push attempts

Type: UnsignedInt · default: 3 · min: 1

Maximum number of push attempts before a notification is discarded

Type: Duration · default: "1s"

Time to wait between retry attempts

Type: Duration · default: "1s"

Time to wait before sending a new request to the push service

Type: Duration · default: "10s"

Time before a connection with a push service URL times out

Type: Duration · default: "1m"

Time to wait for the push service to verify a subscription

Type: UnsignedInt · default: 1 · min: 1

Total number of shards for push notification processing across multiple nodes

Type: Duration · default: "1m"

Time to wait before sending a new heartbeat to the WebSocket client

Type: Duration · default: "1s"

Amount of time to wait before sending a batch of notifications to a WS client

Type: Duration · default: "10m"

Time before an inactive WebSocket connection times out

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

The default maximum number of push subscriptions a user can create

The Jmap 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 sysJmapGet permission.

Terminal window
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"
]
}'

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.

Terminal window
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.

Terminal window
stalwart-cli get Jmap
Terminal window
stalwart-cli update Jmap --field parseLimitEvent=10