tpr-webmodule) i hver Ayakaleaf Pro-pod. Registrér Zotero-OAuth-klienten som beskrevet under Zotero-integration med callback-URL’en ${OVERLEAF_SITE_URL}/user/zotero/oauth/callback, og konfigurér derefter Kubernetes som nedenfor.
Konfiguration
1
ConfigMap
30-config.yaml (changes)
ENABLED_LINKED_FILE_TYPES erstatter værdien fra installationen; behold de typer, du allerede har, og tilføj zotero (og mendeley, hvis du bruger begge).2
Secret
ZOTERO_CIPHER_PASSWORD krypterer brugernes Zotero-nøgler i MongoDB. Uden den genererer hver pod en nøglefil i sin egen /var/lib/overleaf/data. Med flere replikaer har hver node så en anden nøgle, og en bruger, der betjenes af en anden replika, kan ikke bruge sin forbundne Zotero-konto. Sæt den, før den første bruger forbinder Zotero: hvis den ændres senere, skal alle brugere forbinde Zotero igen.3
Anvend og genstart
Flere replikaer
SætZOTERO_CIPHER_PASSWORD i Secret’et, se ovenfor. Uden den kan en fil, der er importeret på én replika, ikke opdateres på en anden: opdateringen mislykkes med »The remote service produced an error«, fordi den replikas nøglefil ikke kan dekryptere brugerens Zotero-nøgle. Med adgangskoden i Secret’et virker det på alle replikaer; vi testede begge tilfælde ved at importere på overleaf-0 og opdatere på overleaf-1. OAuth-handshaket gemmer sin tilstand i sessionen i Redis, så callbacket kan nå enhver replika.
Testet på Kubernetes
Mod en mock af www.zotero.org og api.zotero.org (der stoles på viaNODE_EXTRA_CA_CERTS fra overleaf-certs), på Kubernetes 1.37 med tre replikaer bag HAProxy, består vores end-to-end-tests for Zotero (18 tilfælde): forbindelse via OAuth 1.0a og afbrydelse, import af biblioteket og grupper til en .bib-fil, opdatering af den, tilbagekaldelse af nøglen på Zotero, anmodning om at forbinde igen, referencer der er søgbare for samarbejdspartnerne, at kun den, der importerede, må opdatere, API-fejl og langsomme forbindelser til Zotero.
