Altinity / Altinity/altinity-sql-browser
GS: Google Sheets integration project
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 8
- Forks
- 2
- Ø Merge
- 1 Std. 34 Min.
- Gemergte PRs (30 T.)
- 6
Beschreibung
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_offsetcheckpoints. - 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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem Designkatalog in docs/design/google-sheets/README.md und prüfe vor der Implementierung #397. Folge der Abhängigkeitsreihenfolge von #399 bis #405 und beginne mit OAuth, Picker und dem Snapshot-Export. Erledigt bedeutet, dass die aufgeführten Akzeptanzkriterien erfüllt sind, einschließlich eines ausfallsicheren Refreshs, eines durch Capabilities gesteuerten Append-Modus und übereinstimmender Katalogaktualisierungen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- web-dev
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 20/100