Skip to main content
Импорт из Zotero работает в сервисе web (модуль 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.
Последнее изменение 2 ноября 2026 г.