From 16acd3d6ef5d2d733d9add2a19492b69c56f00d7 Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Thu, 4 Dec 2025 12:43:47 -0800 Subject: [PATCH] Update task task-025 --- ...gle-Export-Local-First-Data-Sovereignty.md | 44 ++++++++++++++----- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/backlog/tasks/task-025 - Google-Export-Local-First-Data-Sovereignty.md b/backlog/tasks/task-025 - Google-Export-Local-First-Data-Sovereignty.md index d7d9848..20e3963 100644 --- a/backlog/tasks/task-025 - Google-Export-Local-First-Data-Sovereignty.md +++ b/backlog/tasks/task-025 - Google-Export-Local-First-Data-Sovereignty.md @@ -4,7 +4,7 @@ title: 'Google Export: Local-First Data Sovereignty' status: In Progress assignee: [] created_date: '2025-12-04 20:25' -updated_date: '2025-12-04 20:28' +updated_date: '2025-12-04 20:43' labels: - feature - google @@ -27,19 +27,43 @@ Architecture docs in: docs/GOOGLE_DATA_SOVEREIGNTY.md ## Acceptance Criteria -- [ ] #1 OAuth 2.0 with PKCE flow for Google APIs -- [ ] #2 IndexedDB schema for encrypted data storage -- [ ] #3 WebCrypto key derivation from master key -- [ ] #4 Gmail import with pagination and progress -- [ ] #5 Drive document import -- [ ] #6 Photos thumbnail import -- [ ] #7 Calendar event import -- [ ] #8 Share to board functionality -- [ ] #9 R2 encrypted backup/restore +- [x] #1 OAuth 2.0 with PKCE flow for Google APIs +- [x] #2 IndexedDB schema for encrypted data storage +- [x] #3 WebCrypto key derivation from master key +- [x] #4 Gmail import with pagination and progress +- [x] #5 Drive document import +- [x] #6 Photos thumbnail import +- [x] #7 Calendar event import +- [x] #8 Share to board functionality +- [x] #9 R2 encrypted backup/restore ## Implementation Notes Starting implementation - reviewed architecture doc GOOGLE_DATA_SOVEREIGNTY.md + +Implemented core Google Data Sovereignty module: + +- types.ts: Type definitions for all encrypted data structures + +- encryption.ts: WebCrypto AES-256-GCM encryption, HKDF key derivation, PKCE utilities + +- database.ts: IndexedDB schema with stores for gmail, drive, photos, calendar, sync metadata, encryption metadata, tokens + +- oauth.ts: OAuth 2.0 PKCE flow for Google APIs with encrypted token storage + +- importers/gmail.ts: Gmail import with pagination, progress tracking, batch storage + +- importers/drive.ts: Drive import with folder navigation, Google Docs export + +- importers/photos.ts: Photos import with thumbnail caching, album support + +- importers/calendar.ts: Calendar import with date range filtering, recurring events + +- share.ts: Share service for creating tldraw shapes from encrypted data + +- backup.ts: R2 backup service with encrypted manifest, checksum verification + +- index.ts: Main module with GoogleDataService class and singleton pattern