Package : dodo-sync sur npm | Source : GitHub
Que pouvez-vous synchroniser ?
Choisissez n’importe quelle combinaison de ces entités :Payments
Toutes les transactions de paiement, y compris les paiements ponctuels, les remboursements et les mises à jour de statut.
Customers
Profils clients, coordonnées et métadonnées.
Subscriptions
Données d’abonnement, cycles de facturation et changements de statut.
Licenses
Clés de licence, activations et mises à jour de statut.
scopes. Chaque exécution récupère chaque enregistrement dans les périmètres sélectionnés et l’écrit en utilisant son ID. Les lignes existantes sont ainsi mises à jour sur place au lieu d’être dupliquées. Chaque page d’enregistrements est écrite dans votre base de données en un seul lot.
Bases de données prises en charge
Dodo Sync prend en charge MongoDB, PostgreSQL, MySQL 8.0.20 ou version ultérieure, ainsi que ClickHouse. La prise en charge de Snowflake et d’autres bases de données, des pipelines ETL et de la synchronisation en temps réel est en cours de développement. Pour contribuer à une nouvelle intégration de base de données, envoyez une pull request au dépôt GitHub.Premiers pas
Utilisez Dodo Sync via la CLI pour une configuration rapide ou directement dans votre code pour l’intégrer à votre application. Les deux méthodes offrent les mêmes fonctionnalités.Utilisation de la CLI
Installez la CLI globalement pour pouvoir l’exécuter depuis n’importe quel emplacement :Exécution de la CLI
La CLI prend en charge deux modes : interactif pour une configuration guidée et manuel pour une configuration directe. Mode interactif : exécutez la CLI sans arguments pour démarrer l’assistant de configuration.Arguments de la CLI
Intervalle de synchronisation en secondes. La CLI s’exécute en continu selon cet intervalle. Pour une synchronisation ponctuelle, utilisez
.run() dans votre code.URI de connexion à votre base de données :
- MongoDB :
mongodb://localhost:27017oumongodb+srv://user:pass@cluster.mongodb.net/ - PostgreSQL :
postgresql://user:password@localhost:5432/mydb - MySQL :
mysql://user:password@localhost:3306/mydb - ClickHouse :
http://localhost:8123
Liste séparée par des virgules des entités à synchroniser :
licences, payments, customers, subscriptions. Exemple : "payments,customers".Votre clé API Dodo Payments issue de Developer → API Keys. Utilisez une clé correspondant au même mode que
--env.Limite de débit en requêtes par seconde. Contrôle la vitesse à laquelle le moteur de synchronisation effectue les requêtes API. La valeur par défaut est
10 ; les valeurs supérieures ou égales à 100 désactivent la limitation.Utilisation dans votre code
Intégrez directement la fonctionnalité de synchronisation à votre application. Installez-la en tant que dépendance :Synchronisation automatique (basée sur un intervalle)
Exécutez la synchronisation en continu à intervalles réguliers :Synchronisation manuelle
Déclenchez des opérations de synchronisation à la demande, par exemple depuis une tâche cron, un endpoint API ou une fonction serverless :Exécution sur une plateforme serverless
Sur Vercel, AWS Lambda ou des plateformes similaires :- Appelez
.disconnect()dans un blocfinally, comme dans l’exemple ci-dessus, afin que les connexions ne restent pas ouvertes entre les invocations. - Utilisez le runtime Node.js. Les runtimes Edge ne peuvent pas ouvrir de connexions à la base de données.
- Augmentez le délai d’expiration de la fonction. Une synchronisation volumineuse peut prendre plus de temps que la limite par défaut. Sur Vercel, définissez
export const maxDuration = 60;. - Synchronisez moins de périmètres par invocation, par exemple
scopes: ['payments'], afin de garder chaque exécution courte.
Exemple PostgreSQL
Exemple MySQL
Exemple ClickHouse
Options du constructeur
Chaîne de connexion à votre base de données :
- MongoDB :
mongodb://localhost:27017oumongodb+srv://... - PostgreSQL :
postgresql://user:password@localhost:5432/mydb - MySQL :
mysql://user:password@localhost:3306/mydb - ClickHouse :
http://localhost:8123
Tableau d’entités à synchroniser :
"licences", "payments", "customers", "subscriptions". Vous pouvez inclure n’importe quelle combinaison.Configuration de l’API Dodo Payments. Consultez les types du SDK TypeScript pour connaître toutes les options.Propriétés requises :
bearerToken: votre clé API Dodo Paymentsenvironment:"test_mode"ou"live_mode"
Durée, en secondes, entre les synchronisations automatiques. Requise pour
.start(), facultative pour .run().Limite de débit en requêtes par seconde. La valeur par défaut est
10 ; les valeurs égales ou supérieures à 100 désactivent la limitation de débit.Informations importantes
Mise à niveau depuis la version 0.x
La version 1.0 modifie la manière dont les données MongoDB sont stockées et augmente la version minimale requise de MySQL. Avant la mise à niveau :- MongoDB : supprimez votre collection
licencesexistante. Les documents de licence sont désormais stockés selonidde la licence au lieu desubscription_id, et la prochaine synchronisation repeuplera la collection. - MongoDB : vérifiez votre URI de connexion. Les données sont désormais écrites dans la base de données indiquée par l’URI, et plus systématiquement dans
dodopayments_sync. Pour continuer à utiliser vos données existantes, ajoutezdodopayments_syncdans l’URI ou omettez la base de données. - MySQL : effectuez la mise à niveau vers MySQL 8.0.20 ou version ultérieure.
Ressources supplémentaires
GitHub Repository
Afficher le code source, signaler des problèmes ou contribuer à des améliorations
npm Package
Consulter les détails du package et les instructions d’installation