Skip to content

Add Google Sheets as a data source #52

@db-tycoon-stephen

Description

@db-tycoon-stephen

Summary

Add Google Sheets as a first-class data source so users can pull a sheet/range into the local warehouse via tycoon data sources addtycoon data sync.

Approach

Follow the established add-a-source process (source shim + CatalogEntry + dbt staging models). Per project convention, do not bundle the source — pull dlt's verified google_sheets source on demand via dlt init google_sheets duckdb.

  • Wire google_sheets into the source registry + CatalogEntry (id, label, required config keys).
  • Credentials: support service-account JSON (headless/cron-friendly) and document the OAuth path; surface a clear tycoon doctor row when creds are missing/invalid.
  • Non-interactive flags so sources add can be driven without a TTY (consistent with Non-interactive flags for tycoon data sources add (unblocks online recipe doctests) #44).
  • Generate a staging dbt model for the ingested sheet (header row → typed columns).
  • Tests: mock the Sheets client — auth-ok, auth-fail, empty-sheet, range-subset.
  • Docs: short recipe in the sources guide.

Notes

  • Sheets has no native incremental key; first cut is full-refresh replace per sync.
  • Range/tab selection should be a config option (default: first sheet, used range).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions