Apps Developer Guide (Old)
  • Introduction
  • Create your first app in 4 easy steps
  • Overview
    • How does it work ?
    • Documentation
    • Deskpro Apps Tool
  • SDK
    • The Application Manifest
      • Manifest Reference
    • Storing data
      • Storing ticket data
    • Accessing the Deskpro REST API
    • Accessing remote services
    • The Application Installer
    • Application Contexts
      • ContextDataObject Reference
    • Events
  • Guides
    • Create an Oauth2 integration
    • Using an API Key to read data
  • Application Context
    • Get the authenticated user
    • Access Custom Fields
    • Interacting with the Host UI Container
  • Application Container
    • How do I badge my app icon
  • HTTP
    • How do I use a remote web service
  • OAuth2
    • How do I customize OAuth2 requests
  • UI Patterns
    • How do I split my app into different screens
Powered by GitBook
On this page
  • Name (package.json)
  • version (package.json)
  • description (package.json)
  • author (package.json)
  • deskpro.version
  • deskpro.title
  • deskpro.storage
  • deskpro.settings
  • deskpro.isSingle
  • deskpro.customFields
  • deskpro.targets
  • deskpro.deskproApiTags
  • deskpro.domainWhitelist
  • appVersion
  • version
  • name
  • title
  • description
  • isSingle
  • storage
  • targets
  • settings
  • customFields
  • deskproApiTags
  • domainWhitelist
  1. SDK
  2. The Application Manifest

Manifest Reference

PreviousThe Application ManifestNextStoring data

Last updated 6 years ago

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

Generally a storage key items looks like this:

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

deskpro.settings

  • Type: array

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

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.

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.

version

  • Type: string

  • Format: semver string

name

  • Type: string

title

  • Type: string

description

  • Type: string

isSingle

  • Type: boolean

storage

  • Type: array

targets

  • Type: array

settings

  • Type: array

customFields

  • Type: array

deskproApiTags

  • Type: array

domainWhitelist

  • Type: array

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

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

This is a list of customField objects. To see the shape of a storage key object, go to the chapter from

To read more about the format of the patterns, read the

See

See

See

See

See

See

See

See

See

See

See

See

Storage key Reference Page
Storage key Reference Page
Declaring settings
The Application Installer article
Whitelisting remote service
name
version
description
author
deskpro.version
deskpro.title
deskpro.storage
deskpro.settings
deskpro.isSingle
deskpro.customFields
deskpro.targets
deskpro.deskproApiTags
deskpro.domainWhitelist
appVersion
version
name
title
description
isSingle
storage
targets
settings
customFields
externalApis
version
deskpro.version
name
deskpro.title
description
deskpro.isSingle
deskpro.storage
deskpro.targets
deskpro.settings
deskpro.customFields
deskpro.deskproApiTags
deskpro.domainWhitelis