ironflow-cli
Command-line interface for the ironflow workflow engine. Manage runs, workflows, secrets, API keys, users and audit logs, stream logs, and view statistics from the terminal.
Installation
Configuration
Create ~/.ironflow.toml:
= "https://ironflow.example.com"
= "your-api-key"
Or use environment variables:
| Variable | Description |
|---|---|
IRONFLOW_URL |
Base URL of the ironflow API |
IRONFLOW_API_KEY |
API key for authentication |
CLI flags (--url, --api-key) take the highest priority, then env vars, then the TOML file.
Commands
| Command | Description |
|---|---|
run create <workflow> [--payload '{}'] [--payload-file <path>] |
Create a new run |
run list [--status <s>] [--workflow <w>] |
List runs with optional filters |
run get <id> |
Get run details and steps |
run cancel <id> |
Cancel a run |
run approve <id> |
Approve a run waiting for approval |
run reject <id> |
Reject a run waiting for approval, failing it |
run retry <id> |
Retry a failed run |
workflow list |
List registered workflows |
workflow get <name> |
Get workflow details |
logs <run_id> [--follow] |
Stream run logs via SSE |
stats |
Show global statistics |
secret list |
List secret keys (values are never returned) |
secret set <key> [value] |
Create or replace a secret; reads the value on stdin when omitted |
secret update <key> [value] |
Replace an existing secret; fails if the key is unknown |
secret delete <key> [--yes] |
Delete a secret |
secret rotate [--to-version <n>] [--batch-size <n>] |
Re-encrypt every secret with a key version; resumable |
secret key-status |
Show which encryption key versions are configured and in use |
api-key list |
List API keys (prefix only, never the raw key) |
api-key create <name> --scope <s>... [--expires-at <rfc3339>] |
Create an API key; the raw key is printed once |
api-key scopes |
List the scopes an API key can be granted |
api-key delete <id> [--yes] |
Delete an API key |
user list |
List users |
user create <username> --email <e> [--password <p>] [--admin] |
Create a user; reads the password on stdin when omitted |
user delete <id> [--yes] |
Delete a user |
user set-role <id> --admin|--member |
Promote or demote a user |
audit-log list [--run <id>] [--type <kind>] [--from <d>] [--to <d>] |
List audit log entries |
Secrets, users and audit logs are admin-only.
Destructive commands ask for confirmation. --yes skips it, and is required
when stdin is not a terminal (CI): without it the command fails rather than
prompting into the void or deleting silently.
Secret values and passwords can be piped instead of passed as arguments, which
keeps them out of the shell history and out of ps output:
|
Global flags
| Flag | Description |
|---|---|
--json |
Output raw JSON instead of formatted tables |
--verbose |
Show verbose output (e.g. full step details) |
--url <url> |
Override the API base URL |
--api-key <key> |
Override the API key |
Usage
# List all runs
# Create a run with a JSON payload
# Create a run with payload from file
# Get run details as JSON
# Stream logs in real-time
# Global stats
# Set a secret without leaking it into the shell history
|
# Mint a scoped API key for CI (the raw key is shown once)
# Promote a user to admin
# Audit what happened on a run
# Delete without a prompt, e.g. from a CI job
License
MIT License - see LICENSE for details.