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

> Aprenda a gestionar un flujo de trabajo multiinquilino con Auth0 Deploy CLI mediante el reemplazo de palabras clave.

# Reemplazo de palabras clave

Deploy CLI admite el reemplazo dinámico de palabras clave con valores específicos del entorno. Esto permite un flujo de trabajo multiinquilino escalable en el que todos los inquilinos comparten los mismos archivos de configuración de recursos, pero insertan valores sutilmente diferentes.

Para usar el reemplazo de palabras clave, la propiedad de configuración `AUTH0_KEYWORD_REPLACE_MAPPINGS` debe contener las asignaciones adecuadas. Luego, en los archivos de configuración de recursos, las palabras clave pueden insertarse de una de estas dos formas:

1. `@@EXAMPLE_KEY@@`: El uso de los símbolos `@` hace que la herramienta ejecute `JSON.stringify` en el valor antes de reemplazarlo. Por lo tanto, si el valor es una cadena, la herramienta agregará comillas; si el valor es un arreglo o un objeto, la herramienta agregará llaves.
2. `##EXAMPLE_KEY##`: El uso del símbolo `#` hace que la herramienta realice un reemplazo literal; no agregará comillas ni llaves.

## Ejemplo de config.json

```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"]
  }
}
```

## Ejemplo de tenant.yaml

```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">
  ## Ejemplo de tenant.json
</div>

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

<div id="array-concatenation">
  ## Concatenación de arrays
</div>

Puede encontrarse con situaciones en las que quiera concatenar valores a un array estático mediante el reemplazo de palabras clave. No hay una sintaxis especial para este caso; sin embargo, es posible conseguirlo escapando las comillas dobles en una sola cadena que contenga los valores adecuados e inyectándola con la sintaxis de palabra clave `##`. Esta técnica funciona tanto para los [formatos YAML y de directorio](/es/docs/deploy-monitor/deploy-cli-tool/available-resource-configuration-formats).

<div id="example-configjson">
  ### Ejemplo de archivo config.json
</div>

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

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

```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">
  ## Conservar palabras clave al exportar
</div>

En general, Deploy CLI funciona mejor en un flujo de trabajo unidireccional desde los entornos de nivel inferior (por ejemplo, dev, test) hasta los entornos de producción. Sin embargo, en ocasiones será necesario exportar la configuración desde un entorno de nivel superior al directorio de configuración local. De forma predeterminada, los valores remotos sobrescribirán los valores locales, **lo que provocará la eliminación de los marcadores de palabras clave**. No obstante, es posible habilitar la conservación del reemplazo de palabras clave mediante la propiedad de configuración booleana `AUTH0_PRESERVE_KEYWORDS`. Al habilitar esta configuración, Deploy CLI intentará conservar los marcadores de palabras clave definidos en los archivos de configuración locales durante la exportación.

La funcionalidad de conservación de palabras clave intentará preservar la mayor cantidad posible de palabras clave sin dejar de mantener la exactitud de los archivos de configuración de recursos. Y en la mayoría de los casos, funcionará sin intervención del usuario. Sin embargo, existen algunas limitaciones importantes:

* En el caso de un campo de configuración con reemplazo de palabras clave cuyos valores difieran entre local y remoto, siempre prevalecerá el valor de la configuración local. Esto hará que **se borren los cambios realizados fuera de banda en el entorno remoto** si existe un marcador de reemplazo de palabras clave en cualquier parte del valor de ese campo en el archivo de definición del recurso; no existe ninguna reconciliación "inteligente".
* Los arrays sin identificadores específicos no pueden preservarse. Por ejemplo: `["http://site.com/logout", "localhost:3000/logout", "##LOGOUT_URL##"]`. Esto se debe a que el orden de estos valores no es determinista. Como alternativa, para conservar estos valores, se recomienda usar la sintaxis de reemplazo de palabras clave `@@ARRAY_REPLACE@@` con el valor completo.

Para obtener más información sobre el historial y los desafíos técnicos de la conservación de palabras clave, consulte [RFC: Conservación de palabras clave durante la exportación](https://github.com/auth0/auth0-deploy-cli/issues/688).
