Skip to content

As a developer working on data ingestion architecture I want a Teams connector that autonomously syncs meeting video data to Azure storage #146

@emincalyakaisskar

Description

@emincalyakaisskar

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions