tpr-webmodule) każdego poda Ayakaleaf Pro. Zarejestruj klienta OAuth Zotero zgodnie z opisem na stronie Integracja z Zotero, z adresem wywołania zwrotnego ${OVERLEAF_SITE_URL}/user/zotero/oauth/callback, a następnie skonfiguruj Kubernetes w sposób opisany poniżej.
Konfiguracja
1
ConfigMap
30-config.yaml (changes)
ENABLED_LINKED_FILE_TYPES zastępuje wartość z instalacji; zachowaj typy, które już masz, i dodaj zotero (oraz mendeley, jeśli używasz obu).2
Secret
ZOTERO_CIPHER_PASSWORD szyfruje klucze Zotero użytkowników w MongoDB. Bez niego każdy pod generuje plik klucza we własnym katalogu /var/lib/overleaf/data. Przy kilku replikach każdy węzeł ma wtedy inny klucz, a użytkownik obsługiwany przez inną replikę nie może korzystać ze swojego połączonego konta Zotero. Ustaw go, zanim pierwszy użytkownik połączy Zotero: późniejsza zmiana zmusza każdego użytkownika do ponownego połączenia Zotero.3
Zastosuj i uruchom ponownie
Kilka replik
UstawZOTERO_CIPHER_PASSWORD w Secret, zobacz powyżej. Bez niego pliku zaimportowanego na jednej replice nie można odświeżyć na innej: odświeżanie kończy się błędem „The remote service produced an error”, ponieważ plik klucza tej repliki nie może odszyfrować klucza Zotero użytkownika. Z hasłem w Secret działa to na każdej replice; przetestowaliśmy oba przypadki, importując na overleaf-0 i odświeżając na overleaf-1. Uzgadnianie OAuth przechowuje swój stan w sesji w Redis, więc wywołanie zwrotne może trafić do dowolnej repliki.
Przetestowano na Kubernetes
Na atrapie www.zotero.org i api.zotero.org (zaufanej przezNODE_EXTRA_CA_CERTS z overleaf-certs), na Kubernetes 1.37 z trzema replikami za HAProxy, nasze testy end-to-end dla Zotero przechodzą pomyślnie (18 przypadków): łączenie przez OAuth 1.0a i odłączanie, import biblioteki i grup do pliku .bib, jego odświeżanie, unieważnienie klucza w Zotero, prośba o ponowne połączenie, bibliografia możliwa do przeszukiwania przez współpracowników, odświeżać może tylko osoba importująca, błędy API oraz wolne połączenia z Zotero.
