# Plugin Manifest: plugin.json

Every Sisense Add-on is defined via a manifest file called plugin.json located in the root directory of the Add-on.

This file determines how the Add-on's code is processed and loaded into the Sisense web application.

# Versions

Sisense currently has 3 Add-on infrastructure versions:

Version Available From Comments
1 Sisense v5.0 Original Add-ons. Many existing community Add-on still use this version.
2 Sisense v7.0 Added support for ES2015 using babel.js
3 Sisense v8.1 Module-based design

Each version has a slightly different structure/format for plugin.json. They are described below.

# File Format Reference

# Sisense Add-on Infra V1

Properties

Name Type Required Description Example
name string Yes Unique Add-on name pluginName
pluginInfraVersion number Yes Add-on infrastructure version: 1 1
isEnabled boolean no Turns the Add-on on or off true
source string[] Yes List of all the Add-on's .js JavaScript source files ['index.js']
style string[] Yes List of all the Add-on's .css CSS source files ['main.css']

Example

{
    "name": "pluginName",
    "pluginInfraVersion": 1,
    "isEnabled": true,
    "source": [
        "index.js",
        "functions.js"
    ],
    "style": [
        "main.css",
        "main-ie.css"
    ]
}

# Sisense Add-on Infra V2

Properties

Name Type Required Description Example
name string Yes Unique Add-on name pluginName
pluginInfraVersion number Yes Add-on infrastructure version: 2 2
isEnabled boolean no Turns the Add-on on or off true
source string[] Yes List of all the Add-on's .js JavaScript source files ['index.6.js']
style string[] Yes List of all the Add-on's .css CSS source files ['main.css']

ES2015 Support

This version introduced support for ES6/ES2015 using babel.js. However, JavaScript files do not automatically get processed by Babel!

To have a file go through Babel, use the extension .6.js for example, instead of index.js use index.6.js. This extension needs to be used both in the actual file name and in the source property of the plugin.json file.

Example

{
    "name": "pluginName",
    "pluginInfraVersion": 2,
    "isEnabled": true,
    "source": [
        "index.js",
        "functions.6.js"
    ],
    "style": [
        "main.css",
        "main-ie.css"
    ]
}

# Sisense Add-on Infra V3

Properties

Name Type Required Description Example
name string Yes Unique Add-on name pluginName
pluginInfraVersion number Yes Add-on infrastructure version: 3 3
isEnabled boolean no Turns the Add-on on or off true
main string Yes The main .js JavaScript source file, containing the module's entry point 'index.js'

Example

{
    "name": "addButtons",
    "pluginInfraVersion": 3,
    "isEnabled": true,
    "main": "main.js"
}