Google Drive

Tip:  GOOGLE DRIVE FOLDER IDS
Google Drive folders usually display the ID in the url while looking at them in the browser. The root folder ("My Drive") does not show its ID, however. In order to retrieve it, you will need to create a Content Service Connection and use it to retrieve the id using the following url in your browser. If the root folder id it set on the content service connection, that folder's information will be returned. If blank, the My Drive folder's information will be returned.
3sixty-admin/api/repo/{googleConnectorId}/rootfolderid


Authentication Connection

There are currently two ways to connect to Google Drive. OAuth and Java Web Token. Both require creating a project and enabling the Google Drive API for that project.


Discovery Connection

Discovery makes mapping to and from your sources easier for data migration and ensures the data gets connected to the right fields. Discovery requires an Authentication Connection

Guide to Discovery Connections


Integration Connection

Every job requires an integration connection for both the source repository connection and the output connection. Also known as input an output connections. Their job is to query or crawl remote systems for files, folders, metadata, versions, and renditions. . In repo mode, it will retrieve list items and all of their relevant metadata from a list or library on the specified site. In output mode, the connection will write content and assign the mapped content type (from type mappings), or simply leave the new list item as a Document. Click here for more information on setting up an integration connection.

There are no fields to configure in an integration connection.

Guide toIntegration connections

The Google Integration Connection is used to store and write content alongside its metadata to Google Drive.


Job Configuration

A 3Sixty Job is the process of moving or syncing content (including versions, ACL's, metadata) from one CMS (content management system) to another. Add tasks to your job to have better control over how your data gets migrated. Click here for details on how to set up an integration job.

Guide to Integration jobs

Repository Specification

Also known as an input connection. It's job is to query or crawl remote systems for files, folders, metadata, versions, and renditions. When using this connector as a source repository filling out the following configuration fields will tell 3Sixty how to locate the files you want migrated.

Configuration

  • Query: A query written using Google Drive's query language

    • Not compatible with Folder ID list

  • Crawl Queried Folders: If a queried object is a folder, crawl it.

  • Folder / File Id's: A comma delimited list of IDs to retrieve or crawl

    • Completely overrides query

  • This is a Shared Drive: Check if this is a shared drive in a Google Workspace

  • The id of the shared drive: Required to crawl the drive. Can be found in the URL at the root of the drive

  • Process Folders: Add folders to the document queue for processing

  • Get Versions: Will retrieve available revisions. Note that Google Drive does not keep all revisions of a document. Get versions only works for documents created in Google drive. It will not work for documents uploaded to Google Drive.

  • Get Permissions: Will retrieve permissions for each object, where available.

Permissions

If the permission list is set on a document by the repository connection, Drive will attempt to set these permissions. It expects these permissions in the form `principal=permissions`. The principal must be an email address, and the allowed values for permissions are as follows:

Available for files:

  • owner

  • writer

  • commenter

  • reader

To manipulate this list, use a JavaScript task. For more information on the ACL document field and the JavaScript task. Check our Developer Documents.

Google Content Types

When you run a job with Google Drive as the source repository:

These content types will be transferred as is:

  • google docs, slide, spreadsheet, drawing

These content types will be skipped and not transferred:

  • google form, google map

These content types will be converted to the corresponding types and will not be supported by getVersions:

  • google jamboard - pdf

  • google script - json

  • google site - txt

Output Specifications

When using this connector as a file destination, filling out the following fields will tell 3Sixty where you want the files integrated to.

Configuration

  • Output Folder ID: ID of the target folder, can be retrieved through the Google Drive UI

  • Include Un-Mapped Properties: If selected, all available properties will be added output file. Otherwise, only mapped properties will be included.

  • This is a Shared Drive: Check if this is a shared drive in a Google Workspace

  • The id of the shared drive: Required to crawl the drive. Can be found in the URL at the root of the drive

  • Do not update property values if file already exists: Since there is only one set of metadata per document (not per revision), this will allow you to skip mappings if the document already exists

  • Process permissions: Will take the ACL list of the document and attempt to apply these permissions in Google Drive.

  • Notify users via email when they are added to a file: If a permission is successfully added, an email will be sent to the user.

 

Already supported ones from before: google docs, slide, spreadsheet, drawing

Not exportable: google form, google map

Added new ones which have export link/format available:

google jamboard - pdf

google script - json

google site - txt

However, these new ones don't seem to support revisions so we can't get the revisions when getVersion is checked!

Tip:  REVISIONS (VERSIONS)
If a document of the same name exists within a parent folder, the connector will attempt to create a new revision of the document, instead of uploading a new one. These revisions have the keepRevisionForever flag set to true, meaning Google Drive will not delete them automatically, as it does with most revisions. A document can have a maximum of 200 revisions.

Tasks

Job tasks also known as processors provide a processing pipeline for documents and metadata. Post processors can also be added as a task to run after the files are processed.

Click here for a list of all the tasks you can add to your integration job.


Content Service Connection

This connection will provide a full ECM API for interacting with files, folders, metadata, versions, and renditions.

Content Service Connections Overview

Configuration

  • Connector ID: Give your connector a unique name

  • Description: Provide a description for this connection

  • Type: Select the Filesystem Content Service Connector

  • Keep Connection Alive: Keep this connection active

  • Keep alive in Milliseconds (300000 is 5 minutes): How long until connection expires if unused

  • Connection URL: The web address for your connection

  • Security Mode: None needed for this connection

  • Mapping Type: Choose single map or group mapping if you are using mapping for jobs

  • Root Folder ID: The root folder you wish to use for uploads using the connection

Interacting with Shared Drives (3.1.2+)

Tip:  These cases assume that you are working with a Google Workspace and the credentials you supply are allowed to view / access Shared Drive information.

Get a Shared Drive Id

The idbypath endpoint can be used to retrieve the id of a Shared Drive in a Google Workspace. In order to do this the folderPath argument should be the name of the Shared Drive. Additionally, the argument isDrive should be included with the call with a value of true.

Shared Drive Permissions

Passing a shared drive id to the Get ACL method should produce a list of Shared Drive Members with their respective roles.

JWT Connector

If using a JWT of service account, the service account email needs to be added as a member of Shared drive and be given Manager role.


API Keys

Google Drive Connector: Read=true: Write=true: MIP=false

Repo (Read) Specs

Key

Description

Data Type

gdQuery Query String

crawlQueriedFolders

If the query returns folders, crawl them

Boolean

gdRootFolders

Folder / File Id's (Comma Delimited)

String

isSharedDrive

This is a Shared Drive

Boolean

sharedDrive

The id of the shared drive. Can be found in the URL at the root of the drive

String

gdProcessFolders

Process Folders

Boolean

getVersions

Get Versions

Boolean

getPermissions

Get Permissions

Boolean

Output (Write) Specs

Key

Description

Data Type

outputfolderId Output Folder Id String

includedUnMapped

Include Un-Mapped Properties

Boolean

isSharedDrive

This is a Shared Drive

Boolean

sharedDrive

The id of the shared drive. Can be found in the URL at the root of the drive

String

noPropsOnUpdate

Do not update property values if file already exists.

Boolean

addPerms

Process permissions

Boolean

notifyUsers

Notify users via email when they are added to a file

Boolean


Need help integrating with Google Drive? We can help!