From d9fac31a7a196215e0cb82b1b62b5c43658c17da Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Thu, 4 Dec 2025 15:36:08 -0800 Subject: [PATCH] Create task task-035 --- ...a-Sovereignty-Zone-Private-Workspace-UI.md | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 backlog/tasks/task-035 - Data-Sovereignty-Zone-Private-Workspace-UI.md diff --git a/backlog/tasks/task-035 - Data-Sovereignty-Zone-Private-Workspace-UI.md b/backlog/tasks/task-035 - Data-Sovereignty-Zone-Private-Workspace-UI.md new file mode 100644 index 0000000..ca216ff --- /dev/null +++ b/backlog/tasks/task-035 - Data-Sovereignty-Zone-Private-Workspace-UI.md @@ -0,0 +1,47 @@ +--- +id: task-035 +title: 'Data Sovereignty Zone: Private Workspace UI' +status: In Progress +assignee: [] +created_date: '2025-12-04 23:36' +labels: + - feature + - privacy + - google + - ui +dependencies: + - task-025 +priority: 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 +