Skip to content

GS: Google Sheets integration project #398

Description

@BorisTyshkevich

Summary

Implement the browser-only Google Sheets integration defined by the repository design catalog introduced in #397.

Design entry point:

Product scope

  • One-time snapshot export.
  • Create or attach a linked spreadsheet.
  • Manual refresh through a hyperlink that launches the ClickHouse-hosted SPA.
  • Failure-safe full refresh through staging.
  • Large-result streaming and quota handling.
  • Append-only refresh for validated ClickHouse 26.8+ MergeTree-family sources using per-partition _block_number / _block_offset checkpoints.
  • Refresh history, repair, and unlink workflows.

Non-goals

  • Scheduled/background refresh.
  • Refresh while SQL Browser is closed.
  • SELECT ... STREAM.
  • Updates/deletes/upserts in append mode.
  • Google Docs, Apps Script, service accounts, or an application backend.
  • Strict distributed locking between collaborators.

Project acceptance criteria

  • Existing behavior is unchanged when Google Sheets configuration is absent.
  • Google and ClickHouse authorization remain independent and browser-only.
  • Linked refresh preserves previous committed data on every pre-publication failure.
  • No silent truncation or silent append-to-full fallback occurs.
  • Managed resources are identified by stable IDs and metadata, not names.
  • Append mode is capability-gated and invalidates safely.
  • Design changes are updated in the catalog in the same PR as implementation changes.

Implementation sequence

Dependency outline

#399
  ↓
#400
  ↓
#401
  ↓
#402
  ├──→ #403
  └──→ #404
          ↓
        #405

Design baseline

#397 is documentation-only and should be reviewed before feature implementation begins.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions