> ## 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.

> Apprenez à gérer un flux de travail pour plusieurs locataires avec Auth0 Deploy CLI au moyen du remplacement de mots-clés.

# Remplacement de mots-clés

Deploy CLI prend en charge le remplacement dynamique de mots-clés par des valeurs propres à l’environnement. Cela permet de mettre en place un flux de travail évolutif pour plusieurs locataires, dans lequel tous les locataires partagent les mêmes fichiers de configuration des ressources, tout en injectant des valeurs légèrement différentes.

Pour utiliser le remplacement de mots-clés, la propriété de configuration `AUTH0_KEYWORD_REPLACE_MAPPINGS` doit contenir les mappages appropriés. Ensuite, dans les fichiers de configuration des ressources, les mots-clés peuvent être injectés de l’une des deux façons suivantes :

1. `@@EXAMPLE_KEY@@` : L’utilisation des symboles `@` indique à l’outil d’exécuter un `JSON.stringify` sur votre valeur avant de la remplacer. Ainsi, si votre valeur est une chaîne, l’outil ajoutera des guillemets; si votre valeur est un tableau ou un objet, l’outil ajoutera des accolades.
2. `##EXAMPLE_KEY##` : L’utilisation du symbole `#` indique à l’outil d’effectuer un remplacement littéral; il n’ajoutera ni guillemets ni accolades.

<div id="example-configjson">
  ## Exemple de fichier config.json
</div>

```json lines theme={null}
{
  "AUTH0_DOMAIN": "test-tenant.us.auth0.com",
  "AUTH0_CLIENT_ID": "FOO",
  "AUTH0_CLIENT_SECRET": "BAR",
  "AUTH0_KEYWORD_REPLACE_MAPPINGS": {
    "ENVIRONMENT": "dev",
    "ALLOWED_LOGOUT_URLS": ["https://dev-test-site.com/logout", "localhost:3000/logout"],
    "ALLOWED_ORIGINS": ["https://dev-test-site.com", "localhost:3000"]
  }
}
```

<div id="example-tenantyaml">
  ## Exemple de fichier tenant.yaml
</div>

```yaml lines theme={null}
tenant:
  friendly_name: "##ENVIRONMENT## tenant"
  allowed_logout_urls: @@ALLOWED_LOGOUT_URLS@@
  enabled_locales:
    - en
clients:
  - name: Test App
    allowed_origins: @@ALLOWED_ORIGINS@@
    allowed_logout_urls: @@ALLOWED_LOGOUT_URLS@@
```

<div id="example-tenantjson">
  ## Exemple de tenant.json
</div>

```json lines theme={null}
{
  "friendly_name": "##ENVIRONMENT## tenant",
  "allowed_logout_urls": "@@ALLOWED_LOGOUT_URLS@@"
}
```

<div id="array-concatenation">
  ## Concaténation de tableaux
</div>

Il peut arriver que vous souhaitiez concaténer des valeurs à un tableau statique au moyen du remplacement de mots-clés. Il n’existe aucune syntaxe particulière pour prendre en charge ce cas. Toutefois, il est possible d’y parvenir en utilisant des guillemets doubles échappés dans une seule chaîne contenant les valeurs appropriées, puis en l’injectant avec la syntaxe de mot-clé `##`. Cette technique fonctionne à la fois pour les [formats YAML et de répertoire](/fr-CA/docs/deploy-monitor/deploy-cli-tool/available-resource-configuration-formats).

### Exemple de config.json

```json lines theme={null}
{
  "AUTH0_KEYWORD_REPLACE_MAPPINGS": {
    "GLOBAL_WEB_ORIGINS": "\"http://local.me:8080\", \"http://localhost\", \"http://localhost:3000\""
  }
}
```

### Exemple de tenant.yaml

```yaml lines theme={null}
clients:
  - name: Test App
    web_origins: [ "http://production-app.com", "https://production-app.com", ##GLOBAL_WEB_ORIGINS## ]
```

<div id="preserve-keywords-on-export">
  ## Préserver les mots-clés lors de l’exportation
</div>

En règle générale, le Deploy CLI fonctionne mieux lorsqu’il est utilisé dans un flux de travail unidirectionnel, de vos environnements de niveau inférieur (p. ex. : dev, test) vers vos environnements de production. Toutefois, il peut parfois être nécessaire d’exporter la configuration d’un environnement de niveau supérieur vers votre répertoire de configuration local. Par défaut, les valeurs distantes remplacent vos valeurs locales, **ce qui supprime vos marqueurs de mots-clés**. Cependant, il est possible d’activer la préservation des remplacements de mots-clés à l’aide de la propriété de configuration booléenne `AUTH0_PRESERVE_KEYWORDS`. Lorsque cette configuration est activée, le Deploy CLI tente de préserver les marqueurs de mots-clés définis dans vos fichiers de configuration locaux pendant l’exportation.

La fonctionnalité de préservation des mots-clés tente d’en conserver le plus possible tout en maintenant l’exactitude de vos fichiers de configuration des ressources. Dans la plupart des cas, elle fonctionne sans aucune intervention de l’utilisateur. Cependant, certaines limites importantes s’appliquent :

* Dans le cas d’un champ de configuration avec remplacement de mot-clé dont les valeurs diffèrent entre le local et le distant, la valeur de configuration locale est toujours privilégiée. Cela entraîne **l’écrasement de toute modification apportée directement dans l’environnement distant** si un marqueur de remplacement de mot-clé existe à un endroit quelconque dans la valeur de ce champ dans le fichier de définition de la ressource; il n’y a aucune réconciliation « intelligente ».
* Les tableaux sans identifiants précis ne peuvent pas être préservés. Ex. : `["http://site.com/logout", "localhost:3000/logout", "##LOGOUT_URL##"]`. Cela s’explique par le fait que l’ordre de ces valeurs n’est pas déterministe. Pour préserver ces valeurs, il est plutôt recommandé d’utiliser la syntaxe de remplacement de mot-clé `@@ARRAY_REPLACE@@` avec la valeur complète.

Pour en savoir plus sur l’historique et les défis techniques de la préservation des mots-clés, consultez [RFC: Keyword Preservation During Export](https://github.com/auth0/auth0-deploy-cli/issues/688).
