Sources de documents

Vaks PM · Guide d'intégration · SharePoint · Google Drive · Juillet 2026

Ce que vous obtiendrez. Les documents qui vivent déjà dans SharePoint ou Google Drive deviennent lisibles depuis un projet Vaks PM — par les agents IA comme contexte de travail, et par les membres du projet depuis l'interface. En lecture seule, à la demande, sans jamais copier un fichier.

Ce que ça fait — et ce que ça ne fait pas

Une « source de documents » branche un stockage externe sur un projet, pour que son contenu serve de contexte. Le périmètre est volontairement étroit, et ce sont les limites qui comptent.

Les deux sources

Les deux implémentent le même contrat interne, mais leur mise en place n'a rien à voir : SharePoint hérite d'une identité déjà configurée, Google Drive est un connecteur autonome.

Microsoft SharePointGoogle Drive
IdentitéRéutilise l'identité Graph du provisioning Microsoft Teams — aucun secret à saisir ici.Connecteur autonome : compte de service Google, avec sa propre configuration.
PrérequisUne équipe Teams provisionnée pour le projet (c'est son site/drive qui est lu).Un dossier Drive ou un Shared Drive, et un compte de service qui peut le lire.
Ce qui est luLe drive du site SharePoint de l'équipe du projet.Le Drive partagé du projet s'il a été provisionné ; sinon le dossier racine que vous désignez, et son arborescence.
PortéePar projet (chaque projet a l'équipe qui lui est propre).Par projet si vous activez le provisionnement d'un Drive partagé ; sinon par organisation (un dossier racine commun), activée projet par projet.
ConfigurationModèle d'identité seulement.Mode d'auth, dossier racine, compte de service.

Les deux se configurent au même endroit : Admin → Intégrations → Collaboration spaces, dans le bloc des sources de documents en bas de la section.

Qui lit, et comment

Deux publics, deux chemins, deux règles d'accès — c'est la distinction importante :

Dans les deux cas, la lecture d'un fichier est tracée dans le journal d'audit (action filesource.document.read) : vous savez toujours quel document a été ouvert, par qui, et sur quelle tâche.

Ce qui autorise la lecture

Chaque demande traverse une série de conditions ; la première qui manque produit un refus explicite, jamais un contenu partiel.

ConditionOù elle se règle
Licence activeAdmin → Organisation → Licence
Source configurée et activéeAdmin → Intégrations → Collaboration spaces
Contexte documentaire activé pour le projetOnglet du projet — interrupteur par projet
Agents activés pour le projet (lecture par un agent uniquement)Onglet IA du projet
Appartenance au projet (lecture humaine uniquement)Membres du projet
Accès effectif chez le fournisseurLe grant SharePoint, ou le partage du dossier Drive

SharePoint — identité & accès

SharePoint n'a aucun secret propre : il emprunte l'identité Graph déjà configurée pour le provisioning Microsoft Teams. Il faut donc que Teams soit configuré, et que le projet ait une équipe provisionnée — c'est le site de cette équipe qui est lu.

Le seul choix est le modèle d'identité :

ModèleCe que ça implique
read_allL'application de provisioning lit elle-même les sites. Le plus simple, mais la permission est large : elle porte sur l'ensemble des sites du tenant.
selected_granterUne application « lecteur » distincte reçoit un droit de lecture site par site, posé automatiquement sur le seul site de l'équipe concernée. Nettement plus restreint — le choix recommandé quand votre sécurité regarde de près.

L'accès est vérifié, pas supposé : à la provision d'une équipe, Vaks PM résout son site et son drive et enregistre si le droit est en place. S'il ne l'est pas, le panneau du projet propose de re-vérifier. La mise en place détaillée, côté Entra, vit dans le guide Espaces de collaboration.

Google Drive — étape 1, côté Google

Contrairement à SharePoint, Google Drive ne dépend d'aucun provisioning : il lui faut un compte de service et un dossier que ce compte peut lire.

  1. Activer l'API Drive. Dans un projet Google Cloud, APIs & Services → LibraryGoogle Drive API → activer.
  2. Créer un compte de service. IAM & Admin → Service Accounts. Notez son email …@….iam.gserviceaccount.com.
  3. Donner accès au dossier — deux façons, au choix :
    • Partage direct (le plus simple) : dans Drive, partagez le dossier (ou le Shared Drive) avec l'email du compte de service, en Lecteur. Aucune délégation nécessaire.
    • Délégation domain-wide : autorisez le Client ID du compte de service sur le scope https://www.googleapis.com/auth/drive.readonly dans admin.google.comSécurité → Contrôle des API → Délégation au niveau du domaine, puis désignez un utilisateur à impersoner. Utile quand le dossier ne peut pas être partagé explicitement.
  4. Relever l'ID du dossier racine. Ouvrez le dossier dans Drive : l'ID est la partie de l'URL après /folders/.
Sans clé de compte de service. Si votre organisation applique la règle iam.disableServiceAccountKeyCreation, vous ne pourrez pas télécharger de clé JSON. Le connecteur Drive accepte alors le mode Workload Identity Federation, exactement comme Google Chat : rien n'est téléchargé, Vaks génère sa propre clé de signature et vous collez le JWKS public dans un pool WIF. La marche à suivre côté Google Cloud est identique — voir la section WIF du guide Espaces de collaboration. En mode WIF, l'impersonation est obligatoire.

Google Drive — étape 2, dans Vaks PM

Ouvrez Admin → Intégrations → Collaboration spaces, descendez au bloc des sources de documents, ajoutez Google Drive et renseignez :

ChampQuoi renseigner
Mode d'authentificationClé de compte de service (défaut) ou Workload Identity Federation (sans clé). Le reste du formulaire s'adapte à votre choix.
ID du dossier racine (repli organisation)L'ID relevé à l'étape 1. Tout ce qui est lisible l'est à partir de ce dossier, jamais au-dessus. Ignoré pour les projets qui ont leur propre Drive partagé provisionné — laissez-le vide si tous vos projets en ont un.
Clé du compte de service (mode clé)Le fichier JSON de la clé, collé entier. Stocké chiffré, jamais réaffiché.
Email du compte de service (mode WIF)Le compte de service impersoné via la fédération — aucune clé détenue.
Audience du pool WIF (mode WIF)Le nom de ressource complet du provider WIF, en //iam.googleapis.com/projects/…/providers/….
Utilisateur impersonnéRequis en mode WIF. En mode clé, à laisser vide si le dossier est partagé directement avec le compte de service.

Cliquez sur Tester : le connecteur obtient un jeton et liste le dossier racine, ce qui valide l'authentification et l'accès réel au dossier avant que quiconque en dépende. Puis activez le connecteur.

Fichiers Google natifs

Un Google Docs, Sheets ou Slides n'a pas de fichier binaire téléchargeable — le demander directement échoue. Le connecteur les exporte donc automatiquement en texte exploitable : Docs et Slides en texte brut, Sheets en CSV. C'est transparent : un agent qui demande un Google Docs reçoit son contenu, sans avoir à connaître cette subtilité.

Les autres formats (PDF, Office, texte…) suivent le chemin normal d'extraction de texte. Un format dont on ne sait rien tirer est refusé explicitement plutôt que renvoyé en binaire.

API & outils IA

RouteRôle
GET /api/v1/tasks/{taskId}/context-filesLister un dossier de la source rattachée au projet de la tâche (paginé). Atteignable par un jeton d'agent.
GET /api/v1/tasks/{taskId}/context-files/{source}/{itemId}Texte extrait d'un fichier. Tracé en audit.
GET /api/v1/projects/{id}/context-filesÉquivalent côté projet pour la navigation humaine dans l'interface.
GET /api/v1/projects/{id}/context-files/availabilityIndique si une source est disponible pour ce projet, et sinon pourquoi.

Côté connecteur IA, deux outils suffisent : vaks_list_context_files pour parcourir, vaks_get_context_file pour lire. Un agent commence toujours par lister afin d'obtenir l'identifiant d'un item.

Dépannage

Les refus portent un code machine, repris tel quel ci-dessous — il dit précisément quelle condition a manqué.

CodeCause & correctif
FS_DISABLEDUne bascule manque : licence, source désactivée en admin, contexte documentaire coupé sur le projet, ou agents non activés sur le projet (pour une lecture par agent). Le message précise laquelle.
FS_FORBIDDENL'appelant n'a pas accès à ce projet. Pour un humain, c'est l'appartenance au projet ; pour un agent, le périmètre de sa tâche.
FS_SOURCE_UNAVAILABLELa source n'est pas résolue pour ce projet — typiquement SharePoint sans équipe provisionnée, donc sans drive à lire.
FS_GRANT_PENDINGSharePoint : le droit de lecture n'est pas (encore) posé sur le site. Utilisez la re-vérification d'accès depuis le panneau du projet.
FS_AUTH_FAILEDLe fournisseur a refusé l'authentification : clé de compte de service invalide ou illisible, délégation absente, ou — en mode WIF — pool/audience mal configuré.
FS_ITEM_NOT_FOUNDL'item n'existe plus, ou n'est pas sous le dossier racine autorisé. Rappel : rien au-dessus de la racine n'est atteignable, c'est voulu.
FS_FILE_TOO_LARGELe fichier dépasse la borne de lecture. Extrayez la partie utile dans un document plus petit.
FS_UNSUPPORTED_FORMATAucun texte ne peut être tiré de ce format (image, archive, binaire propriétaire). Refusé volontairement plutôt que renvoyé brut.
FS_THROTTLEDLe fournisseur limite le débit. La lecture est réessayable ; espacez les demandes.
Le test passe mais un agent ne voit rien ? Le test valide le connecteur (authentification + accès au dossier), pas les bascules du projet. Vérifiez dans l'ordre : la source est activée en admin, le contexte documentaire est activé sur le projet, et les agents sont activés sur ce projet.

À lire aussi : Espaces de collaboration pour le provisioning Teams dont SharePoint hérite son identité · connecteur IA pour les agents qui consomment ce contexte · toutes les intégrations.