Paket: dodo-sync på npm | Källa: GitHub
Vad kan du synkronisera?
Välj valfri kombination av dessa entiteter:Payments
Alla betalningstransaktioner, inklusive engångsbetalningar, återbetalningar och statusuppdateringar.
Customers
Kundprofiler, kontaktinformation och metadata.
Subscriptions
Prenumerationsdata, faktureringscykler och statusändringar.
Licenses
Licensnycklar, aktiveringar och statusuppdateringar.
scopes. Varje körning hämtar alla poster i de valda omfången och skriver dem med ID, så befintliga rader uppdateras på plats i stället för att dupliceras. Varje sida med poster skrivs till din databas i en enda batch.
Databasstöd
Dodo Sync har stöd för MongoDB, PostgreSQL, MySQL 8.0.20 eller senare och ClickHouse. Stöd för Snowflake och andra databaser, ETL-pipelines och realtidssynkronisering är under utveckling. Om du vill bidra med en ny databasintegration skickar du en pull request till GitHub-förrådet.Kom igång
Använd Dodo Sync via CLI för snabb konfigurering eller programmatiskt i din kod för integrering i din applikation. Båda metoderna erbjuder samma funktionalitet.Använda CLI
Installera CLI globalt för att kunna köra det var som helst:Köra CLI
CLI stöder två lägen: interaktivt för guidad konfigurering och manuellt för direkt konfigurering. Interaktivt läge: Kör utan argument för att starta konfigurationsguiden.CLI-argument
number
obligatorisk
Synkroniseringsintervall i sekunder. CLI körs kontinuerligt med detta intervall. För en engångssynkronisering använder du
.run() i din kod.string
obligatorisk
Databastyp:
"mongodb", "postgres", "mysql" eller "clickhouse".string
obligatorisk
Anslutnings-URI för din databas:
- MongoDB:
mongodb://localhost:27017ellermongodb+srv://user:pass@cluster.mongodb.net/ - PostgreSQL:
postgresql://user:password@localhost:5432/mydb - MySQL:
mysql://user:password@localhost:3306/mydb - ClickHouse:
http://localhost:8123
string
obligatorisk
Kommaseparerad lista över entiteter som ska synkroniseras:
licences, payments, customers, subscriptions. Exempel: "payments,customers".string
obligatorisk
Din Dodo Payments API-nyckel från Developer → API Keys. Använd en nyckel från samma läge som
--env.string
obligatorisk
Miljö:
"live_mode" eller "test_mode".number
Hastighetsbegränsning i förfrågningar per sekund. Styr hur snabbt synkroniseringsmotorn gör API-förfrågningar. Standardvärdet är
10; värden på 100 eller högre inaktiverar begränsningen.Använda i din kod
Integrera synkroniseringsfunktionen direkt i din applikation. Installera den som ett beroende:Automatisk synkronisering (intervallbaserad)
Kör synkroniseringen kontinuerligt med regelbundna intervall:Manuell synkronisering
Utlös synkroniseringsåtgärder vid behov, till exempel från ett cron-jobb, en API-endpoint eller en serverless-funktion:Körning i Serverless
På Vercel, AWS Lambda eller liknande plattformar:- Anropa
.disconnect()i ettfinally-block, som i exemplet ovan, så att anslutningar inte förblir öppna mellan anrop. - Använd Node.js-runtime. Edge-runtime kan inte öppna databasanslutningar.
- Höj funktionens timeout. En stor synkronisering kan ta längre tid än standardgränsen. På Vercel anger du
export const maxDuration = 60;. - Synkronisera färre omfång per anrop, till exempel
scopes: ['payments'], så att varje körning hålls kort.
PostgreSQL-exempel
MySQL-exempel
ClickHouse-exempel
Konstruktörsalternativ
string
obligatorisk
Databastyp:
"mongodb", "postgres", "mysql" eller "clickhouse".string
obligatorisk
Anslutningssträng för din databas:
- MongoDB:
mongodb://localhost:27017ellermongodb+srv://... - PostgreSQL:
postgresql://user:password@localhost:5432/mydb - MySQL:
mysql://user:password@localhost:3306/mydb - ClickHouse:
http://localhost:8123
string[]
obligatorisk
Array med entiteter som ska synkroniseras:
"licences", "payments", "customers", "subscriptions". Inkludera valfri kombination.object
obligatorisk
Dodo Payments API-konfiguration. Se TypeScript SDK-typerna för alla alternativ.Obligatoriska properties:
bearerToken: Din Dodo Payments API-nyckelenvironment:"test_mode"eller"live_mode"
number
Tid i sekunder mellan automatiska synkroniseringar. Krävs för
.start() och är valfritt för .run().number
Hastighetsgräns i requests per sekund. Standardvärdet är
10; värden på 100 eller högre inaktiverar throttling.Viktig information
Uppgradering från 0.x
Version 1.0 ändrar hur MongoDB-data lagras och höjer MySQL-kravet. Innan du uppgraderar:- MongoDB: Ta bort din befintliga
licencescollection. Licensdokument lagras nu efter licensensidi stället försubscription_id, och nästa synkronisering fyller collection igen. - MongoDB: Kontrollera din anslutnings-URI. Data skrivs nu till den databas som anges i URI:n, inte alltid
dodopayments_sync. Om du vill fortsätta använda dina befintliga data anger dudodopayments_synci URI:n eller utelämnar databasen. - MySQL: Uppgradera till MySQL 8.0.20 eller senare.
Ytterligare resurser
GitHub Repository
Visa källkod, rapportera problem eller bidra med förbättringar
npm Package
Visa paketdetaljer och installationsinstruktioner