DROPBOX_ENABLED: "true":
- web (de module
dropbox): koppelen, het Dropbox-dialoogvenster van het project en de webhook die Dropbox aanroept. - third-party-datastore: een eigen service binnen de pod die de wachtrij met wijzigingen afwerkt die naar Dropbox moeten worden verstuurd of ervan moeten worden opgehaald.
- document-updater: met Dropbox ingeschakeld schrijft deze de wijzigingen uit de editor op de achtergrond naar MongoDB, een paar minuten nadat iedereen een project heeft verlaten; pas dan gaan ze naar Dropbox.
Configuratie
1
ConfigMap
30-config.yaml (additions)
GIT_BRIDGE_ENABLED: "true" en de git-bridge-StatefulSet uit Git-integratie moeten aanwezig zijn: zonder deze verbergen de accountinstellingen de sectie voor projectsynchronisatie.2
Secret
DROPBOX_TOKEN_CIPHER_PASSWORD versleutelt de Dropbox-tokens van de gebruikers in MongoDB. Elke replica moet dezelfde waarde gebruiken, en als je deze later wijzigt, moet elke gebruiker Dropbox opnieuw koppelen.3
Maak de database-indexen aan
Voer de indexopdrachten uit De database-indexen aanmaken één keer uit, op de primary van de replicaset:
4
Toepassen en herstarten
third-party-datastore.log bestaat alleen wanneer DROPBOX_ENABLED op "true" staat.5
Stel de webhook open voor internet
Dropbox moet Voeg daarna de webhook toe in de Dropbox App Console zoals beschreven op de Toolkit-pagina.
${OVERLEAF_SITE_URL}/dropbox/webhook vanaf internet kunnen bereiken. Als je ingress of load balancer van buitenaf alleen bepaalde paden of netwerken toestaat, sta dan dit pad toe; het is het enige pad dat Dropbox aanroept. Controleer het van buiten het cluster:Meerdere replica’s
Niets extra’s naast het gedeeldeDROPBOX_TOKEN_CIPHER_PASSWORD:
- De webhook kan bij elke replica aankomen. Hij zet de wijziging alleen in de wachtrij in Redis.
- Elke replica draait third-party-datastore, en elke instantie werkt aan de gedeelde wachtrij. De wachtrij van een gebruiker wordt opgepakt met een lock in Redis, zodat slechts één replica tegelijk de wijzigingen van een bepaalde gebruiker verstuurt of ophaalt.
- De document-updater van elke replica schrijft inactieve projecten op de achtergrond weg. Elk project wordt uit een gedeelde lijst in Redis gehaald, zodat het één keer wordt weggeschreven.

