Manifest structure

This page describes the top-level of an Apps Script project's manifest file JSON data structure. The manifest defines the function or purpose of the Apps Script project.

JSON representation
{
  "addOns": {
    object (AddOns)
  },
  "chat": {},
  "dependencies": {
    object (Dependencies)
  },
  "exceptionLogging": string,
  "executionApi": {
    object (ExecutionApi)
  },
  "oauthScopes": [
    string
  ],
  "runtimeVersion": string,
  "sheets": {
    object (Sheets)
  },
  "timeZone": string,
  "urlFetchWhitelist": [
    string
  ],
  "webapp": {
    object (Webapp)
  }
}
Fields
addOns

object (AddOns)

The resource configuration of the project if deployed as a Google Workspace add-on.

chat

object

The configuration of the project if deployed as a Google Chat app. To configure the details of the Chat app, you must enable the Google Chat API. For details, see Configure the Google Chat API.

Apps Script handles authorization at the script level. Chat apps that require authorization can't perform any actions until the user authorizes the Chat app. To post a message before authorization, you can add an addToSpaceFallbackMessage object to the manifest. If your Chat app requires initialization logic, you might need to duplicate this logic in the onMessage action.

The following example shows a Chat app that responds with a default welcome message when a user adds it to a Chat space:

        "chat": {
          "addToSpaceFallbackMessage": "Thank you for adding me!"
        }
        

dependencies

object (Dependencies)

The configuration of advanced services and libraries enabled for use by the script project.

exceptionLogging

string

The location where exceptions are logged. The valid settings are the following:

  • NONE indicates exceptions are not logged.
  • STACKDRIVER indicates that exceptions are logged in Stackdriver.
executionApi

object (ExecutionApi)

The script project's API executable configuration. This is only used if the project is deployed for API execution.

oauthScopes[]

string

The definition of authorization scopes used by the script project.

runtimeVersion

string

The runtime version the script is using. If this field is not present in the manifest, the script uses the default runtime (STABLE). Valid options for this field are the following:

  • STABLE indicates the default runtime (currently Rhino).
  • V8 indicates the V8 powered runtime.
  • DEPRECATED_ES5 indicates the Rhino runtime. Setting this value also prevents automatic migration to V8.
sheets

object (Sheets)

The resource configuration that defines Sheets macros.

timeZone

string

The script time zone in one of the available ZoneId values such as "America/Denver".

urlFetchWhitelist[]

string

A list of HTTPS URL prefixes. If present, any URL endpoint fetched must match one of the prefixes in this list. This can help to protect user data. This field is optional for test deployments, but is required for deployments. Learn more about allowlisting URLs.

webapp

object (Webapp)

The script project's web app configuration, which is only used if the project is deployed as a web app.