tpr-webmodule) de chaque pod Ayakaleaf Pro. Enregistrez le client OAuth Zotero comme indiqué dans Intégration Zotero, avec l’URL de rappel ${OVERLEAF_SITE_URL}/user/zotero/oauth/callback, puis configurez Kubernetes comme ci-dessous.
Configuration
1
ConfigMap
30-config.yaml (changes)
ENABLED_LINKED_FILE_TYPES remplace la valeur définie lors de l’installation ; conservez les types que vous avez déjà et ajoutez zotero (et mendeley, si vous utilisez les deux).2
Secret
ZOTERO_CIPHER_PASSWORD chiffre les clés Zotero des utilisateurs dans MongoDB. Sans lui, chaque pod génère un fichier de clé dans son propre /var/lib/overleaf/data. Avec plusieurs répliques, chaque nœud a alors une clé différente, et un utilisateur servi par une autre réplique ne peut pas utiliser son compte Zotero lié. Définissez-le avant que le premier utilisateur ne lie Zotero : le modifier ultérieurement oblige chaque utilisateur à lier à nouveau Zotero.3
Appliquer et redémarrer
Plusieurs répliques
DéfinissezZOTERO_CIPHER_PASSWORD dans le Secret, voir ci-dessus. Sans lui, un fichier importé sur une réplique ne peut pas être actualisé sur une autre : l’actualisation échoue avec « The remote service produced an error », car le fichier de clé de cette réplique ne peut pas déchiffrer la clé Zotero de l’utilisateur. Avec le mot de passe dans le Secret, cela fonctionne sur toutes les répliques ; nous avons testé les deux cas en important sur overleaf-0 et en actualisant sur overleaf-1. L’échange OAuth conserve son état dans la session dans Redis, de sorte que le rappel peut atteindre n’importe quelle réplique.
Testé sur Kubernetes
Face à une simulation de www.zotero.org et api.zotero.org (approuvée viaNODE_EXTRA_CA_CERTS depuis overleaf-certs), sur Kubernetes 1.37 avec trois répliques derrière HAProxy, nos tests de bout en bout de Zotero réussissent (18 cas) : liaison via OAuth 1.0a et déliaison, import de la bibliothèque et des groupes dans un fichier .bib, actualisation de celui-ci, révocation de la clé sur Zotero, demande de nouvelle liaison, références consultables par les collaborateurs, seul l’importateur peut actualiser, erreurs d’API et connexions lentes à Zotero.
