Package: dodo-sync di npm | Source: GitHub
Apa yang Dapat Anda Sinkronkan?
Pilih kombinasi apa pun dari entitas berikut:Payments
Semua transaksi pembayaran, termasuk pembayaran satu kali, refund, dan pembaruan status.
Customers
Profil customer, informasi kontak, dan metadata.
Subscriptions
Data subscription, siklus penagihan, dan perubahan status.
Licenses
License key, aktivasi, dan pembaruan status.
scopes. Setiap proses mengambil setiap record dalam cakupan yang dipilih dan menuliskannya berdasarkan ID, sehingga baris yang sudah ada diperbarui langsung, bukan diduplikasi. Setiap halaman record ditulis ke database Anda dalam satu batch.
Dukungan Database
Dodo Sync mendukung MongoDB, PostgreSQL, MySQL 8.0.20 atau yang lebih baru, dan ClickHouse. Dukungan untuk Snowflake dan database lainnya, pipeline ETL, serta sinkronisasi real-time sedang dalam pengembangan. Untuk berkontribusi pada integrasi database baru, kirim pull request ke repository GitHub.Memulai
Gunakan Dodo Sync melalui CLI untuk penyiapan cepat atau secara programatik dalam kode Anda untuk integrasi ke aplikasi. Kedua metode menyediakan fungsionalitas yang sama.Menggunakan CLI
Instal CLI secara global agar dapat menjalankannya dari mana saja:Menjalankan CLI
CLI mendukung dua mode: interaktif untuk penyiapan terpandu, dan manual untuk konfigurasi langsung. Mode interaktif: Jalankan tanpa argumen untuk memulai wizard penyiapan.Argumen CLI
number
wajib
Interval sinkronisasi dalam detik. CLI berjalan terus-menerus pada interval ini. Untuk sinkronisasi satu kali, gunakan
.run() dalam kode Anda.string
wajib
Jenis database:
"mongodb", "postgres", "mysql", atau "clickhouse".string
wajib
URI koneksi untuk database Anda:
- MongoDB:
mongodb://localhost:27017ataumongodb+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
wajib
Daftar entitas yang dipisahkan koma untuk disinkronkan:
licences, payments, customers, subscriptions. Contoh: "payments,customers".string
wajib
API key Dodo Payments Anda dari Developer → API Keys. Gunakan key dari mode yang sama dengan
--env.string
wajib
Environment:
"live_mode" atau "test_mode".number
Batas laju dalam request per detik. Mengontrol seberapa cepat mesin sinkronisasi membuat request API. Nilai default adalah
10; nilai 100 atau lebih akan menonaktifkan throttling.Menggunakan dalam Kode Anda
Integrasikan fitur sinkronisasi langsung ke aplikasi Anda. Instal sebagai dependency:Sinkronisasi Otomatis (Berbasis Interval)
Jalankan sinkronisasi secara terus-menerus pada interval reguler:Sinkronisasi Manual
Picu operasi sinkronisasi sesuai permintaan, misalnya dari cron job, endpoint API, atau fungsi serverless:Berjalan di Serverless
Di Vercel, AWS Lambda, atau platform serupa:- Panggil
.disconnect()dalam blokfinally, seperti pada contoh di atas, agar koneksi tidak tetap terbuka di antara pemanggilan. - Gunakan runtime Node.js. Edge runtime tidak dapat membuka koneksi database.
- Tingkatkan batas waktu fungsi. Sinkronisasi besar dapat memerlukan waktu lebih lama daripada batas default. Di Vercel, tetapkan
export const maxDuration = 60;. - Sinkronkan lebih sedikit cakupan per pemanggilan, seperti
scopes: ['payments'], agar setiap proses tetap singkat.
Contoh PostgreSQL
Contoh MySQL
Contoh ClickHouse
Opsi Konstruktor
string
wajib
Jenis database:
"mongodb", "postgres", "mysql", atau "clickhouse".string
wajib
String koneksi untuk database Anda:
- MongoDB:
mongodb://localhost:27017ataumongodb+srv://... - PostgreSQL:
postgresql://user:password@localhost:5432/mydb - MySQL:
mysql://user:password@localhost:3306/mydb - ClickHouse:
http://localhost:8123
string[]
wajib
Array entitas yang akan disinkronkan:
"licences", "payments", "customers", "subscriptions". Sertakan kombinasi apa pun.object
wajib
Konfigurasi API Dodo Payments. Lihat jenis SDK TypeScript untuk opsi lengkap.Properti yang diperlukan:
bearerToken: Kunci API Dodo Payments Andaenvironment:"test_mode"atau"live_mode"
number
Waktu dalam detik di antara sinkronisasi otomatis. Wajib untuk
.start(), opsional untuk .run().number
Batas laju dalam permintaan per detik. Default-nya
10; nilai 100 atau lebih menonaktifkan throttling.Informasi Penting
Meng-upgrade dari 0.x
Versi 1.0 mengubah cara data MongoDB disimpan dan meningkatkan persyaratan MySQL. Sebelum melakukan upgrade:- MongoDB: Hapus collection
licencesyang sudah ada. Dokumen lisensi kini disimpan berdasarkanidlisensi, bukansubscription_id, dan sinkronisasi berikutnya akan mengisi ulang collection tersebut. - MongoDB: Periksa URI koneksi Anda. Data kini ditulis ke database yang disebutkan dalam URI, bukan selalu
dodopayments_sync. Untuk tetap menggunakan data yang sudah ada, masukkandodopayments_syncke dalam URI atau jangan sertakan database. - MySQL: Upgrade ke MySQL 8.0.20 atau yang lebih baru.
Sumber Daya Tambahan
GitHub Repository
Lihat kode sumber, laporkan masalah, atau kontribusikan perbaikan
npm Package
Lihat detail package dan petunjuk instalasi