Google: Service Account

Using service accounts is more complex than OAuth2. Before you begin:

Prerequisites

Set up Service Account

Create a new credential in Mosaic Workflows

  1. Follow the steps to Create a credential .
  2. Note the Private Key from the node credential modal. You'll need this in the next section.

Set up service account in Google Cloud

In your Google Cloud Console dashboard:

  1. Select the hamburger menu > APIs & Services > Credentials . Google takes you to your Credentials page.
  2. Select + CREATE CREDENTIALS > Service account .
  3. Enter a name in Service account name , and an ID in Service account ID . Refer to Creating a service account for more information.
  4. Select CREATE AND CONTINUE .
  5. Based on your use-case, you may want to Select a role and Grant users access to this service account using the corresponding sections.
  6. Select DONE .
  7. Select your newly created service account under the Service Accounts section. Open the KEYS tab.
  8. Select ADD KEY > Create new key .
  9. In the modal that appears, select JSON , then select CREATE . Google saves the file to your computer.
  10. Enable each Google service API that you want to use:
    1. Access your Google Cloud Console - Library . Make sure you're in the correct project.
  11. Search for and select the API(s) you want to enable. For example, for the Gmail node, search for and enable the Gmail API.
  12. Select ENABLE .

Create and test your connection

In Mosaic Workflows:

  1. In the Service Account Email field, enter the email associated with your new Service Account (you can find this in the Details tab in Google Cloud).
  2. Enter the Private Key from the downloaded JSON file. If you're running a Mosaic Workflows version older than 0.156.0: replace all instances of \n in the JSON file with new lines.
  3. Optional : Click the toggle to enable Impersonate a User and enter the email.
  4. Save your credentials.

Troubleshooting

Service Account can't access Google Drive files

A Service Account can't access Google Drive files and folders that weren't shared with its associated user email.

  1. Access your Google Cloud Console and copy your Service Account email.
  2. Access your Google Drive and go to the designated file or folder.
  3. Right-click on the file or folder and select Share .
  4. Paste your Service Account email into Add People and groups .
  5. Select Editor for read-write access or Viewer for read-only access.