Edit in GitHubLog an issue

Manifest Schema Reference

Introduction

Each add-on bundle contains a manifest.json file at the root level which defines the metadata for your add-on and how it should behave. This guide outlines the latest manifest version available, which is version 2.

Sample manifest.json

Copied to your clipboard
{
"testId": "addon-sample",
"name": "Add-on Sample",
"version": "1.0.0",
"manifestVersion": 2,
"requirements": {
"apps": [
{
"name": "Express",
"apiVersion": 1
}
],
"supportsTouch": false,
},
"entryPoints": [
{
"type": "panel",
"id": "panel1",
"main": "index.html",
"documentSandbox": "code.js",
"permissions": {
"sandbox": ["allow-popups", "allow-presentation", "allow-downloads"],
"oauth": ["www.dropbox.com"]
}
}
]
}

Manifest Properties

Note: The ? denotes the key is optional.

KeyTypeDescription
testId?
string
Used to uniquely identify an add-on among other add-ons during a development workflows only. This is auto-generated and inserted into the manifest by the CLI when an add-on is created. This is mandatory in the development workflow and ignored in add-ons submitted to the marketplace.
name?
string
Add-on name for development workflow only. The name provided in the UI during submission is used in all other workflows.
version
string
Add-on version in "major.minor.patch" format (e.g. "1.2.0")
manifestVersion
number
Version of the manifest schema (e.g. 2).
object
Specify the apps the add-on is applicable for.
object []
An entry point for your add-on. At least one is required.

requirements

KeyTypeDescription
object []
Add-on authors can specify the apps that the add-on is intended for.
experimentalApis?
boolean
Add-ons can opt to use experimental apis by specifying this flag. This flag is only allowed during development and needs to be removed during submission.
supportsTouch?
boolean
Whether the add-on supports touch-only devices. If not specified, the default value assumed is false.
renditionPreview?
boolean
Ensure premium content preview is properly handled for free users when add-ons create renditions.

Example:

Copied to your clipboard
"requirements": {
"apps": [
{
"name": "Express",
"apiVersion": 1,
"supportedDeviceClass": ["desktop"]
},
{}],
"experimentalApis": true,
"supportsTouch": false,
"renditionPreview": true
}

requirements.apps

KeyTypeDescription
name
string
Currently supported values: "Express"
apiVersion
number
API version that the add-on uses. Currently supported values: 1
string []
Supported platforms by the add-on. If not specified, the default value assumed is: ["desktop"].

Example:

Copied to your clipboard
"apps": [
{
"name": "Express",
"apiVersion": 1,
"supportedDeviceClass": ["desktop"]
}
],

requirements.apps.supportedDeviceClass

The following platform value is currently supported in the supportedDeviceClass key.

PlatformDescription
desktop
Browser on desktop.

entryPoints

KeyTypeDescription
type
string
The type of the entry point. Currently supported values: "panel".
id
string
Identifier for the entry point. Must be unique within the add-on.
main
string
Main file for this entry point when launched.
documentSandbox
string
File containing the JavaScript code to use with the document sandbox SDK and Adobe Express Document APIs.
object
The permissions defined for this entry point.

Example:

Copied to your clipboard
"entryPoints": [
{
"type": "panel",
"id": "panel1",
"main": "index.html",
"permissions": {
"sandbox": ["allow-popups", "allow-popups-to-escape-sandbox", "allow-presentation", "allow-downloads"],
"oauth": ["www.dropbox.com"]
}
}
]

entrypoints.permissions

KeyTypeDescription
string []
List of iframe sandbox permissions.
oauth?
string []
List of 3rd party auth server domains for which OAuth workflow may be requested.
clipboard?
string []
The allowed values for the list of clipboard permissions. Currently, clipboard-write is supported and allows an add-on to write arbitrary data to the clipboard.
microphone?
string
The allowlists value used in iframe ‘allow’ attribute. Enables the add-on to access the user's microphone for audio input.
camera?
string
The allowlists value used in iframe ‘allow’ attribute. Enables the add-on to access the user's camera for video input.

Example:

Copied to your clipboard
"permissions" : {
"sandbox": [" allow-popups ", "allow-downloads"],
"oauth" : ["...", "..."],
"clipboard": ["clipboard-write"],
"microphone": "*",
"camera" : "*"
}

entrypoints.permissions.sandbox

The following permission values are currently supported in the sandbox key.

PermissionDescription
allow-popups
Allows popups (such as window.open(), target="_blank", or showModalDialog()). Note: If this permission is not set and you're using popups, the popup will silently fail to open.
allow-popups-to-escape-sandbox
Allows a sandboxed document to open new windows without forcing the sandboxing flags upon them
allow-presentation
Lets the add-on start a presentation session.
allow-downloads
Allows downloading files through an <a> or <area> element with the download attribute, as well as through the navigation that leads to a download of a file.

Example:

Copied to your clipboard
"permissions" : {
"sandbox": ["allow-popups ", "allow-downloads"],
}
Copied to your clipboard
"entryPoints": [
{
/*... other fields ...*/
"permissions": {
"sandbox": ["allow-popups-to-escape-sandbox", "allow-popups", "allow-downloads"]
}
}
]

Notes

  • Files within the add-on bundle can refer to each other via relative paths.

  • Changes to your add-on manifest currently require a reload, but you can simply use the Refresh button from the Add-on Development panel to force the add-on to reload and pick up your manifest changes.

    refresh button for manifest changes

  • Privacy
  • Terms of Use
  • Do not sell or share my personal information
  • AdChoices
Copyright © 2024 Adobe. All rights reserved.