Skip to content

Application

Defines a web application served by the server.

This object can be configured from the WebUI under Settings › Web Applications

Type: Boolean · default: true

Whether the application is enabled and should be served by the server

Type: String · required

A short description of the web application

Type: String · required

Override the URL to download application updates from.

Type: Set<String> · min items: 1

The URL prefixes to serve the application on. For example, if set to “/admin”, the application will be accessible at http://server/admin.

Type: Duration · default: 7776000000

Frequency to check for application updates

Type: String?

The local path to unpack the application bundle to. If left empty, the application will be unpacked to /tmp.

Type: String?

The OAuth client identifier that this application uses to start the authorization flow. Only required when the domain is served by an external identity provider, in which case it must match a client registered with that provider.

The Application object is available via the urn:stalwart:jmap capability.

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

This method requires the sysApplicationGet permission.

Terminal window
curl -X POST https://mail.example.com/api \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"methodCalls": [
[
"x:Application/get",
{
"ids": [
"id1"
]
},
"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.

Supports create, update, and destroy operations in a single call.

This operation requires the sysApplicationCreate permission.

Terminal window
curl -X POST https://mail.example.com/api \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"methodCalls": [
[
"x:Application/set",
{
"create": {
"new1": {
"description": "Example",
"resourceUrl": "Example",
"urlPrefix": {}
}
}
},
"c1"
]
],
"using": [
"urn:ietf:params:jmap:core",
"urn:stalwart:jmap"
]
}'

This operation requires the sysApplicationUpdate permission.

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

This operation requires the sysApplicationDestroy permission.

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

This is a standard Foo/query method as defined in RFC 8620, Section 5.5.

This method requires the sysApplicationQuery permission.

Terminal window
curl -X POST https://mail.example.com/api \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"methodCalls": [
[
"x:Application/query",
{
"filter": {}
},
"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 Application id1
Terminal window
stalwart-cli create Application \
--field description=Example \
--field resourceUrl=Example \
--field 'urlPrefix={}'
Terminal window
stalwart-cli query Application
Terminal window
stalwart-cli update Application id1 --field description='updated value'
Terminal window
stalwart-cli delete Application --ids id1