tpr-webmodule) của mọi pod Ayakaleaf Pro. Hãy đăng ký OAuth client Zotero như trong Tích hợp Zotero, với URL callback ${OVERLEAF_SITE_URL}/user/zotero/oauth/callback, sau đó cấu hình Kubernetes như bên dưới.
Cấu hình
1
ConfigMap
30-config.yaml (changes)
ENABLED_LINKED_FILE_TYPES thay thế giá trị từ quá trình cài đặt; hãy giữ các loại bạn đã có và thêm zotero (và mendeley, nếu bạn dùng cả hai).2
Secret
ZOTERO_CIPHER_PASSWORD mã hóa các khóa Zotero của người dùng trong MongoDB. Nếu không có nó, mỗi pod sẽ tự tạo một tệp khóa trong /var/lib/overleaf/data của riêng mình. Với nhiều replica, khi đó mỗi node sẽ có một khóa khác nhau, và người dùng được phục vụ bởi replica khác không thể dùng tài khoản Zotero đã liên kết của họ. Hãy đặt giá trị này trước khi người dùng đầu tiên liên kết Zotero: việc thay đổi nó sau đó sẽ buộc mọi người dùng phải liên kết lại Zotero.3
Áp dụng và khởi động lại
Nhiều replica
Hãy đặtZOTERO_CIPHER_PASSWORD trong Secret, xem ở trên. Nếu không có nó, một tệp được nhập trên một replica không thể được làm mới trên replica khác: việc làm mới thất bại với thông báo “The remote service produced an error”, vì tệp khóa của replica đó không thể giải mã khóa Zotero của người dùng. Khi có mật khẩu trong Secret, tính năng hoạt động trên mọi replica; chúng tôi đã kiểm thử cả hai trường hợp bằng cách nhập trên overleaf-0 và làm mới trên overleaf-1. Quá trình bắt tay OAuth giữ trạng thái của nó trong phiên trong Redis, nên callback có thể tới bất kỳ replica nào.
Đã kiểm thử trên Kubernetes
Với một bản mô phỏng www.zotero.org và api.zotero.org (được tin cậy thông quaNODE_EXTRA_CA_CERTS từ overleaf-certs), trên Kubernetes 1.37 với ba replica phía sau HAProxy, các bài kiểm thử end-to-end của chúng tôi cho Zotero đều đạt (18 trường hợp): liên kết qua OAuth 1.0a và hủy liên kết, nhập thư viện và các nhóm vào một tệp .bib, làm mới tệp đó, thu hồi khóa trên Zotero, yêu cầu liên kết lại, tài liệu tham khảo có thể tìm kiếm được đối với các cộng tác viên, chỉ người nhập mới được làm mới, lỗi API, và kết nối chậm tới Zotero.
