canvas-website/backlog/tasks/task-035 - Data-Sovereignty...

2.1 KiB

id title status assignee created_date updated_date labels dependencies priority
task-035 Data Sovereignty Zone: Private Workspace UI In Progress
2025-12-04 23:36 2025-12-05 00:41
feature
privacy
google
ui
task-025
high

Description

Implement privacy-first UX for managing LOCAL (encrypted IndexedDB) vs SHARED (collaborative) data on the canvas.

Key features:

  • Google Integration card in Settings modal
  • Data Browser popup for selecting encrypted items
  • Private Workspace zone (toggleable, frosted glass container)
  • Visual distinction: 🔒 shaded overlay for local, normal for shared
  • Permission prompt when dragging items outside workspace

Design decisions:

  • Toggleable workspace that can pin to viewport
  • Items always start private, explicit share action required
  • ZK integration deferred to future phase
  • R2 upload visual-only for now

Worktree: /home/jeffe/Github/canvas-website-branch-worktrees/google-export Branch: feature/google-export

Acceptance Criteria

  • #1 Google Workspace integration card in Settings Integrations tab
  • #2 Data Browser popup with service tabs and item selection
  • #3 Private Workspace zone shape with frosted glass effect
  • #4 Privacy badges (lock/globe) on items showing visibility
  • #5 Permission modal when changing visibility from local to shared
  • #6 Zone can be toggled visible/hidden and pinned to viewport

Implementation Notes

Phase 1 complete (c9c8c00):

  • Added Google Workspace section to Settings > Integrations tab

  • Connection status badge and import counts display

  • Connect/Disconnect buttons with loading states

  • Added getStoredCounts() method to GoogleDataService

  • Privacy messaging about AES-256 encryption

Phase 2 complete (a754ffa):

  • GoogleDataBrowser component with service tabs

  • Searchable, multi-select item list

  • Dark mode support

  • Privacy messaging and 'Add to Private Workspace' action