Skip to content
imminent-technologyPublic

About

Run Arazzo API workflows

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

loom

A workflow engine and CLI that interprets Arazzo Specification (v1.1.0) documents and executes the workflows they describe, resolving step dependencies into a DAG and running independent steps in parallel.

Scope

  • Source descriptions: OpenAPI 3.x only (operationId / operationPath); no AsyncAPI.
  • successCriteria / action criteria: simple and jsonpath condition types.
  • HTTP steps only (no nested workflow invocation via workflowId, no async send/receive).

Install & build

npm install
npm run build

Usage

loom run <arazzo-file> [options]
Option Description
-w, --workflow <id> Workflow to run (required if the document defines more than one)
-i, --input <key=value> A workflow input; repeatable; values are parsed as JSON when possible
--input-file <path> A JSON file of workflow inputs (--input flags take precedence)
--dry-run Resolve and print the execution plan without making any network calls
-c, --concurrency <n> Max steps to run in parallel (default: unbounded)
-r, --retries <n> Attempts per step before giving up (default: 3)
--base-url <url> Override the base URL for all operations
--timeout <ms> Per-request timeout in milliseconds
--json Print machine-readable JSON instead of formatted console output

Example

node dist/cli.js run examples/pet-store.arazzo.yaml --input petName=Rex --dry-run
node dist/cli.js run examples/pet-store.arazzo.yaml --input petName=Rex

The examples/ folder includes a trimmed pet-store Arazzo document, its OpenAPI source, and a tiny mock server (node examples/mock-server.mjs) to run the example against.

Development

npm install
npm run typecheck
npm test

Rebuild on every change with:

npm run dev   # tsup --watch

To try the CLI against your local changes, run the built output directly:

node dist/cli.js run examples/pet-store.arazzo.yaml --input petName=Rex --dry-run

Or link the package so the loom command resolves to your local checkout (useful for testing against a document in another directory):

npm link
loom run examples/pet-store.arazzo.yaml --input petName=Rex --dry-run

To exercise a full (non-dry-run) workflow end-to-end, start the bundled mock server in one terminal and point the CLI at it in another:

node examples/mock-server.mjs
node dist/cli.js run examples/pet-store.arazzo.yaml --input petName=Rex --base-url http://localhost:4010

About

Run Arazzo API workflows

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages