Connecting Google Driveedit

Google Drive is a cloud-based storage service for organizations of all sizes, with a focus on G Suite document (Google Docs, Sheets, Slides, etc) storage and collaboration. The Google Drive connector provided with Workplace Search automatically captures, syncs and indexes the following items:

G Suite Documents

Including ID, File Metadata, File Content, Collaborators, and Timestamps

Stored Files

Including ID, File Metadata, File Content, Updated by, and Timestamps

Known issuesedit

Google Drive may require 48 hours to sync new and changed documents to your Workplace Search deployment.

The issue affects documents that are not shared directly with the connecting user or a group that user belongs to - even if the documents are in a shared drive.

This is due to a limitation of the Google Drive Changes: List API.

Configuring the Google Drive Connectoredit

Configuring the Google Drive connector is the first step prior to connecting the Google Drive service to Workplace Search, and requires that you create an OAuth App from the Google Drive platform.


Step 1. To get started, log in to the Google Developer Console.

Make sure that you create this project with a trusted and stable Google account. Personal documents of the Google account used to connect are also indexed. We recommend using a team-owned account.


Step 2. We must first create a project, add access to the Google Drive API to it. Click Create when prompted:

Figure 53. Connecting Google Drive

If you already have active projects, you can create a new project from the Project Dropdown menu:

Figure 54. Connecting Google Drive

Fill in the project information in a way that best suits your organization.


Step 3. Using the search bar located at the top of the console, navigate to the Google Drive API:

Figure 55. Connecting Google Drive

Step 4. Enable access to the Google Drive API for this project:

Figure 56. Connecting Google Drive

Step 5. You will be prompted to Create Credentials:

Figure 57. Connecting Google Drive

Step 6. Select Google Drive API as the API you are using. You will call it from Web browser to access User data:

Figure 58. Connecting Google Drive

Step 7. Click What credentials do I need?, and select the Set up consent screen option:

Figure 59. Connecting Google Drive

Step 8. Select Internal as User Type.


Step 9. Fill out the information in the OAuth Consent Screen form.

Figure 60. Connecting Google Drive

Step 10. In the Scopes for Google APIs section, click Add scope and select the following scopes for the Google Drive API:

../auth/drive.file
../auth/drive.appdata
Figure 61. Connecting Google Drive

Save the changes.


Step 11. We must now create credentials for the OAuth application. Locate the Credentials menu item in the left sidebar, click Create Credentials and select OAuth Client ID.

Figure 62. Connecting Google Drive

Step 12. Fill out the OAuth form:

  • Application type: Web application.
  • Name: Whichever feels best for you. Workplace Search makes sense, keeps things clear.
  • Authorized JavaScript origins: The base URL at which Workplace Search is hosted (scheme + host, no path).

    Examples:

    # Deployment using a custom domain name
    https://www.example.com
    
    # Deployment using a default Elastic Cloud domain name
    https://c3397e558e404195a982cb68e84fbb42.ent-search.us-east-1.aws.found.io
    
    # Unsecured local development environment
    http://localhost:3002
  • Authorized redirect URIs: The following two URLs, substituting <WS_BASE_URL> with the base URL at which Workplace Search is hosted (scheme + host, no path).

    <WS_BASE_URL>/ws/org/sources/google_drive/create
    <WS_BASE_URL>/ws/sources/google_drive/create

    Examples:

    # Deployment using a custom domain name
    https://www.example.com/ws/org/sources/google_drive/create
    https://www.example.com/ws/sources/google_drive/create
    
    # Deployment using a default Elastic Cloud domain name
    https://c3397e558e404195a982cb68e84fbb42.ent-search.us-east-1.aws.found.io/ws/org/sources/google_drive/create
    https://c3397e558e404195a982cb68e84fbb42.ent-search.us-east-1.aws.found.io/ws/sources/google_drive/create
    
    # Unsecured local development environment
    http://localhost:3002/ws/org/sources/google_drive/create
    http://localhost:3002/ws/sources/google_drive/create
Figure 63. Connecting Google Drive

Step 13. Upon submission, you will be presented with a Client ID and Client Secret. Keep them handy, as we’ll need them in a moment.


Step 14. From the Workplace Search administrative dashboard’s Sources area, locate Google Drive, click Configure and provide both the Client ID and Client Secret.

Voilà! The Google Drive connector is now configured, and ready to be used to synchronize content. In order to capture data, you must now connect a Google Drive instance with the adequate authentication credentials.

Connecting Google Drive to Workplace Searchedit

Once the Google Drive connector has been configured, you may connect a Google Drive instance to your organization.


Step 1. Head to your organization’s Workplace Search administrative dashboard, and locate the Sources tab.


Step 2. Click Add a new source.


Step 3. Select Google Drive in the Configured Sources list, and follow the Google Drive authentication flow as presented.


Step 4. Upon the successful authentication flow, you will be redirected to Workplace Search.

Google Drive content will now be captured and will be ready for search gradually as it is synced. Once successfully configured and connected, the Google Drive synchronization automatically occurs every 2 hours.

Document-level permissionsedit

You can synchronize document access permissions from Google Drive to Workplace Search. This will ensure the right people see the right documents.

See Document-level permissions for Google.