Manifest Reference

The application manifest can be specified as a file named manifest.json in the root of your project or as an object property named deskpro in your package.json.

We recommend to use the package.json variant since you'll have to manage one less file and it is less verbose. When you use this variant, at build time a file manifest.json is generated from the contents of package.json and is placed in the root of your bundle. You can inspect this file in the dist folder.

When using package.json variant some properties defined by npm in the package.json standard are used to build the final manifest.json file.

The package.json properties:

Name (package.json)

  • Type: string

This is the same property defined by npm. When you use the package.json variant, it will be used as your application's package name.

version (package.json)

  • Type: string

  • Format: semver string

This is the same property defined by npm. When you use the package.json variant, it will be used as your application's version.

description (package.json)

  • Type: string

This is the same property defined by npm. When you use the package.json variant, this property supplies a human friendly description that will be displayed everywhere with your app, therefore it is important to make clear and concise.

author (package.json)

  • Type: object

This is the same property defined by npm. When you use the package.json variant, this property supplies the contact information for your application.

The following properties are required for the author object:

  • name

  • email

  • url

Example:

{
  "author": {
    "name": "Deskpro Ltd.",
    "email": "apps@deskpro.com",
    "url": "https://www.deskpro.com"
  }
}

deskpro.version

  • Type: string

  • Format: semver string

This is the Deskpro Apps SDK API version you are targeting. The current version is 2.4.0

deskpro.title

  • Type: string

This is a human readable string supplying the name of your application which will be displayed everywhere with your app.

deskpro.storage

  • Type: array

This is a list of storage key objects. To see the shape of a storage key object, go to the Storage key Reference Page

Generally a storage key items looks like this:

{
  "name": "mykey",
  "isBackendOnly": true,
  "permRead": "EVERYBODY",
  "permWrite": "OWNER"
}

deskpro.settings

  • Type: array

This is a list of setting objects. To see the shape of a setting object, go to the Storage key Reference Page

deskpro.isSingle

  • Type: boolean

  • Default value: false

A flag which determines how many instances can be created by your app. When true, your application will have a single instance, otherwise there is no limit.

deskpro.customFields

  • Type: array

This is a list of customField objects. To see the shape of a storage key object, go to the chapter Declaring settings from The Application Installer article

deskpro.targets

  • Type: array

This is a list of Application Targets, which determine where your application will be displayed and its runtime context.

At the moment the only supported target is ticket-sidebar, so your property should like this:

{
  "deskpro": {
    "targets": [
      {
        "target": "ticket-sidebar",
        "url": "html/index.html"
      }
    ]
  }
}

Note the url property which is a relative path to an html page from your application bundle. In this example, the page is in the folder html which is located in the root of the bundle. This location corresponds to the src/main/html folder in your application project.

deskpro.deskproApiTags

  • Type: array

Currently unused

This property is a list of strings representing a whitelist for the Deskpro REST API endpoints accessible by your application. Each item in the whitelist is an API tag that allows access to their respective endpoint.

deskpro.domainWhitelist

  • Type: array

This property is a list of regex patterns strings representing a whitelist of remote service URLs accessed by your application through the Deskpro Apps SDK Proxy.

To read more about the format of the patterns, read the Whitelisting remote service

The manifest.json properties:

appVersion

  • Type: string

  • Format: semver string

This property only appears in the manifest.json variant and represents the current version of your application.

See version

version

  • Type: string

  • Format: semver string

See deskpro.version

name

  • Type: string

See name

title

  • Type: string

See deskpro.title

description

  • Type: string

See description

isSingle

  • Type: boolean

See deskpro.isSingle

storage

  • Type: array

See deskpro.storage

targets

See deskpro.targets

  • Type: array

settings

  • Type: array

See deskpro.settings

customFields

  • Type: array

See deskpro.customFields

deskproApiTags

  • Type: array

See deskpro.deskproApiTags

domainWhitelist

  • Type: array

See deskpro.domainWhitelis

Last updated