Saltar al contenido principal

Entornos y secrets

Entornos​

Un entorno separa las configuraciones de una misma tarea: por ejemplo, Producción, con los tokens reales de los sistemas, y Sandbox, con los de prueba. Toda ejecución corre en un entorno, elegido en la barra superior de la consola o indicado en el lanzamiento por la API (environment_id).

Cada entorno tiene:

CampoQué es
NombreLa etiqueta del entorno, única en la organización.
ColorEl color que identifica el entorno en la consola.
BranchLa rama usada en las ejecuciones de este entorno.
SecretsLas credenciales registradas para él.
ProgramacionesLas programaciones de tareas que corren en él.

Un entorno con secrets o programaciones no se puede eliminar: quítalos antes.

Los entornos se pueden declarar en el Playbook, en el archivo kadu.yaml (El kadu.yaml). En ese caso, el repositorio es la fuente de verdad: una edición hecha solo en la consola vuelve a lo declarado en el próximo push.

Secrets​

Un secret es una credencial que usa una tarea: un token de API, una contraseña, el id de una cuenta. Pertenece a un entorno y, opcionalmente, a un workspace.

  • El valor se guarda cifrado y nunca se muestra de vuelta, ni en la consola ni en la API. Para cambiarlo, guarda un valor nuevo.
  • Una ejecución recibe solo los secrets que la tarea declara en required_secrets. Es una lista de permitidos: un secret registrado y no declarado no llega a la ejecución.
  • El secret llega a la skill como variable de entorno con el nombre de la clave (KOBANA_ACCESS_TOKEN, FINTERA_TOKEN…).
  • Antes de enviar un evento, un log o un pendiente a la consola, Kadu reemplaza el valor de todo secret de la ejecución por una máscara.

Secrets pendientes​

Configuración → Secrets marca como Pendiente todo secret que una tarea del workspace exige y que aún no tiene valor en el entorno. El lanzamiento desde la consola lo verifica antes de empezar y muestra lo que falta, con el atajo Configurar secrets. En el endpoint de lanzamiento, un secret exigido sin valor rechaza la llamada con 422 missing_secrets.

Orden al incluir un secret nuevo en una tarea​

  1. Quien mantiene el repositorio agrega el nombre en required_secrets de la skill y publica.
  2. Después de la sincronización, registra el valor en el entorno.

Si la tarea tiene programación, registra el valor antes del próximo horario. Sin él, la ejecución recibe la variable vacía y falla a mitad de camino, y no al principio.