Aller au contenu
Facteur
ENCommencer

Migration

Changez de fournisseur sans réécrire vos tests

Le coût réel d’un changement d’outil de test, ce n’est pas l’abonnement : c’est la semaine passée à réécrire des assertions qui marchaient. Nous avons supprimé cette semaine.

À l’ouverture — couche de compatibilitéTypeScript
// Deux lignes changent. Le reste du fichier, non.
const mailosaur = new MailosaurClient(
  process.env.FACTEUR_API_KEY,
  { baseUrl: 'https://api.facteur.eu/compat' }
);

// Vos appels existants fonctionnent tels quels.
const message = await mailosaur.messages.get(serverId, {
  sentTo: address,
});
Ensuite — SDK natifTypeScript
// Le SDK natif ajoute l'extraction d'OTP, les quotas
// et les alertes. Migration fichier par fichier.
import { Facteur } from '@facteur/client';

const facteur = new Facteur(process.env.FACTEUR_API_KEY);

const message = await facteur.messages.await({
  inbox: 'j3k9x2mq',
  sentTo: address,
});

expect(message.otp).toBe('265279');

Marche à suivre

Cinq étapes, aucune irréversible

La marche à suivre le jour où la couche de compatibilité ouvre. La première étape, elle, se fait dès maintenant.

  1. 1

    Créez un compte et une inbox

    Le plan gratuit suffit pour valider la migration. Notez l’identifiant d’inbox : il joue le rôle du « server ID ».

  2. 2

    Basculez l’URL de base sur un seul test

    Deux lignes à changer. Lancez ce test : s’il passe, votre suite passera. C’est le moment de vérité, il coûte cinq minutes.

  3. 3

    Faites tourner la suite complète en double

    Gardez l’ancien fournisseur en parallèle une semaine, le temps de comparer les taux de réussite. Nous ne vous demandons pas de résilier avant d’être convaincu.

  4. 4

    Posez vos quotas et vos alertes

    C’est l’étape que l’ancien outil ne permettait pas. Une limite par inbox, des seuils d’alerte, et le canal Slack de l’équipe.

  5. 5

    Passez au SDK natif à votre rythme

    Fichier par fichier, pour récupérer l’extraction d’OTP et l’attente bloquante. La couche de compatibilité reste supportée : rien ne vous y oblige.

Correspondance

Table de conversion des points d’API

Pour les cas où vous appelez l’API directement plutôt que par un SDK. Les lignes marquées « à venir » ne sont pas encore ouvertes : nous préférons vous le dire ici plutôt que vous le laisser découvrir en migrant.

Chez MailosaurChez FacteurNote
GET /api/serversGET /v1/inboxesUn « server » Mailosaur est une « inbox » chez nous. Le vocabulaire change, la sémantique non.
POST /api/messages/searchPOST /v1/messages/searchMêmes critères, même logique de correspondance ALL / ANY, avec l’attente bloquante en plus.
GET /api/messages/:idGET /v1/messages/:idStructure de réponse compatible, enrichie de otp, links, codes et images.
GET /api/files/attachments/:idGET /v1/attachments/:idà venirTéléchargement binaire identique.
GET /api/files/email/:idGET /v1/messages/:id/emlà venirExport .eml.
GET /api/analysis/deliverability/:idGET /v1/messages/:id/analysisà venirSPF, DKIM, DMARC et score anti-spam. Ni le point d’API ni le plan qui le portera ne sont arrêtés.
POST /api/devices/otpPOST /v1/authenticator/otpà venirGénération de code TOTP à partir d’un secret partagé.
GET /api/usage/limitsGET /v1/usageà venirEnrichi : ventilation par inbox, crédits restants et date d’expiration.

Ce que la couche de compatibilité ne couvre pas

Les fonctionnalités propres à l’autre plateforme — aperçus de rendu multi-clients, éditeur visuel, règles automatiques — n’ont pas d’équivalent dans la couche de compatibilité. Si votre suite en dépend, écrivez-nous à hello@facteur.eu : nous vous dirons honnêtement si la migration a du sens aujourd’hui ou pas.

Testez la migration sur un seul fichier

Le plan gratuit ne demande pas de carte bancaire. Deux lignes à changer, et vous saurez.