[Video](https://www.youtube.com/watch?v=soqseUBuU3E)

The manifest (`appsscript.json`) is a JSON file in your Apps Script connector
project. It contains certain information about your Community Connector
that is required to deploy and use your connector in Data Studio. Read more
about [manifests in Apps Script](https://developers.google.com/apps-script/concepts/manifests).

> [!CAUTION]
> **Caution:** Any information that you put in the manifest file should be considered public.

Your manifest should contain the following information:

| property name | Type | Description |
|---|---|---|
| **Required** (under the `dataStudio` property) |||
| `name` | `string` | Name of your connector. *Limited to 28 characters* |
| `company` | `string` | Name of the organization or developer. |
| `companyUrl` | `string (link)` | Link to the organization or developer's website. |
| `logoUrl` | `string (image link)` | The URL to an icon for your connector. The required dimensions are 40px by 40px. |
| `addOnUrl` | `string (link)` | Link to a dedicated 'Learn More' page that should explain what your connector does and the data it accesses. You should host and maintain this page. *This page must contain or link to your Terms of Service and Privacy Policy.* |
| `supportUrl` | `string (link)` | Link to the support page for supporting this connector. Users should be able to report issues with your connector at this link. You should host and maintain this page. |
| `description` | `string` | The description for your connector. Users will see the full description in your connector configuration page. Links will be clickable. |
| **Optional** (under the `dataStudio` property) |||
| `shortDescription` | `string` | **Limit: 114 characters.** If your connector is published, this short description will be visible in the gallery card for your connector. Use this to briefly describe what your connector does. Users will be able to view this when they browse through connectors in the gallery. |
| `privacyPolicyUrl` | `string (link)` | Link to the Privacy Policy for the connector / developer organization. |
| `termsOfServiceUrl` | `string (link)` | Link to the Terms of Services for the connector / developer organization. |
| `authType` | `list(https://developers.google.com/data-studio/connector/manifest#authtype)` | Authentication method type for your connector. See [AuthType](https://developers.google.com/data-studio/connector/manifest#authtype) below. |
| `feeType` | `list(https://developers.google.com/data-studio/connector/manifest#feetype)` | Indicates the fee type for your connector. See [FeeType](https://developers.google.com/data-studio/connector/manifest#feetype) below. |
| `sources` | `list(https://developers.google.com/data-studio/connector/manifest#sources)` | The list of data sources that this connector can connect to. See [Sources](https://developers.google.com/data-studio/connector/manifest#sources) below. |
| `templates` | `Object` | List of templates that can be used with this connector. Only one default template is supported, identified by setting a `default` key. The value should be the report ID for the Data Studio report that will be used as the template. See the guide on [Providing report templates](https://developers.google.com/data-studio/connector/report-templates). |
| `forceViewersCredentials` | `boolean` | Whether or not viewer's credentials should be forced for data sources created from this connector. This property is optional and defaults to `false`. See [Data source credentials](https://support.google.com/data-studio/answer/6371135?ref_topic=6370331) for more details on viewer's credentials. |
| `useQueryConfig` | `boolean` | *DEPRECATED*: Whether or not this connector will return a query config for \`getData()\`. Use \`advancedServices\` instead. |
| `advancedServices.data` | `boolean` | Whether or not this connector will return a query config for \`getData()\`. See [advanced services](https://developers.google.com/data-studio/connector/advanced-services). |
| `advancedServices.schema` | `boolean` | Whether or not this connector will return a query config for \`getSchema()\`. See [advanced services](https://developers.google.com/data-studio/connector/advanced-services). |
| **Optional** (Root level property) |||
| `urlFetchWhitelist` | `list(string)` | A list of HTTPS URL prefixes which your connector uses. Any URL endpoint fetched must match one of the prefixes in this list. This can help to protect user data. See [Safelisting URLs](https://developers.google.com/apps-script/manifest#whitelisting_urls) for more details. |

### AuthType

The values for authentication method type can be one of the following:

| Enum Value | Description |
|---|---|
| `NONE` | Indicates there is no authentication required for the connector. |
| `OAUTH2` | Indicates the connector uses OAuth 2.0. |
| `KEY` | Indicates the connector uses API key. |
| `USER_PASS` | Indicates the connector uses username/password. |
| `USER_TOKEN` | Indicates the connector uses username/token. |
| `PATH_USER_PASS` | Indicates the connector uses path/username/password. |
| `PATH_KEY` | Indicates the connector uses path/key. |

### FeeType

The values for fee type can be any of the following:

| Enum Value | Description |
|---|---|
| `FREE` | Indicates the connector is completely free to use. |
| `FREE_TRIAL` | Indicates the connector has a free trial option. |
| `PAID` | Indicates the user will need to pay to use the connector. |

## Sources

Sources is a list of enums for sources. You can view the existing list of
sources at our [Data Registry Repository](https://github.com/googledatastudio/ds-data-registry). If the source you are connecting to
does not exist in the repository, send a [pull request to the Data Registry
Repository](https://github.com/googledatastudio/ds-data-registry/compare?expand=1) to add the source. The source name can contain only uppercase
characters and underscores (e.g. Google Analytics will be `GOOGLE_ANALYTICS`).
In your Community Connector manifest, use the **value** of the data source id
property, e.g. `GOOGLE_ANALYTICS`.

## Example manifest for a Community Connector

The following is an example of a completed manifest:
data-studio/appsscript.json [View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/data-studio/appsscript.json)

```json
{
  "dataStudio": {
    "name": "Nucleus by Hooli",
    "company": "Hooli Inc.",
    "companyUrl": "https://hooli.xyz",
    "logoUrl": "https://hooli.xyz/middle-out-optimized/nucleus/logo.png",
    "addonUrl": "https://hooli.xyz/data-studio-connector",
    "supportUrl": "https://hooli.xyz/data-studio-connector/support",
    "description": "Nucleus by Hooli connector lets you connect to your data in Data Studio using Nucleus middle out optimization. You will need an account on hooli.xyz to use this connector. Create your account at https://hooli.xyz/signup",
    "shortDescription": "Connect to your data using Nucleus middle out optimization",
    "privacyPolicyUrl": "https://hooli.xyz/privacy",
    "termsOfServiceUrl": "https://hooli.xyz/tos",
    "authType": ["NONE"],
    "feeType": ["PAID"],
    "sources": [
      "HOOLI_CHAT_LOG",
      "ENDFRAME_SERVER_STREAM",
      "RETINABYTE_USER_ANALYTICS"
    ],
    "templates": {
      "default": "872223s89f5fdkjnd983kjf"
    }
  },
  "urlFetchWhitelist": ["https://api.hooli.xyz/", "https://hooli.xyz/"]
}
```