Skip to content
Draft
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 36 additions & 23 deletions self-host/customize-deployment/google-sheets-integration.mdx
Original file line number Diff line number Diff line change
@@ -1,23 +1,36 @@
---
title: Configure a Google Sheets integration for self-hosted Lightdash
description: "In this guide we will show you how you can [upload to Google Sheets in scheduled deliveries](/references/google-sheets) and upload results from Google Sheets on `charts` on your on self-hosted Lightdash server."
sidebarTitle: Google sheets
---

### Enable Google SSO

To authenticate Google users, first you need to enable [Google SSO](https://docs.lightdash.com/self-host/customize-deployment/use-sso-login-for-self-hosted-lightdash#google) on your server.

If you still want to keep users to login via email/password or another SSO provider, you can set this `AUTH_GOOGLE_ENABLED` variable to `false`

### Create an API key for Google file picker

We use Google Drive picker API to allow you to select your spreadsheet files on `Syncs`

To create a Google Drive picker API you need to add a new API key in [APIs and services in Google Cloud](https://console.cloud.google.com/apis/credentials). Your Google project must have the following API's enabled:

* Google Drive API
* Google Picker API
* Google Sheets API

Save the API key in a new environment variable `GOOGLE_DRIVE_API_KEY`
---
title: Configure a Google Sheets integration for self-hosted Lightdash
description: "In this guide we will show you how you can [upload to Google Sheets in scheduled deliveries](/references/google-sheets) and upload results from Google Sheets on `charts` on your on self-hosted Lightdash server."
sidebarTitle: Google sheets
---

### Configure Google OAuth client

To use Google Sheets sync, you need to set up a Google OAuth client, even if you don't want to enable Google login.

1. Go to [APIs and services credentials in Google Cloud](https://console.cloud.google.com/apis/credentials)
2. Create a new OAuth 2.0 Client ID (Web application type)
3. Configure the following:
- **Authorised JavaScript origins**: `https://<your_lightdash_domain>`
- **Authorised redirect URI**: `https://<your_lightdash_domain>/api/v1/oauth/redirect/google`
4. Save the client ID and secret as environment variables:
- `AUTH_GOOGLE_OAUTH2_CLIENT_ID`
- `AUTH_GOOGLE_OAUTH2_CLIENT_SECRET`

<Note>
Lightdash automatically requests the necessary OAuth scopes (`drive.file` and `spreadsheets`) when users connect to Google Sheets. You don't need to configure scopes on the OAuth client itself.
</Note>

If you already use another SSO provider (like Okta) for login and only want Google Sheets functionality, set `AUTH_GOOGLE_ENABLED=false`. This hides Google as a login option while still allowing the Google Sheets integration to work.

### Create an API key for Google file picker

We use Google Drive picker API to allow you to select your spreadsheet files on `Syncs`

To create a Google Drive picker API you need to add a new API key in [APIs and services in Google Cloud](https://console.cloud.google.com/apis/credentials). Your Google project must have the following API's enabled:

* Google Drive API
* Google Picker API
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we only use Google Picker API

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated this PR with only the necessary changes, can you check https://lightdash-mintlify-docs-google-sheets-oauth-scopes-61516.mintlify.app/ to confirm this is correct?

* Google Sheets API

Save the API key in a new environment variable `GOOGLE_DRIVE_API_KEY`