tpr-webmodule) кожного пода Ayakaleaf Pro. Зареєструйте OAuth-клієнт Zotero, як описано в розділі Інтеграція із Zotero, з URL-адресою зворотного виклику ${OVERLEAF_SITE_URL}/user/zotero/oauth/callback, а потім налаштуйте Kubernetes, як описано нижче.
Налаштування
1
ConfigMap
30-config.yaml (changes)
ENABLED_LINKED_FILE_TYPES замінює значення з інсталяції; залиште вже наявні типи та додайте zotero (і mendeley, якщо використовуєте обидва).2
Secret
ZOTERO_CIPHER_PASSWORD шифрує ключі Zotero користувачів у MongoDB. Без нього кожен под генерує файл ключа у своєму власному /var/lib/overleaf/data. З кількома репліками кожен вузол тоді має інший ключ, і користувач, якого обслуговує інша репліка, не може використовувати свій прив’язаний обліковий запис Zotero. Задайте його до того, як перший користувач прив’яже Zotero: якщо змінити його пізніше, усім користувачам доведеться знову прив’язати Zotero.3
Застосування та перезапуск
Кілька реплік
ЗадайтеZOTERO_CIPHER_PASSWORD у Secret, див. вище. Без нього файл, імпортований на одній репліці, не можна оновити на іншій: оновлення завершується помилкою «The remote service produced an error», бо файл ключа цієї репліки не може розшифрувати ключ Zotero користувача. З паролем у Secret усе працює на кожній репліці; ми перевірили обидва випадки, імпортуючи на overleaf-0 і оновлюючи на overleaf-1. Рукостискання OAuth зберігає свій стан у сесії в Redis, тож зворотний виклик може потрапити на будь-яку репліку.
Перевірено на Kubernetes
З макетом www.zotero.org і api.zotero.org (довіра черезNODE_EXTRA_CA_CERTS з overleaf-certs), на Kubernetes 1.37 з трьома репліками за HAProxy, наші наскрізні тести Zotero проходять (18 випадків): прив’язка через OAuth 1.0a і скасування прив’язки, імпорт бібліотеки та груп у файл .bib, його оновлення, відкликання ключа в Zotero, запит на повторну прив’язку, можливість пошуку посилань для співавторів, оновлювати може лише той, хто імпортував, помилки API та повільні з’єднання із Zotero.
