Skip to content

Google Drive

Ingests Drive as a property graph: files, folders, their owners, and the folder structure that connects them. Metadata only — it never downloads file content (scope drive.metadata.readonly). Walks files.list page-by-page, carrying the page token in its cursor so a large drive is covered across ticks and then re-walked to pick up changes.

OAuth data source

Authorize once with Connect in the UI. Provider slug google (shared with Gmail); see OAuth data sources for the Google Cloud app setup. Requested scope: https://www.googleapis.com/auth/drive.metadata.readonly.

Connect

  1. Data sources → Add data source → Google Drive.
  2. Name it, Connect Google Drive, approve access.
  3. (Optional) restrict to specific folder ids, or enable shared drives.
  4. Pick a sync interval and Create.

What it ingests

A property graph under googledrive_nodes / googledrive_edges (graph name googledrive); ids are prefixed gdrive:.

Nodes

LabelIdKey props
Foldergdrive:{fileId}name, modifiedTime, webViewLink, trashed
Filegdrive:{fileId}name, mimeType, size, modifiedTime, webViewLink
Usergdrive:user:{email}name, email

Edges

TypeFrom → ToMeaning
CONTAINSFolder → File/Folderfolder structure (one per parent)
OWNED_BYFile/Folder → Userownership

Configuration

FieldTypeDefaultDescription
credential_iduuid— (required)the OAuth2 credential (set by the Connect flow)
foldersstring[][]restrict to direct children of these folder ids; empty = whole drive
include_shared_drivesboolfalsealso walk shared drives
max_pages_per_tickint10files.list pages per tick (≤100 files each)
json
{
  "credential_id": "0e8f…",
  "folders": [],
  "include_shared_drives": false,
  "max_pages_per_tick": 10
}

Default sync interval is 10 minutes.

An open-source project · MIT licensed.