-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
As a developer working on data ingestion architecture
I want a Teams connector that autonomously syncs meeting video data to Azure storage
So that we can validate our connector architecture pattern and provide rich meeting context to our chatbot
WHY - Business Context
This Teams connector serves as a POC to define and validate the architecture for data connectors that will feed contextual data to our chatbot. This is the first implementation to challenge our design patterns and identify technical constraints.
Definition of Done :
Core Functionality
- Connector retrieves all meetings from the last 30 days using personal token
- Downloads meeting videos in MP4 format to Azure storage
- Organizes files by date structure (e.g., /2025/01/15/meeting_name_id.mp4)
- Generates JSON metadata file alongside each video file
- Skips already downloaded meetings (no re-download)
- Handles metadata updates for existing meetings
Trigger System
- Cron trigger: Configurable scheduled execution
- Manual trigger: Script can be executed on-demand via CLI
Event driven : Define the how if it is possible
Error Handling & Edge Cases
- Skips inaccessible videos without breaking the sync process
- Logs all operations (success/failure/skip) for debugging
- Handles API rate limiting gracefully
- Continues processing other meetings if one fails
Configuration & Security
- Reads Microsoft Graph token from .env file (local development)
- Azure storage credentials properly configured
Technical Implementation
- Implements abstract connector interface/pattern
- Runs asynchronously without blocking
- Code is structured to serve as architecture reference
- Documentation explains connector pattern for future implementations
Acceptance Criteria Examples
- Given a Teams token in .env, when I run the connector manually, then all new meetings from last 30 days are downloaded to Azure storage
- Given existing meetings in storage, when I run sync again, then only new meetings are processed
- Given an inaccessible meeting, when sync runs, then it logs the error and continues with other meetings
Technical Notes
- Personal token stored in .env for POC (production security TBD)
- Azure storage as target destination
- Focus on architecture patterns that can be replicated for other connectors
- Metadata should include: meeting ID, date, participants, duration, file path