diff --git a/backend/danswer/configs/constants.py b/backend/danswer/configs/constants.py index 58a782541..73013b88e 100644 --- a/backend/danswer/configs/constants.py +++ b/backend/danswer/configs/constants.py @@ -100,6 +100,7 @@ class DocumentSource(str, Enum): AXERO = "axero" MEDIAWIKI = "mediawiki" WIKIPEDIA = "wikipedia" + TEAMS = "teams" class DocumentIndexType(str, Enum): diff --git a/backend/danswer/connectors/factory.py b/backend/danswer/connectors/factory.py index 37ecd8f59..1b7a203f2 100644 --- a/backend/danswer/connectors/factory.py +++ b/backend/danswer/connectors/factory.py @@ -82,6 +82,7 @@ def identify_connector_class( DocumentSource.AXERO: AxeroConnector, DocumentSource.MEDIAWIKI: MediaWikiConnector, DocumentSource.WIKIPEDIA: WikipediaConnector, + DocumentSource.TEAMS: TeamsConnector, } connector_by_source = connector_map.get(source, {}) diff --git a/web/src/components/icons/icons.tsx b/web/src/components/icons/icons.tsx index 04d003a59..a7b407a85 100644 --- a/web/src/components/icons/icons.tsx +++ b/web/src/components/icons/icons.tsx @@ -57,6 +57,7 @@ import teamsIcon from "../../../public/Teams.png"; import mediawikiIcon from "../../../public/MediaWiki.svg"; import wikipediaIcon from "../../../public/Wikipedia.svg"; import discourseIcon from "../../../public/Discourse.png"; +import teamsIcon from "../../../public/Teams.png"; import { FaRobot } from "react-icons/fa"; interface IconProps { diff --git a/web/src/lib/sources.ts b/web/src/lib/sources.ts index 597f45f4d..63717f196 100644 --- a/web/src/lib/sources.ts +++ b/web/src/lib/sources.ts @@ -190,6 +190,11 @@ const SOURCE_METADATA_MAP: SourceMap = { displayName: "MediaWiki", category: SourceCategory.AppConnection, }, + teams: { + icon: TeamsIcon, + displayName: "Teams", + category: SourceCategory.AppConnection, + }, requesttracker: { icon: RequestTrackerIcon, displayName: "Request Tracker", diff --git a/web/src/lib/types.ts b/web/src/lib/types.ts index f20173d1d..dd37a27a5 100644 --- a/web/src/lib/types.ts +++ b/web/src/lib/types.ts @@ -141,6 +141,10 @@ export interface AxeroConfig { spaces?: string[]; } +export interface TeamsConfig { + teams?: string[]; +} + export interface ProductboardConfig {} export interface SlackConfig { @@ -395,6 +399,12 @@ export interface AxeroCredentialJson { export interface MediaWikiCredentialJson {} export interface WikipediaCredentialJson extends MediaWikiCredentialJson {} +export interface TeamsCredentialJson { + aad_client_id: string; + aad_client_secret: string; + aad_directory_id: string; +} + // DELETION export interface DeletionAttemptSnapshot {