Configuration | Online Help | Zoho BugTracker

Configuration plugin-manifest.json

plugin-manifest.json

Here's a sample JSON descriptor file for your reference.

Now we'll see how to define the properties of this file.

locale

The language the extension supports. Currently, we support the locale "en" (English) only.

Key
Type
Value
locale*
JSONArray
en

service

Name of the Zoho product for which the extension is created. Here, it is "PROJECTS".

Key
Type
Value
service*
String
PROJECTS

storage

If this setting is true, storage space will be allocated in the product for this extension. By default, the value will be false.


Key
Type
Value
storage*
Boolean

  1. true
  2. false

whiteListedDomains

The domains specified in this array can be called from the extension. Calls to other domains, except the ones with which a connection is established, will not be handled from the extension. If your extension doesn't use any third-party service, then this array can be declared empty.


Key
Type
Value
whiteListedDomains*
Array

modules

Modules of the extension. We support widgets currently.


Key
Type
Value
modules
JSONObject

Example:

"widgets":[{
"location":"task_tab",
"name":"GDrive for Zoho Projects",
"url":"/app/index.html",
"countkey" : "extensionUniqueKey"
}]

widgets

This key holds an array of objects. Every object has three keys - 'location', 'name', and 'URL'.


Key
Type
Object Details



widgets
JSONArray
Key
Type
Description
Value


String
Places where the extension has to be rendered in the product.
  • issue_tab
  • app_settings
  • top_band
  • attachment_picker
  • issuedetails_rightpanel
Note: The location name must be unique.


name
String
The name of the widget.
Example: Checklist


url
URL
The relative path of the file that loads the widget.
/app/index.html


icon
String
The icon of the widget
Icon is mandatory for attachment picker


countkey
(phase_tab and issue_tab)
String
Unique id to retrieve the widget count.
extensionUniqueKey

An extension can have multiple widgets.

Note: extensionUniqueKey is used to store/update the extension data.

connectors

Like widgets, this key also holds an array of objects. A connector helps to integrate an extension with a third-party service. Authorization of such third-party services is usually handled by Zoho Projects.


Key
Type
Object Details



connectors
JSONArray
Key
Type
Description
Value


connectionLinkName
String
Link name generated for the third-party service connection

The value of the connectionLinkName param generated in the JSON tab of the connection summary.

Note: The connection name must be unique.



connectionName
String
Name of the connection
The value of the connectionName param generated in the JSON tab of the connection summary.


serviceName
String
Name of the third-party service
The value of the serviceName param generated in the JSON tab of the connection summary.


userAccess
Boolean
This parameter decides whether the extension has to be authorized by each user individually or it has to be authorized only by the admin.
  • true
  • false


isUserDefinedService
Boolean
Is the connection established with a custom service?
  • true
  • false


Scope
JSONArray
The access privilege set for the users/admins.
An extension can be connected to a maximum of five third-party services at once.

config

This key can be used when you have to get more inputs from the user to operate the extension. Say, you need the user's domain name of a third-party service for your extension to function. To fetch it, you can use this key to get input from the user accordingly.


Key
Type
Object Detail



config
JSONArray
Key
Type
Description
Value


name*
String
Name of the parameter.
The name should be unique.


type*
String
The data type of the parameter
  • 'text'
  • 'password'
  • 'checkbox'
  • 'url'
  • 'number'
  • 'multiline'
  • 'selectbox'
  • 'hidden'


default
String
The default value of the parameter
Note: This parameter is optional.


options
JSON array
Options are mandatory if 'select box' is chosen as the type.
Example ["New feature", "Enhancement"]


is_secure*
Boolean
Setting this to "true" prevents the developer from accessing this configuration from the extension.
  • true
  • false


is_mandatory
Boolean
Is the configuration mandatory?
  • true
  • false


description
String
A brief description of the configuration
Note: This parameter is optional.