-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Add Microsoft Teams Connector #679
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Someone 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review by RecurseML
🔍 Review performed on 609fc87..2b074b9
✨ No bugs found, your code is sparkling clean
✅ Files analyzed, no issues (24)
• .vscode/settings.json
• surfsense_backend/.env.example
• surfsense_backend/alembic/versions/59_add_teams_connector_enums.py
• surfsense_backend/app/agents/new_chat/tools/knowledge_base.py
• surfsense_backend/app/config/__init__.py
• surfsense_backend/app/connectors/teams_connector.py
• surfsense_backend/app/connectors/teams_history.py
• surfsense_backend/app/db.py
• surfsense_backend/app/routes/__init__.py
• surfsense_backend/app/routes/search_source_connectors_routes.py
• surfsense_backend/app/routes/teams_add_connector_route.py
• surfsense_backend/app/schemas/teams_auth_credentials.py
• surfsense_backend/app/services/connector_service.py
• surfsense_backend/app/tasks/celery_tasks/connector_tasks.py
• surfsense_backend/app/tasks/connector_indexers/teams_indexer.py
• surfsense_backend/app/utils/connector_naming.py
• surfsense_backend/app/utils/periodic_scheduler.py
• surfsense_web/components/assistant-ui/connector-popup/connector-configs/components/teams-config.tsx
• surfsense_web/components/assistant-ui/connector-popup/connector-configs/index.tsx
• surfsense_web/components/assistant-ui/connector-popup/constants/connector-constants.ts
• surfsense_web/components/assistant-ui/connector-popup/utils/connector-document-mapping.ts
• surfsense_web/contracts/enums/connector.ts
• surfsense_web/contracts/enums/connectorIcons.tsx
• surfsense_web/contracts/types/connector.types.ts
|
@manojag115 Looks good to me. Nice Work. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review by RecurseML
🔍 Review performed on 2b074b9..fed9d73
✨ No bugs found, your code is sparkling clean
✅ Files analyzed, no issues (1)
• .vscode/settings.json
Description
Add Microsoft Teams connector to surfsense.
The implementation is very similar to Slack and Discourse Connectors.
Motivation and Context
FIX #147
Screenshots
See above screenshots for celery worker logs and ui being able to search through teams messages
Steps followed:
API Changes
Change Type
Testing Performed
Checklist
High-level PR Summary
This PR adds a Microsoft Teams connector to SurfSense, enabling users to search and index messages from Teams channels. The implementation follows the existing connector patterns (similar to Slack and Discord) and includes OAuth authentication using Microsoft Graph API, message indexing with date range filtering, token encryption and refresh, database migrations to add
TEAMS_CONNECTORenum values, backend APIs for OAuth flow and indexing, and frontend UI components for connector configuration. The connector supports automatic token refresh, duplicate detection, incremental indexing, and hybrid search for Teams messages.⏱️ Estimated Review Time: 30-90 minutes
💡 Review Order Suggestion
surfsense_backend/app/db.pysurfsense_backend/alembic/versions/59_add_teams_connector_enums.pysurfsense_backend/app/schemas/teams_auth_credentials.pysurfsense_backend/app/config/__init__.pysurfsense_backend/.env.examplesurfsense_backend/app/routes/teams_add_connector_route.pysurfsense_backend/app/connectors/teams_connector.pysurfsense_backend/app/connectors/teams_history.pysurfsense_backend/app/tasks/connector_indexers/teams_indexer.pysurfsense_backend/app/tasks/celery_tasks/connector_tasks.pysurfsense_backend/app/routes/search_source_connectors_routes.pysurfsense_backend/app/routes/__init__.pysurfsense_backend/app/services/connector_service.pysurfsense_backend/app/agents/new_chat/tools/knowledge_base.pysurfsense_backend/app/utils/connector_naming.pysurfsense_backend/app/utils/periodic_scheduler.pysurfsense_web/contracts/enums/connector.tssurfsense_web/contracts/types/connector.types.tssurfsense_web/contracts/enums/connectorIcons.tsxsurfsense_web/components/assistant-ui/connector-popup/constants/connector-constants.tssurfsense_web/components/assistant-ui/connector-popup/utils/connector-document-mapping.tssurfsense_web/components/assistant-ui/connector-popup/connector-configs/components/teams-config.tsxsurfsense_web/components/assistant-ui/connector-popup/connector-configs/index.tsx.vscode/settings.json.vscode/settings.json