DROPBOX_ENABLED: "true":
- web (das
dropbox-Modul): Verknüpfung, der Dropbox-Dialog des Projekts und der Webhook, den Dropbox aufruft. - third-party-datastore: ein eigener Dienst innerhalb des Pods, der die Warteschlange der Änderungen abarbeitet, die an Dropbox gesendet oder von Dropbox abgerufen werden sollen.
- document-updater: Bei aktiviertem Dropbox schreibt er die Änderungen des Editors im Hintergrund in MongoDB, einige Minuten nachdem alle ein Projekt verlassen haben; erst dann gelangen sie zu Dropbox.
Konfiguration
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" und das git-bridge-StatefulSet aus Git-Integration müssen vorhanden sein: Ohne sie blenden die Kontoeinstellungen den Bereich zur Projektsynchronisierung aus.2
Secret
DROPBOX_TOKEN_CIPHER_PASSWORD verschlüsselt die Dropbox-Tokens der Benutzer in MongoDB. Jedes Replikat muss denselben Wert verwenden, und eine spätere Änderung zwingt jeden Benutzer, Dropbox erneut zu verknüpfen.3
Die Datenbankindizes erstellen
Führen Sie die Index-Befehle aus Die Datenbankindizes erstellen einmal auf dem Primary des Replica Sets aus:
4
Anwenden und neu starten
third-party-datastore.log existiert nur, wenn DROPBOX_ENABLED auf "true" steht.5
Den Webhook für das Internet öffnen
Dropbox muss Fügen Sie den Webhook dann in der Dropbox App Console hinzu, wie auf der Toolkit-Seite beschrieben.
${OVERLEAF_SITE_URL}/dropbox/webhook aus dem Internet erreichen. Wenn Ihr Ingress oder Load Balancer von außen nur bestimmte Pfade oder Netzwerke zulässt, erlauben Sie diesen; es ist der einzige Pfad, den Dropbox aufruft. Prüfen Sie ihn von außerhalb des Clusters:Mehrere Replikate
Über das gemeinsameDROPBOX_TOKEN_CIPHER_PASSWORD hinaus nichts weiter:
- Der Webhook kann bei jedem beliebigen Replikat ankommen. Er stellt die Änderung lediglich in Redis in die Warteschlange.
- Jedes Replikat führt third-party-datastore aus, und jedes arbeitet an der gemeinsamen Warteschlange. Die Warteschlange eines Benutzers wird mit einer Sperre in Redis übernommen, sodass jeweils nur ein Replikat die Änderungen eines bestimmten Benutzers sendet oder abruft.
- Der document-updater jedes Replikats schreibt inaktive Projekte im Hintergrund. Jedes Projekt wird aus einer gemeinsamen Liste in Redis entnommen, sodass es nur einmal geschrieben wird.

