Saltar al contenido principal

Ejecutar con el SDK de Node.js

Usa el paquete oficial @fetch-hive/sdk cuando quieras invocar un deployment de flujo de trabajo desde Node.js o TypeScript. El SDK envuelve el endpoint público POST /v1/workflow/invoke, maneja la autenticación y admite tanto respuestas directas como entrega por callback.

Instalación

npm install @fetch-hive/sdk
# or
yarn add @fetch-hive/sdk
# or
pnpm add @fetch-hive/sdk
El SDK está dirigido a Node.js 18+ (usa el fetch global) y viene con tipos TypeScript.

Autenticación

Configura la variable de entorno FETCH_HIVE_API_KEY con tu clave de API del workspace:
export FETCH_HIVE_API_KEY=fhk_...
import { FetchHive } from '@fetch-hive/sdk';

const client = new FetchHive();
O pasa la clave explícitamente:
const client = new FetchHive({ apiKey: 'fhk_...' });
Consulta API Keys para saber cómo crear y rotar claves.

Ejemplo básico

Ejecuta un deployment de flujo de trabajo directamente. La llamada se bloquea hasta que el flujo de trabajo termina:
import { FetchHive } from '@fetch-hive/sdk';

const client = new FetchHive();

const run = await client.invokeWorkflow({
  deployment: 'YOUR_DEPLOYMENT_NAME',
  variant: 'YOUR_VARIANT_NAME',
  inputs: { topic: 'State of enterprise AI in 2026' },
});

console.log(run.status);
console.log(run.output);
Consulta la forma de respuesta directa.

Referencia del método

CampoTipoRequeridoDescripción
deploymentstringEl nombre del deployment del flujo de trabajo
variantstringNoEl nombre de la variante del deployment
inputsRecord<string, unknown>NoPares clave-valor para las variables definidas en el paso Start
async{ enabled: boolean, callback_url?: string }NoAjustes de entrega por callback
userstringNoIdentificador opaco de quien llama, expuesto en User Tracking
metadataRecord<string, string | number | boolean | null>NoMetadata plana definida por quien llama, para auditoría y filtrado de registros. Consulta Metadata de invoke

Manejo de la respuesta

const run = await client.invokeWorkflow({
  deployment: 'my-workflow',
  variant: 'default',
});

console.log(run.status);       // "completed" | "failed" | "running" | "queued"
console.log(run.output);       // final workflow output
console.log(run.request_id);   // use this to look up the run in Logs

Entrega por callback

Pasa un bloque async para devolver respuesta inmediatamente y hacer que Fetch Hive llame a tu URL de callback cuando la ejecución termine:
const run = await client.invokeWorkflow({
  deployment: 'YOUR_DEPLOYMENT_NAME',
  variant: 'YOUR_VARIANT_NAME',
  inputs: { topic: 'State of enterprise AI in 2026' },
  async: { enabled: true, callback_url: 'https://example.com/callback' },
});

console.log('Queued:', run.status);
console.log('Webhook secret:', run.webhook_secret);
Almacena el webhook_secret para que puedas verificar la firma en el callback entrante. Consulta Entrega por callback y disparadores de webhook para el flujo de verificación y la forma del payload firmado.

Configuración

OpciónPredeterminadoDescripción
apiKeyprocess.env.FETCH_HIVE_API_KEYToken bearer del dashboard
baseURLhttps://api.fetchhive.com/v1Sobrescribe la URL base de la API
const client = new FetchHive({
  apiKey: 'fhk_...',
  baseURL: 'https://api.fetchhive.com/v1',
});
Para solicitudes directas de flujos de trabajo de larga duración, prefiere async: { enabled: true, ... } en lugar de aumentar los timeouts del cliente.

Errores

Las respuestas distintas a 2xx lanzan un Error cuyo mensaje incluye el código de estado y el cuerpo de la respuesta:
try {
  const run = await client.invokeWorkflow({
    deployment: 'my-workflow',
    variant: 'default',
  });
} catch (err) {
  console.error('Fetch Hive error:', err);
}
Consulta Manejo de errores para los casos de fallo específicos del flujo de trabajo y Errors and Rate Limits para el significado de los códigos de estado HTTP.

Enlaces

Siguientes pasos