Skip to content

Intégration Google Drive ​

google_drive synchronise vers la base de connaissances les dossiers, Drive partagés et fichiers Google Drive cochés, avec planification, incrémental, reprise et rapprochement des suppressions. Les Google Docs, Sheets et Slides sont importés au format Word, Excel et PowerPoint. Flux général : Synchronisation des sources de données.

Créer le compte de service (une fois) ​

Le connecteur se connecte comme un compte de service Google Cloud, en lecture seule (drive.readonly), sans fenêtre de connexion.

  1. console.cloud.google.com → choisir ou créer un projet.
  2. API et services → Bibliothèque → activer Google Drive API.
  3. IAM et administration → Comptes de service → Créer un compte de service (aucun rôle de projet n’est nécessaire).
  4. Sur le compte créé : Clés → Ajouter une clé → Créer une clé → JSON. Le fichier téléchargé est la clé à coller dans GsKnora. Le conserver en lieu sûr.

Si l’organisation interdit la création de clés (règle iam.disableServiceAccountKeyCreation), un admin Google Cloud doit l’autoriser pour ce projet.

Donner accès aux documents ​

Le compte de service a sa propre adresse, du type nom@projet.iam.gserviceaccount.com (champ client_email du fichier JSON). Il ne voit que ce qu’on lui partage :

  • un dossier : Partager → ajouter cette adresse en Lecteur ;
  • un Drive partagé (Google Workspace) : Gérer les membres → ajouter l’adresse en Lecteur.

Option Workspace : agir au nom d’une personne. Si l’admin Google Workspace accorde la délégation au niveau du domaine au compte de service (console d’admin → Sécurité → Contrôle des accès et des données → Commandes des API → Délégation au niveau du domaine, avec le champ d’application https://www.googleapis.com/auth/drive.readonly), on peut saisir l’adresse d’un utilisateur dans « Agir au nom de » : le connecteur lit alors le Drive de cette personne sans partage. À réserver à un compte dédié.

Configuration dans la base de connaissances ​

  1. Paramètres de la base → Sources de données → Nouveau, « Google Drive ».
  2. Coller tout le contenu du fichier JSON, éventuellement l’adresse « Agir au nom de », puis tester la connexion. Le test obtient un jeton et lit le compte : il échoue si la clé est révoquée ou si l’API Drive n’est pas activée.
  3. Cocher des Drive partagés, dossiers ou fichiers. Le premier niveau liste les Drive partagés puis les éléments partagés avec le compte de service ; les dossiers s’ouvrent au fur et à mesure. Plusieurs éléments peuvent être cochés dans une même source.
  4. Choisir le mode, la planification, la stratégie de conflit et la synchronisation des suppressions, enregistrer, puis lancer une synchronisation manuelle pour vérifier.

Seuls les fichiers importables sont proposés (PDF, Office, texte, images…) ainsi que les Docs, Sheets et Slides. Les formulaires, dessins, sites Google et raccourcis sont ignorés.

Ce que fait une synchronisation ​

  • Chaque fichier est identifié par son identifiant Drive : un renommage ou un déplacement à l’intérieur de la sélection ne le réimporte pas.
  • Un fichier inchangé (même version, même date de modification, même empreinte) n’est pas retéléchargé ; un fichier modifié est réimporté.
  • Un fichier supprimé, mis à la corbeille, plus partagé ou sorti de la sélection est retiré de la base si « Synchroniser les suppressions » est actif.
  • Si un élément coché n’est plus accessible, la synchronisation s’arrête sans rien supprimer et le signale.
  • Les fichiers sont rangés sous <nom de l’élément coché>/<chemin>.
  • Google limite l’export d’un Doc, Sheet ou Slides à 10 Mo : au-delà, le fichier apparaît en erreur dans l’historique.

Réseau et sécurité ​

RequêteCibleJeton
Jetonoauth2.googleapis.comAssertion signée avec la clé du compte de service
API, téléchargement et exportwww.googleapis.comOui, Authorization: Bearer

Les adresses Google sont fixes : le champ token_uri du fichier JSON est ignoré, pour qu’une clé modifiée ne puisse pas envoyer l’assertion ailleurs. La clé est chiffrée en base comme les autres identifiants de source.

Référence d’implémentation ​

Paquet internal/datasource/connector/gdrive : client.go (assertion JWT RS256, appels Drive v3 avec reprises sur 429/5xx et Retry-After, nouveau jeton sur 401), connector.go (test, arborescence, ancêtres), sync.go (parcours en largeur, téléchargement ou export, rapprochement des suppressions), cursor.go (empreinte par identifiant de fichier). Identifiants de ressource : identifiants Drive.