Saltar al contenido principal
Versión: v2 ⚡

Uso básico de la CLI de OpenFn

Esta página muestra ejemplos de algunos de los usos más comunes de la CLI, como:

  • obtener ayuda
  • ejecutar un job
  • guardar el state
  • ajustar el nivel de logs
  • mantener el repositorio de adaptors
  • ejecutar un workflow
  • preparar el código de los jobs para pruebas unitarias
  • cargar la documentación de un adaptor

Obtener ayuda​

openfn --help
openfn deploy --help

Ejecutar un job​

Para ejecutar un solo job, tienes que indicar explícitamente qué adaptor usar. Consulta los adaptors disponibles públicamente.

Si no se detecta la versión indicada, el adaptor se instala automáticamente.

Ejecutar un job con el adaptor http:

openfn path/to/job.js -a http

Usar una versión concreta del adaptor:

openfn path/to/job.js -a http@2.0.0

Pasar la ruta de un adaptor instalado localmente:

openfn path/to/job.js -a http=/repo/openfn/adaptors/my-http-build

Usar la compilación local del monorepo de adaptors:

openfn path/to/job.js -ma http

Tienes que indicar la ruta al monorepo en la variable de entorno OPENFN_ADAPTORS_REPO. Por ejemplo:

OPENFN_ADAPTORS_REPO=~/openfn/adaptors openfn job.js -ma http

Normalmente la defines en un archivo de configuración como .profile o .zshrc.

¡No olvides volver a compilar el adaptor antes de usarlo!

Ejecutar desde un step inicial concreto

Puedes indicar un step con su id exacto o con una parte del nombre o del id.

openfn path/to/job.js --start cf628d9e -s path/to/input.json

Si ya guardaste en caché los resultados de este workflow, la CLI carga automáticamente la entrada correcta desde la caché cuando omites el argumento -s:

openfn path/to/job.js --start cf628d9e

También puedes pasar --end para que el workflow termine antes.

Ejecutar un solo step

--only funciona igual que --start y --end. Puedes indicar una parte del nombre o del id del step, y la entrada se carga automáticamente desde la caché.

openfn path/to/job.js --only cf628d9e

Gestionar el state de salida​

Cuando termina el job, la CLI escribe el state resultante en el disco. De forma predeterminada, crea un archivo output.json junto al archivo del job.

Puedes indicar rutas personalizadas para los archivos de salida y de state:

openfn path/to/job.js -a adaptor-name -o path/to/output.json -s path/to/state.json

Usa -O para devolver la salida por stdout:

openfn path/to/job.js -a adaptor-name -O

Guardar localmente los resultados de todos los steps

openfn path/to/workflow.json --cache-steps

Cada step escribe su salida en ./.cli-cache/<workflow-name>/<step-id>.json. Git ignora la carpeta .cli-cache, y la caché se borra cuando vuelves a ejecutar el workflow con --cache-steps habilitado.

Para guardar en caché siempre, define la variable de entorno OPENFN_ALWAYS_CACHE_STEPS como "true", y pasa --no-cache-steps para deshabilitarlo temporalmente.


Ajustar el nivel de logs​

Puedes pasar -l info o --log info para obtener más información sobre lo que ocurre durante la ejecución. Estos son los distintos niveles de logs:

nivel de logsdescripción
openfn path/to/job.js -a adaptor -l noneModo silencioso
openfn path/to/job.js -a adaptor -l defaultInformación general de lo que está ocurriendo
openfn path/to/job.js -a adaptor -l infoMás información sobre el runtime, la CLI y el job
openfn path/to/job.js -a adaptor -l debugInformación sobre el runtime, la CLI, el compilador y el job

Mantener el repositorio de adaptors instalados automáticamente​

Listar el contenido del repositorio:

openfn repo list

Indicar la carpeta del repositorio con la variable de entorno OPENFN_REPO_DIR:

export OPENFN_REPO_DIR=/path/to/repo

Instalar adaptors automáticamente y comprobar si el repositorio tiene una versión que coincida:

openfn path/to/job.js -a adaptor-name

Eliminar todos los adaptors del repositorio:

openfn repo clean

Ejecutar un workflow​

Haz clic para ver la estructura JSON de un workflow de ejemplo
{
"options": {
"start": "a" // optionally specify the start node (defaults to steps[0])
},
"workflow": {
"steps": [
{
"id": "a",
"expression": "fn((state) => state)", // code or a path
"adaptor": "@openfn/language-common@1.75", // specify the adaptor to use (version optional)
"state": {
"data": {} // optionally pre-populate the data object (this will be overridden by keys in previous state)
},
"configuration": {}, // Use this to pass credentials
"next": {
// This object defines which steps to call next
// All edges returning true will run
// If there are no next edges, the workflow will end
"b": true,
"c": {
"condition": "!state.error" // Note that this is an expression, not a function
}
}
}
]
}
}

Para ejecutar un workflow:

openfn path/to/workflow.json -o tmp/output.json

Consulta este tutorial detallado sobre cómo ejecutar workflows con la CLI.


Preparar el código de los jobs para pruebas unitarias​

¿Quieres escribir pruebas unitarias para el código de tus jobs? Consulta Escribir pruebas unitarias para tus jobs para ver la guía completa.

Las pruebas unitarias solo funcionan con las funciones puras de tu código (declaraciones de funciones de nivel superior): no funcionan con operaciones ni con funciones de adaptors, porque estas necesitan servicios de backend conectados.

Para hacer pruebas unitarias de las funciones del código de tus jobs:

  1. Compila tu proyecto con openfn compile. Esto compila tus workflows y los escribe como módulos ES normales.
  2. Importa las funciones compiladas en tu archivo de pruebas, igual que cualquier otro módulo JS nativo.
  3. Escribe las pruebas como siempre para esas funciones puras.

Compila todos los workflows del proyecto y conserva solo las declaraciones exportadas:

openfn compile --exports-only

Los archivos compilados se escriben en dist/ como archivos .mjs.

Con --exports-only, las operaciones se eliminan por completo y solo quedan las funciones y variables exportadas.

Compila un solo workflow por nombre:

openfn compile my-workflow --exports-only

Vuelve a compilar cada vez que cambie el código de un job:

openfn compile --exports-only --watch

Sin --exports-only, obtienes la salida compilada completa del step.

Cargar la documentación de un adaptor​

La CLI puede mostrar la documentación de un adaptor en la terminal. Ten en cuenta que primero tiene que descargar el adaptor al repositorio (si todavía no está ahí), lo que puede tardar un momento.

Mostrar una lista de las funciones del adaptor

openfn docs http

Mostrar la documentación de una función concreta

openfn docs http post