AI-generated Key Takeaways
-  An Apps Script project's manifest file defines its function or purpose. 
-  The manifest uses a JSON data structure with various fields for configuration. 
-  Fields in the manifest can configure the project as a Google Workspace add-on, Google Chat app, or web app. 
-  The manifest includes configurations for dependencies, exception logging, authorization scopes, runtime version, and time zone. 
-  A URL allowlist can be used in the manifest to restrict fetched URL endpoints. 
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 ) } } | 
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 .
 Note: 
For new Chat apps, we recommend that you use the  addOns.chat 
 
field instead. If you are maintaining an existing Chat app that uses the chat 
field, it should be an empty object.
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:
-  NONEindicates exceptions are not logged.
-  STACKDRIVERindicates 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:
-  STABLEindicates the default runtime (currently Rhino).
-  V8indicates the V8 powered runtime.
-  DEPRECATED_ES5indicates 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.

