Welcome to Portal

?Unknown\pull-down

Welcome to Zoho Cares

Bienvenido a Soporte de Zoho

Search our knowledge base, ask the community or submit a request.

Configuring 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.

type

Enter the type as "personal" to allow all the users to configure the extension and "org" to allow the admin to configure the extension. 

KeyTypeValue
typeString
Accepted Values :  personal, org

locale

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

service

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

storage

If this setting is true, storage space will be allocated in the product for this extension. By default, the value will be false.
KeyTypeValue
storage*Boolean
  • true
  • 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.
KeyTypeValue
whiteListedDomains*Array 

modules

Modules of the extension. We support widgets currently.
KeyTypeValue
modulesJSONObject

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'.
KeyTypeObject Details
widgetsJSONArrayKeyTypeDescriptionValue
 locationStringPlaces where the extension has to be rendered in the product.
  • task_tab
  • issue_tab
  • milestone_tab
  • project_tab
  • app_settings
  • top_band
  • attachment_picker
  • taskdetails_rightpanel
  • issuedetails_rightpanel
  • blueprint_during
  • task_transition

Note: The location name must be unique.

nameStringThe name of the widget.Example: Checklist
urlURLThe relative path of the file that loads the widget./app/index.html
iconStringThe icon of the widget.Icon is mandatory for attachment picker.
 countkey
(available for task_tab, milestone_tab, and issue_tab)
StringUnique 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.
KeyTypeObject Details
connectorsJSONArrayKeyTypeDescriptionValue
 connectionLinkNameStringLink 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.

connectionNameStringName of the connectionThe value of the connectionName param generated in the JSON tab of the connection summary.
serviceNameStringName of the third-party serviceThe value of the serviceName param generated in the JSON tab of the connection summary.
userAccessBooleanThis 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
 isUserDefinedServiceBooleanIs the connection established with a custom service?
  • true
  • false
 ScopeJSONArrayThe access privilege set for the users/admins.Example: ["https://www.googleapis.com/auth/drive.readonly"]

An extension can be connected to a maximum of 5 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. 
KeyTypeObject Details
configJSONArrayKeyTypeDescriptionValue
 name*StringName of the parameter. The name should be unique.
type*StringThe data type of the parameter
  • 'text'
  • 'password'
  • 'checkbox'
  • 'url'
  • 'number'
  • 'multiline'
  • 'selectbox'
  • 'hidden'
defaultStringThe default value of the parameterNote: This parameter is optional.
optionsJSON arrayOptions are mandatory if 'select box' is chosen as the type.Example ["New feature", "Enhancement"]
is_secure*BooleanSetting this to "true" prevents the developer from accessing this configuration from the extension.
  • true
  • false
is_mandatoryBooleanIs the configuration mandatory?
  • true
  • false
descriptionStringA brief description of the configurationNote: This parameter is optional.

Helpful?00
Updated: 5 months ago
Share :