Altinity / Altinity/altinity-sql-browser

GS: Google Sheets integration project

Open
#398 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

cool feature
Dominant language
TypeScript
Stars
8
Forks
2
Avg merge
1h 34m
Merged PRs (30d)
6

Description

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

  • #399 — Google OAuth, Picker, and snapshot export
  • #400 — Linked-sheet resource and ClickHouse binding storage
  • #401 — Managed spreadsheet layout and manual refresh route
  • #402 — Failure-safe full refresh and large-result transfer
  • #403 — ClickHouse 26.8+ commit-cursor append refresh
  • #404 — Refresh history, repair, and unlink workflows
  • #405 — End-to-end Google Sheets integration test suite

Dependency outline

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

Design baseline

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

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the design catalog in docs/design/google-sheets/README.md and review #397 before implementation. Follow the dependency sequence from #399 through #405, beginning with OAuth, Picker, and snapshot export. Done means the listed acceptance criteria are met, including failure-safe refresh, capability-gated append mode, and matching catalog updates.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.