Commit graph

1075 commits

Author SHA1 Message Date
Anish Sarkar
645e849d93 chore: ran both frontend and backend linting 2026-01-03 00:18:17 +05:30
Anish Sarkar
45489423d1 feat: implement token encryption and state management for OAuth connectors
- Added encryption for sensitive tokens (access token, refresh token, client secret) in Google Calendar, Google Drive, Gmail, Linear, and Notion connectors to enhance security.
- Introduced OAuthStateManager for secure state parameter generation and validation, improving the integrity of OAuth flows.
- Updated callback routes to handle state validation and error management, ensuring robust handling of authorization processes.
- Enhanced indexers to support decryption of tokens for backward compatibility, maintaining functionality with existing encrypted credentials.
- Improved validation for date parameters in connector routes to ensure proper input handling.
2026-01-02 23:46:03 +05:30
Anish Sarkar
ec7599362d feat: enhance OAuth callback handling for Airtable, Linear, and Notion connectors if user deny access
- Updated callback routes to handle optional error parameters for OAuth flows, improving user experience during authorization failures.
- Implemented error logging and redirection logic to provide feedback when access is denied or errors occur.
- Added validation for required parameters to ensure proper handling of authorization codes and state parameters.
- Enhanced documentation in the callback functions to clarify the purpose of each parameter.
2026-01-02 21:44:50 +05:30
Anish Sarkar
b81af397c0 feat: add Linear OAuth integration and connector routes
- Introduced Linear OAuth support with new environment variables for client ID, client secret, and redirect URI.
- Implemented Linear connector routes for OAuth flow, including authorization and callback handling.
- Updated existing components to accommodate Linear integration, including validation changes and connector configuration.
- Enhanced the Linear indexer to utilize OAuth access tokens instead of API keys.
- Adjusted UI components to reflect the new Linear connector without requiring special configuration.
2026-01-02 21:24:28 +05:30
Anish Sarkar
c5b184d475 feat: add Notion OAuth integration and connector routes
- Introduced Notion OAuth support with new environment variables for client ID, client secret, and redirect URI.
- Implemented Notion connector routes for OAuth flow, including authorization and callback handling.
- Updated existing components to accommodate Notion integration, including validation changes and connector configuration.
- Enhanced the Notion indexer to utilize OAuth access tokens instead of integration tokens.
- Adjusted UI components to reflect the new Notion connector without requiring special configuration.
2026-01-02 20:07:14 +05:30
Anish Sarkar
2b01120c2b refactor: disable write_todos functionality across chat and UI components
- Commented out the write_todos tracking and messaging logic in the stream_new_chat.py file.
- Disabled the import and usage of WriteTodosToolUI in the new-chat page component.
- Updated related logic in the active connectors tab to remove indexing state handling for write_todos.
- These changes are part of a temporary disablement of the write_todos feature for further evaluation.
2026-01-02 18:22:38 +05:30
DESKTOP-RTLN3BA\$punk
9029f5c621 feat: implement redirect-based OAuth authorization for Google login
- Added a new endpoint `/auth/google/authorize-redirect` to handle OAuth authorization via server-side redirect, addressing CSRF cookie issues in Firefox/Safari.
- Updated the `GoogleLoginButton` component to use the new redirect endpoint instead of the previous JSON-based authorization method.
- Enhanced CSRF cookie handling by explicitly setting the cookie domain and ensuring compatibility with cross-origin requests.
2026-01-02 00:25:02 -08:00
DESKTOP-RTLN3BA\$punk
2832d57bda chore: linting 2026-01-01 22:56:37 -08:00
Anish Sarkar
fda682c9e7 Merge remote-tracking branch 'upstream/dev' into fix/connector 2026-01-01 02:03:02 +05:30
CREDO23
9c78726b6b feat: add file selection to Google Drive connector
- Add structured request body with folders and files arrays
- Support individual file indexing alongside folder indexing
- Remove deprecated folder_ids/folder_names query params
- Update UI to allow selecting both folders and files
2025-12-31 14:15:07 +02:00
Anish Sarkar
d21e800740 Merge remote-tracking branch 'upstream/dev' into fix/connector 2025-12-31 17:26:10 +05:30
Anish Sarkar
163df8fda7 feat: Enhance connector management UI with improved loading states, add document count display for connectors, and implement indexing progress indicators for better user feedback. 2025-12-31 17:21:26 +05:30
Anish Sarkar
ddfbb9509b feat: Implement connector editing functionality in the popup, including Google Drive folder selection, and enhance connector management with improved state handling and UI updates. 2025-12-31 02:00:11 +05:30
DESKTOP-RTLN3BA\$punk
476c764611 feat: fix Circleback connector and update related enums 2025-12-30 12:13:18 -08:00
DESKTOP-RTLN3BA\$punk
c19d300c9d feat: added circleback connector 2025-12-30 09:00:59 -08:00
Anish Sarkar
2898192ac4 feat: Update redirect URLs in connector routes to include success parameters and improve indexing configuration handling in the connector popup. 2025-12-30 19:49:28 +05:30
Rohan Verma
23870042f3
Merge pull request #640 from CREDO23/google-drive-connector
[Feat] Add Google drive connector
2025-12-29 20:51:34 -08:00
CREDO23
7618662e70 refactor: rename GOOGLE_DRIVE_CONNECTOR to GOOGLE_DRIVE_FILE document type 2025-12-29 20:38:26 +02:00
CREDO23
16bc991b13 feat: add Google Drive connector to knowledge base search 2025-12-29 18:13:27 +02:00
DESKTOP-RTLN3BA\$punk
35904ba0c8 Merge branch 'dev' of https://github.com/MODSetter/SurfSense into dev 2025-12-28 15:54:10 -08:00
DESKTOP-RTLN3BA\$punk
46eb63fa11 hotpatch: remove consitent 2 sec interval api call to logs summary endpoint 2025-12-28 15:52:58 -08:00
Anish Sarkar
7a852f0ea5 feat: Enhance todo status normalization and update schema for improved task management 2025-12-29 01:08:18 +05:30
CREDO23
27beac4f62 fix: Google Drive folder handling and connector page updates 2025-12-28 19:57:10 +02:00
CREDO23
c5c61a2c6b Merge branch 'dev' into google-drive-connector
Merge in dev
2025-12-28 19:00:09 +02:00
CREDO23
acf47e3b0c refactor(connectors): remove verbose docstrings and obvious comments
- Simplify module docstrings (remove meta-commentary about 'small focused modules')
- Remove redundant inline comments (e.g., 'Log task start', 'Get connector from database')
- Trim verbose function docstrings to essential information only
- Remove over-explanatory comments that restate what code does
- Keep necessary documentation, remove noise for better readability
2025-12-28 18:53:13 +02:00
CREDO23
506a9297a9 fix(connectors): track delta sync tokens per folder for Google Drive
- Store tokens in folder_tokens dict instead of single global token
- Each folder now tracks its own sync state independently
- Fixes issue where indexing folder 2 incorrectly used delta sync after folder 1 was indexed
- First-time indexing now correctly uses full scan for each new folder
2025-12-28 18:32:59 +02:00
CREDO23
a5935bc677 feat(connectors): add connector parameter to file processor for source tracking
- Add optional 'connector' parameter with 'type' and 'metadata' fields
- Create helper function _update_document_from_connector
- Use document_metadata column (not metadata) for JSON field
- Merge metadata with existing using dict spread operator
- Google Drive documents now marked as GOOGLE_DRIVE_CONNECTOR
- Backward compatible - no changes to existing logic
- Simple and clean implementation
2025-12-28 18:01:39 +02:00
CREDO23
8da58be9e0 fix(connectors): refresh document from DB before updating type
- Query document from database to ensure it's attached to session
- Prevents detached instance errors after process_file_in_background commits
- Properly updates document_type and metadata with session management
2025-12-28 17:21:44 +02:00
CREDO23
b2b891e4d7 fix(connectors): properly commit Google Drive document type changes
- Return file metadata from content_extractor for indexer to use
- Update document type and metadata in indexer after processing
- Explicitly commit changes to database
- Ensures documents are properly marked as GOOGLE_DRIVE_CONNECTOR type
2025-12-28 17:15:29 +02:00
CREDO23
9f1fd20944 feat(connectors): mark Google Drive documents with GOOGLE_DRIVE_CONNECTOR type
- Change document_type from file type (PDF, DOCX) to GOOGLE_DRIVE_CONNECTOR
- Store original file type in metadata for reference
- Add Google Drive specific metadata (file_id, mime_type, source)
- Include export format info for Google Workspace files
- Enables proper source tracking and bulk management
2025-12-28 16:55:14 +02:00
CREDO23
c9815fd6fb feat(celery): update Google Drive task for multiple folders
- Accept comma-separated folder_ids and folder_names parameters
- Pass through to indexing function for batch processing
2025-12-28 16:49:47 +02:00
CREDO23
634eeb887e feat(routes): support multiple Google Drive folder indexing
- Accept comma-separated folder_ids and folder_names
- Loop through each folder and index sequentially
- Collect total indexed count and errors
- Update timestamp only on full success
2025-12-28 16:49:20 +02:00
CREDO23
1c83327fc7 feat(celery): add Google Drive indexing Celery task
- Create async task for Google Drive folder indexing
- Accept folder_id and folder_name parameters
- Call indexing wrapper to avoid circular imports
2025-12-28 15:56:11 +02:00
CREDO23
358abdf02f feat(routes): add Google Drive indexing support with folder selection
- Accept folder_id and folder_name as indexing parameters
- Hide date range for Google Drive connectors
- Create wrapper function to avoid circular imports
- Trigger Google Drive indexing Celery task
2025-12-28 15:55:57 +02:00
CREDO23
7b8900d51f feat(indexer): export Google Drive indexer function 2025-12-28 15:55:46 +02:00
CREDO23
501d08f2f4 feat(routes): register Google Drive OAuth router 2025-12-28 15:55:38 +02:00
CREDO23
1696c7056a feat(indexer): add Google Drive folder indexing with delta sync
- Full folder scan on first index
- Delta sync using change tracking for subsequent indexes
- Process files in parallel batches
- Handle file additions, modifications, and deletions
- Store change tracking token for efficient re-indexing
2025-12-28 15:55:25 +02:00
CREDO23
bf02005d82 feat(routes): add Google Drive OAuth and folder listing endpoints
- OAuth initialization and callback handling
- Folder and file browsing with parent_id support
- Validate credentials and handle token refresh
- Return folder contents with metadata for UI tree view
2025-12-28 15:55:13 +02:00
CREDO23
3e67d5f31e feat(connectors): add Google Drive delta sync with change tracking
- Get start page token for change tracking baseline
- Fetch incremental changes using Google Drive Changes API
- Categorize changes into added, modified, and removed files
- Enable efficient re-indexing of only changed content
2025-12-28 15:55:06 +02:00
CREDO23
84bde67979 feat(connectors): add Google Drive folder browsing and file listing
- List folder contents with full pagination support
- Query root folder or specific parent folder
- Return both folders and files with metadata (size, icons, links)
- Filter out shortcuts and trashed items
2025-12-28 15:54:58 +02:00
CREDO23
40304c6795 feat(connectors): add Google Drive content extraction using existing ETL
- Download files from Google Drive to temporary location
- Export Google Workspace files as PDF
- Delegate content extraction to existing process_file_in_background
- Reuse Surfsense's ETL services (Unstructured, LlamaCloud, Docling)
2025-12-28 15:54:50 +02:00
CREDO23
701c3409b3 feat(connectors): add Google Drive file type detection and mapping
- Detect Google Workspace files (Docs, Sheets, Slides)
- Map to PDF export format to preserve rich content (images, formatting)
- Identify files to skip (shortcuts, unsupported types)
2025-12-28 15:54:42 +02:00
CREDO23
74386affdc feat(connectors): add Google Drive API client wrapper
- Build and manage Google Drive service with credentials
- List files with query support and pagination
- Download binary files and export Google Workspace files as PDF
- Handle HTTP errors gracefully
2025-12-28 15:54:32 +02:00
CREDO23
2c8717b14b feat(connectors): add Google Drive credentials module for OAuth management
- Handle Google OAuth credential initialization and validation
- Automatic token refresh with database persistence
- Reuse existing tokens when valid
2025-12-28 15:54:26 +02:00
CREDO23
2897985127 feat(config): add GOOGLE_DRIVE_REDIRECT_URI environment variable 2025-12-28 15:53:51 +02:00
CREDO23
f54079643f feat(db): add GOOGLE_DRIVE_CONNECTOR to DocumentType and SearchSourceConnectorType enums 2025-12-28 15:53:35 +02:00
DESKTOP-RTLN3BA\$punk
9d0721de43 feat: Replace AsyncChromiumLoader with Playwright for web crawling and content extraction in link preview and web crawler connector modules. 2025-12-27 13:58:00 -08:00
Anish Sarkar
74f17f61ec feat: Enhance agent system prompt with write_todos examples, and apply minor code formatting across connector pages and hooks. 2025-12-28 01:41:27 +05:30
Anish Sarkar
0164659f7a refactor: comment out ls tool handling, update assistant UI colors and spacing. 2025-12-28 01:30:53 +05:30
Anish Sarkar
8b10b0cd24 feat: Display document reindexing status in the sidebar by adding document ID to logs 2025-12-28 01:07:42 +05:30