DROPBOX_ENABLED: "true":
- web (moduł
dropbox): łączenie konta, okno dialogowe Dropbox projektu oraz webhook wywoływany przez Dropbox. - third-party-datastore: osobna usługa wewnątrz poda, która przetwarza kolejkę zmian do wysłania do Dropbox lub pobrania z niego.
- document-updater: przy włączonym Dropbox zapisuje w tle zmiany z edytora do MongoDB kilka minut po tym, jak wszyscy opuścili projekt; dopiero wtedy trafiają one do Dropbox.
Konfiguracja
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" oraz StatefulSet git-bridge z Integracja z Git muszą być skonfigurowane: bez nich ustawienia konta ukrywają sekcję synchronizacji projektów.2
Secret
DROPBOX_TOKEN_CIPHER_PASSWORD szyfruje tokeny Dropbox użytkowników w MongoDB. Każda replika musi używać tej samej wartości, a późniejsza jej zmiana zmusza każdego użytkownika do ponownego połączenia Dropbox.3
Utwórz indeksy bazy danych
Uruchom jednokrotnie polecenia tworzenia indeksów z Utwórz indeksy bazy danych na węźle primary zestawu replik:
4
Zastosuj i zrestartuj
third-party-datastore.log istnieje tylko wtedy, gdy DROPBOX_ENABLED ma wartość "true".5
Udostępnij webhook w internecie
Dropbox musi mieć dostęp do Następnie dodaj webhook w Dropbox App Console zgodnie z opisem na stronie Toolkit.
${OVERLEAF_SITE_URL}/dropbox/webhook z internetu. Jeśli Twój ingress lub load balancer dopuszcza z zewnątrz tylko niektóre ścieżki lub sieci, zezwól na tę; to jedyna ścieżka wywoływana przez Dropbox. Sprawdź ją spoza klastra:Kilka replik
Poza współdzielonymDROPBOX_TOKEN_CIPHER_PASSWORD nic dodatkowego:
- Webhook może trafić do dowolnej repliki. Jedynie umieszcza zmianę w kolejce w Redis.
- Każda replika uruchamia third-party-datastore i każda przetwarza współdzieloną kolejkę. Kolejka użytkownika jest pobierana z blokadą w Redis, więc tylko jedna replika naraz wysyła lub pobiera zmiany danego użytkownika.
- document-updater każdej repliki zapisuje w tle nieaktywne projekty. Każdy projekt jest pobierany ze współdzielonej listy w Redis, więc jest zapisywany tylko raz.

