> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Description de l’utilisation de l’outil de migration des Rules dans l’Auth0 Dashboard

# Outil de migration

Simplifiez le processus de migration des Rules vers les Actions à l’aide de l’outil de migration des Rules dans l’[Auth0 Dashboard](https://manage.auth0.com/). En plus de faciliter le passage d’une Rule à une Action, ce nouvel outil offre aussi des conseils intégrés et des correctifs pour les modèles de Rule courants.

<div id="before-migration">
  ## Avant la migration
</div>

Avant de commencer la migration, consultez [Passer de Rules à Actions](/docs/fr-ca/customize/actions/migrate/migrate-from-rules-to-actions). Ce guide de migration est une excellente ressource pour comprendre les différences entre Rules et Actions et vous accompagner tout au long du processus de migration.

<div id="rule-migration-order">
  ### Ordre de migration des Rules
</div>

Les Rules s’exécutent avant les Actions, ce qui signifie qu’elles doivent être migrées dans l’ordre inverse de leur exécution. Migrez d’abord la dernière Rule à s’exécuter dans votre flux actuel, puis remontez jusqu’à la première Rule en suivant l’ordre chronologique inverse.

Si vous ne respectez pas cet ordre de migration, des erreurs peuvent survenir en raison d’effets secondaires imprévus liés aux dépendances dans l’ordre des Rules et des Actions.

<div id="safely-rolling-back">
  ### Effectuer un retour arrière en toute sécurité
</div>

L’outil de migration vous permet d’effectuer un retour arrière facilement et en toute sécurité en cas de problème. Réactivez votre Rule et ignorez la logique de l’Action correspondante.

<div id="migrating-a-rule">
  ## Migration d’une Rule
</div>

Pour commencer la migration de votre Rule, sélectionnez **Auth Pipeline > Rules**. Une fois cette option sélectionnée, vos Rules s’affichent et vous pouvez les migrer individuellement.

<Frame>
  <img src="https://mintcdn.com/translations/c0RQ9V0YAcT0-8l5/docs/images/cdy7uua7fh8z/79DmJp8C2vYZpdos51Z0nM/5a665d04c66dd9f0b8f0e25198cb9e4e/SS1_Dashboard_migration_screenshot.png?fit=max&auto=format&n=c0RQ9V0YAcT0-8l5&q=85&s=97866d7b3b420e0abc35f57f9b481a3b" alt="" width="2026" height="842" data-path="docs/images/cdy7uua7fh8z/79DmJp8C2vYZpdos51Z0nM/5a665d04c66dd9f0b8f0e25198cb9e4e/SS1_Dashboard_migration_screenshot.png" />
</Frame>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Seule la migration démarre lorsque vous choisissez **Migrate to Action**. En tant que développeur, vous pouvez choisir quand activer la nouvelle Action.
</Callout>

<div id="migrate-to-action">
  ### Migrate to Action
</div>

Après avoir sélectionné **Migrate to Action**, l’outil vous invite à créer une nouvelle Action.

<Frame>
  <img src="https://mintcdn.com/translations/eVsQcTnbClN-oB7d/docs/images/cdy7uua7fh8z/1A8FnVyvqAwW8hbrkOQDoG/f83ba9d5157db14ac2a3a666b2280574/SS2_Migrate_to_Action_screenshot.png?fit=max&auto=format&n=eVsQcTnbClN-oB7d&q=85&s=e999d4b305e23999ae748272cc2974f2" alt="" width="2106" height="1292" data-path="docs/images/cdy7uua7fh8z/1A8FnVyvqAwW8hbrkOQDoG/f83ba9d5157db14ac2a3a666b2280574/SS2_Migrate_to_Action_screenshot.png" />
</Frame>

Après avoir sélectionné **Create,** la nouvelle Action est créée et l’Actions Editor s’affiche.

<Frame>
  <img src="https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/2A10fE69aVngEcL2ZQCqWX/720dca2a8e6005c9378efad3bc140af0/Screenshot_2024-06-06_at_11.55.38_AM.png?fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=fb69cbfcec64169a5cf374fae04f6813" alt="" width="2024" height="1508" data-path="docs/images/cdy7uua7fh8z/2A10fE69aVngEcL2ZQCqWX/720dca2a8e6005c9378efad3bc140af0/Screenshot_2024-06-06_at_11.55.38_AM.png" />
</Frame>

Si la Rule est migrée vers Actions et qu’elle est toujours active, la Rule se termine avant que la logique ne s’exécute.

Cela fonctionne par l’appel de `api.rules.wasExecuted()`. Si la fonction `wasExecuted` reçoit une chaîne contenant l’ID de la Rule, elle renvoie `true` si la Rule a déjà été exécutée (sinon, elle renvoie `false`).

C’est un outil utile pour éviter que votre logique ne s’exécute deux fois. Dès que vous désactivez la Rule référencée, la fonction renvoie `false` et la logique métier s’exécute alors dans l’Action.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  La valeur de l’ID de la Rule est renseignée automatiquement pour toute Rule migrée à l’aide de la fonctionnalité **Migrate to Action**.
</Callout>

Pour en savoir plus sur la fonction `api.rules.wasExecuted()`, consultez [Actions Triggers: post-login - API Object](/docs/fr-ca/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger/post-login-api-object).

<div id="rewrite-rule-code">
  ## Réécrire le code de la Rule
</div>

Sélectionnez le bouton **Rules** dans l’Actions Editor pour charger l’outil de migration des Rules. Vous pourrez alors consulter rapidement le code de la Rule migrée. Vous devriez vérifier le code de la Rule sélectionnée dans la barre latérale.

Copiez le contenu de la fonction Rule et collez-le sous le commentaire `// YOUR CODE HERE` dans l’Action. Il est probable que ce code ne soit pas adapté au modèle de programmation des Actions.

<Frame>
  <img src="https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/2jWCZFnfERuN7NzBPrpCDn/80ba271699893a007dac7baaf2dd44cb/Screenshot_2024-06-06_at_11.57.03_AM.png?fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=9dc49cde0010d7193fb079bfd09d196a" alt="" width="2012" height="1486" data-path="docs/images/cdy7uua7fh8z/2jWCZFnfERuN7NzBPrpCDn/80ba271699893a007dac7baaf2dd44cb/Screenshot_2024-06-06_at_11.57.03_AM.png" />
</Frame>

L’Actions Editor indique les endroits où le code doit être refactorisé. L’éditeur propose aussi des suggestions pour corriger automatiquement la plupart des cas. Pour examiner la suggestion ou le correctif, survolez le code souligné :

<Frame>
  <img src="https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/5jRGI4iDX9ZgwcPRADTbZ1/caa90923a76800526871b137806e2af3/Screenshot_2024-06-06_at_11.58.07_AM.png?fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=b13e8eea9cf22810417cb04ac268ebe1" alt="" width="1998" height="1476" data-path="docs/images/cdy7uua7fh8z/5jRGI4iDX9ZgwcPRADTbZ1/caa90923a76800526871b137806e2af3/Screenshot_2024-06-06_at_11.58.07_AM.png" />
</Frame>

Vous pourrez peut-être appliquer des mises à jour propres aux Actions en sélectionnant une option dans la fenêtre modale **Quick Fix**.

<Frame>
  <img src="https://mintcdn.com/translations/xwVvTWJUElMm5YAK/docs/images/cdy7uua7fh8z/qTS4RD6cjWFVfI0T9Uph3/45776c464f7247ddd8e91860f4646f2e/Screenshot_2024-06-06_at_11.58.48_AM.png?fit=max&auto=format&n=xwVvTWJUElMm5YAK&q=85&s=745d3a882f413dcf45dd0f49180bb60a" alt="" width="2032" height="1508" data-path="docs/images/cdy7uua7fh8z/qTS4RD6cjWFVfI0T9Uph3/45776c464f7247ddd8e91860f4646f2e/Screenshot_2024-06-06_at_11.58.48_AM.png" />
</Frame>

Lorsque vous sélectionnez le correctif recommandé, votre code est automatiquement mis à jour pour être compatible.

<Frame>
  <img src="https://mintcdn.com/translations/eVsQcTnbClN-oB7d/docs/images/cdy7uua7fh8z/1cAq5A1MNVLPAsinHjtROh/c71276afd1f6df9e01d71cc869778907/Screenshot_2024-06-06_at_11.59.37_AM.png?fit=max&auto=format&n=eVsQcTnbClN-oB7d&q=85&s=05b52642db7731d9b895b4f848164fcb" alt="" width="2144" height="1588" data-path="docs/images/cdy7uua7fh8z/1cAq5A1MNVLPAsinHjtROh/c71276afd1f6df9e01d71cc869778907/Screenshot_2024-06-06_at_11.59.37_AM.png" />
</Frame>

Dans certaines situations, les correctifs ne peuvent pas être appliqués automatiquement, mais des indications sont tout de même fournies :

<Frame>
  <img src="https://mintcdn.com/translations/pvjQqAy3EB2TK6NP/docs/images/cdy7uua7fh8z/4Lx3RxJh8v4tj1J2SpPVvU/0ff35b0f40bb24d195ab2f4b06817d86/Screenshot_2024-06-06_at_12.00.22_PM.png?fit=max&auto=format&n=pvjQqAy3EB2TK6NP&q=85&s=61c38294dc7f88ec6a29c8c3e9d896ba" alt="" width="2194" height="1620" data-path="docs/images/cdy7uua7fh8z/4Lx3RxJh8v4tj1J2SpPVvU/0ff35b0f40bb24d195ab2f4b06817d86/Screenshot_2024-06-06_at_12.00.22_PM.png" />
</Frame>

Par exemple : dans le cas de la fonction `callback` de la Rule, il est recommandé d’utiliser [`api.access.deny`](/docs/fr-ca/customize/actions/explore-triggers/signup-and-login-triggers/pre-user-registration-trigger/pre-user-registration-api-object) pour les erreurs, ou simplement `return` en cas de réussite.

<div id="test-the-new-action">
  ### Tester la nouvelle Action
</div>

Les Actions peuvent être testées directement dans l’éditeur, puisqu’il s’agit d’une étape essentielle de la migration. Pour en savoir plus, consultez [Test Actions](/docs/fr-ca/customize/actions/test-actions).

<Warning>
  Nous vous recommandons fortement de valider toute la logique de migration dans un tenant de développement avant de l’activer en production.
</Warning>

<div id="automatically-enabling-the-action">
  ### Activation automatique de l’Action
</div>

Lorsque le code de l’Action est mis à jour et que vous êtes prêt à effectuer le changement :

1. Sélectionnez **Deploy**.
2. Dans l’alerte qui confirme votre déploiement, sélectionnez **Add to flow**.
3. Ajoutez l’Action que vous venez de créer au flux, puis sélectionnez **Apply.**
4. Sélectionnez **Continue**, **puis désactivez toutes les Rules sélectionnées** pour activer simultanément la nouvelle Action et désactiver la Rule d’origine. Si vous n’êtes pas prêt, sélectionnez **Cancel**; vous pourrez désactiver la Rule plus tard pour activer la logique de l’Action migrée.

Pour en savoir plus sur l’ajout de votre Action au flux, consultez [Write your first Action](/docs/fr-ca/customize/actions/write-your-first-action).

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Si vous réactivez une Rule, la logique de l’Action correspondante est ignorée.
</Callout>

<div id="migrate-remaining-rules">
  ## Migrer les Rules restantes
</div>

Ce processus peut être répété pour migrer chaque Rule de votre flux de connexion. Rappelez-vous que les Rules doivent être migrées dans l’ordre inverse de celui dans lequel elles s’exécutent dans le flux de connexion.
