[Improvement] UX for connectors: Google drive Picker, auto-index with default configs#867
Conversation
…ndling - Add check_permission to drive-picker-token endpoint (IDOR fix) - Use get_composio_service singleton + asyncio.to_thread to avoid blocking the event loop - Sanitize error detail in 500 response to prevent internal info leakage - Dispose picker on unmount to prevent orphaned overlay - Surface error state on Google Picker Action.ERROR instead of silently closing
Resolve 3 conflicts: - connector-popup.tsx: keep Picker modal coordination (pickerOpen state) - google-drive-config.tsx: keep Google Picker, discard upstream folder tree - composio-drive-config.tsx: accept upstream collapsible folder tree UX
|
@CREDO23 is attempting to deploy a commit to the Rohan Verma's projects Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
Review by RecurseML
🔍 Review performed on 8f1544c..89ed845
✨ No bugs found, your code is sparkling clean
✅ Files analyzed, no issues (15)
• surfsense_backend/.env.example
• surfsense_backend/app/config/__init__.py
• surfsense_backend/app/connectors/composio_gmail_connector.py
• surfsense_backend/app/connectors/google_gmail_connector.py
• surfsense_backend/app/routes/search_source_connectors_routes.py
• surfsense_web/components/assistant-ui/connector-popup.tsx
• surfsense_web/components/assistant-ui/connector-popup/connector-configs/components/composio-drive-config.tsx
• surfsense_web/components/assistant-ui/connector-popup/connector-configs/components/google-drive-config.tsx
• surfsense_web/components/assistant-ui/connector-popup/constants/connector-constants.ts
• surfsense_web/components/assistant-ui/connector-popup/hooks/use-connector-dialog.ts
• surfsense_web/components/markdown-viewer.tsx
• surfsense_web/hooks/use-google-picker.ts
• surfsense_web/lib/apis/connectors-api.service.ts
• surfsense_web/package.json
• surfsense_web/pnpm-lock.yaml
Description
Change Type
Testing Performed
Checklist
High-level PR Summary
This PR enhances connector UX by replacing the custom Google Drive folder tree with the native Google Picker API for file/folder selection, implementing auto-indexing with default configurations for OAuth connectors (emails, calendars, tasks, etc.) to automatically start syncing after connection, and fixing Gmail HTML-to-markdown conversion by properly cleaning nested tables and HTML elements using BeautifulSoup. The changes streamline the connection experience by reducing manual configuration steps and improving email content readability.
⏱️ Estimated Review Time: 30-90 minutes
💡 Review Order Suggestion
surfsense_backend/.env.examplesurfsense_backend/app/config/__init__.pysurfsense_web/package.jsonsurfsense_web/pnpm-lock.yamlsurfsense_web/components/assistant-ui/connector-popup/constants/connector-constants.tssurfsense_backend/app/services/composio_service.pysurfsense_web/lib/apis/connectors-api.service.tssurfsense_backend/app/routes/search_source_connectors_routes.pysurfsense_web/hooks/use-google-picker.tssurfsense_web/components/assistant-ui/connector-popup/components/google-drive-config.tsxsurfsense_web/components/assistant-ui/connector-popup/components/composio-drive-config.tsxsurfsense_web/components/assistant-ui/connector-popup/hooks/use-connector-dialog.tssurfsense_web/components/assistant-ui/connector-popup.tsxsurfsense_backend/app/connectors/composio_gmail_connector.pysurfsense_backend/app/connectors/google_gmail_connector.pysurfsense_web/components/markdown-viewer.tsxsurfsense_web/components/markdown-viewer.tsx