-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Add Microsoft Teams connector to surfsense #684
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
Add Microsoft Teams connector to surfsense #684
Conversation
|
@manojag115 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 3c93c74..4532cc3
✨ No bugs found, your code is sparkling clean
✅ Files analyzed, no issues (22)
• 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/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
|
@RecurseML review |
Description
Add Microsoft Teams connector to surfsense. See below screenshots for celery worker logs and ui being able to search through teams messages
Steps followed:
Motivation and Context
FIX #147
Screenshots
API Changes
Change Type
Testing Performed
Checklist
High-level PR Summary
This PR adds a new Microsoft Teams connector to SurfSense, enabling users to connect their Teams workspaces and index messages from channels they have access to. The implementation follows the existing connector pattern with OAuth 2.0 authentication via Microsoft Graph API, secure token encryption and refresh, message indexing with date range filtering, and full integration into the search and chat functionality. Both backend (Python/FastAPI) and frontend (TypeScript/React) components are added, along with a database migration to support the new
TEAMS_CONNECTORenum values.⏱️ Estimated Review Time: 30-90 minutes
💡 Review Order Suggestion
surfsense_backend/.env.examplesurfsense_backend/app/config/__init__.pysurfsense_backend/app/db.pysurfsense_web/contracts/enums/connector.tssurfsense_web/contracts/types/connector.types.tssurfsense_backend/alembic/versions/59_add_teams_connector_enums.pysurfsense_backend/app/schemas/teams_auth_credentials.pysurfsense_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/services/connector_service.pysurfsense_backend/app/utils/connector_naming.pysurfsense_backend/app/utils/periodic_scheduler.pysurfsense_backend/app/routes/__init__.pysurfsense_backend/app/agents/new_chat/tools/knowledge_base.pysurfsense_web/components/assistant-ui/connector-popup/constants/connector-constants.tssurfsense_web/components/assistant-ui/connector-popup/connector-configs/components/teams-config.tsxsurfsense_web/components/assistant-ui/connector-popup/connector-configs/index.tsxsurfsense_web/components/assistant-ui/connector-popup/utils/connector-document-mapping.tssurfsense_web/contracts/enums/connectorIcons.tsx