Skip to main content
Version: Next

Google Sheets credentials

Service-account connections​

When configuring Google Sheets with service-account JSON in the database dialog, share private spreadsheets with the service account's client_email. Both catalog validation and queries use the service account, not the Google identity of the administrator adding the spreadsheet. This applies when creating a connection and when editing its catalog.

The dialog's stored impersonate_user flag does not enable domain-wide delegation for this service-account credential path. A spreadsheet shared only with the administrator cannot be validated on that basis, even if the service account has domain-wide delegation enabled. Creating an empty connection and editing it later does not change the identity used to access the spreadsheet.

Upload values​

Date and datetime upload values are sent as ISO strings rather than numeric nanosecond counts. Timezone-aware datetimes are converted to UTC, then uploaded without a timezone suffix so Google Sheets can parse them as datetime cells with USER_ENTERED input. For example, 2024-03-01 00:30:00+02:00 is uploaded as 2024-02-29 22:30:00. The original timezone is not retained; interpret these cell values as UTC. Naive datetimes keep their original clock time.

Nullable integer columns retain integer values in the upload payload, and missing values become empty cells. Time-only values use HH:MM:SS[.ffffff] strings. Durations are sent as signed H:MM:SS[.ffffff] strings, with hours including days.