Saltar al contenido principal
Deploy CLI permite trabajar en un contexto multiinquilino y multientorno. Cuando se integra en sus flujos de trabajo de desarrollo de CI/CD, se puede usar para propagar cambios de Auth0 desde el desarrollo de funcionalidades hasta producción. En general, el flujo de trabajo recomendado es el siguiente:
  1. Cree un Tenant de Auth0 independiente para cada entorno (desarrollo, ensayo, producción).
  2. Cree un único repositorio de archivos de configuración de recursos para todos los entornos.
  3. Agregue un paso a su flujo de CI/CD para los despliegues en los distintos entornos que aplique las configuraciones de recursos de Auth0 al Tenant de Auth0 correspondiente.

Tenant por entorno

Se recomienda tener un Tenant o una cuenta de Auth0 independientes para cada entorno. Por ejemplo:
EntornoTenant
Desarrollotravel0-dev
Pruebastravel0-uat
Preproduccióntravel0-stage
Produccióntravel0-prod

Repositorio de configuración de recursos

Al exportarse, el estado de tu Tenant de Auth0 se representará como un conjunto de archivos de configuración de recursos, ya sea en formato YAML o de directorio. En un contexto multientorno, se espera contar con un único repositorio de configuraciones de recursos que se aplique a todos los entornos. En la práctica, puede ser un directorio dentro de la base de código de tu proyecto o incluso una base de código independiente. Debes tener al menos una rama para cada Tenant en tu repositorio, lo que te permite hacer cambios sin desplegarlos. De este modo, los cambios solo se desplegarán cuando fusiones la rama de trabajo en la rama principal (como main o master). Con esta configuración, puedes tener una tarea de integración continua para cada entorno que despliegue automáticamente los cambios en el entorno de destino cada vez que la rama principal reciba actualizaciones. Tu flujo de trabajo podría verse así:
  1. Haz cambios en desarrollo.
  2. Fusiona los cambios en testing (o uat).
  3. Prueba los cambios en uat. Cuando estén listos, mueve y fusiona los cambios a staging.
  4. Prueba staging. Cuando esté listo, mueve y fusiona los cambios a producción.
Como medida de precaución, quizá te convenga configurar tu entorno de producción para que se despliegue solo cuando se active manualmente.

Flujo unidireccional

El flujo de trabajo multientorno funciona mejor cuando los cambios se propagan «hacia arriba» en una sola dirección. Los cambios en los archivos de configuración de recursos deben aplicarse primero al entorno de nivel más bajo (como desarrollo) y luego aplicarse de forma incremental al resto de los entornos hasta llegar a producción. Esta práctica unidireccional garantiza que los cambios en su Tenant se sometan a pruebas y aprobaciones suficientes. Una vez definido este proceso, se recomienda no aplicar configuraciones directamente en producción por otros medios, como el o la , a menos que esos cambios se recojan en una exportación posterior de Deploy CLI. De lo contrario, esos cambios pueden sobrescribirse.

Valores específicos del entorno

Aunque se espera que todos los entornos compartan el mismo conjunto de archivos de configuración de recursos, los valores específicos del entorno pueden definirse mediante archivos de configuración de la herramienta independientes y el reemplazo de palabras clave dinámico.

Archivos de configuración separados

Usar un archivo de configuración de la herramienta independiente para cada entorno permite mantener los archivos de configuración de recursos agnósticos del entorno y, al mismo tiempo, satisfacer las necesidades de cada uno. Como mínimo, deberá proporcionar credenciales independientes para cada entorno, pero también puede excluir determinados recursos, habilitar la eliminación y realizar reemplazo dinámico de palabras clave para cada entorno.

Estructura de archivos de ejemplo

project-root

└───auth0
│   │   config-dev.json   # Archivo de configuración del entorno de desarrollo
│   │   config-test.json  # Archivo de configuración del entorno de pruebas
│   │   config-prod.json  # Archivo de configuración del entorno de producción
│   │   ... todos los demás archivos de configuración de recursos

└───src
    │   ... el código de tu proyecto

Valores dinámicos con reemplazo de palabras clave

Una vez que se utilizan archivos de configuración independientes para cada entorno, puede usar el reemplazo de palabras clave mediante la propiedad de configuración AUTH0_KEYWORD_REPLACE_MAPPINGS para definir valores de reemplazo dinámicos según el entorno. Por ejemplo, puede que necesite tener un conjunto independiente de orígenes permitidos para sus clientes. Para obtener más información, consulte Reemplazo de palabras clave.

Ejemplo de config-dev.json

{
  "AUTH0_DOMAIN": "travel0-dev.us.auth0.com",
  "AUTH0_CLIENT_ID": "PdwQpGy62sHcsV6ufZNEVrV4GDlDhm74",
  "AUTH0_ALLOW_DELETE": true,
  "AUTH0_KEYWORD_REPLACE_MAPPINGS": {
    "ENV": "dev",
    "ALLOWED_ORIGINS": ["http://localhost:3000", "http://dev.travel0.com"]
  }
}

Ejemplo de config-prod.json

{
  "AUTH0_DOMAIN": "travel0.us.auth0.com",
  "AUTH0_CLIENT_ID": "vZCEFsDYzXc1x9IomB8dF185e4cdVah5",
  "AUTH0_ALLOW_DELETE": false,
  "AUTH0_KEYWORD_REPLACE_MAPPINGS": {
    "ENV": "prod",
    "ALLOWED_ORIGINS": ["http://travel0.com"]
  }
}