Validate And Run Your First Workflow
Documentation for Validate And Run Your First Workflow.
Validate And Run Your First Workflow
This tutorial gets you from a fresh checkout to one validated workflow and one submitted job.
What You Will Do
By the end, you will have:
- validated a checked-in job bundle
- started Redis
- started the MirrorNeuron runtime
- submitted one workflow
- inspected job state
Before You Start
You need:
- macOS, Linux, or WSL2
- Python 3.10+
- Elixir/Erlang
- Docker
- the
mnCLI on your PATH
If those are not ready yet, follow Installation first.
Step 1: Validate A Bundle
From the workspace root:
mn blueprint validate mn-blueprints/message_routing_traceExpected output:
Job bundle at 'mn-blueprints/message_routing_trace' is valid.This checks the local manifest and input contract without submitting a runtime job.
Step 2: Start Redis
docker rm -f mirror-neuron-redis 2>/dev/null || true
docker run -d --name mirror-neuron-redis -p 6379:6379 redis:7
docker exec mirror-neuron-redis redis-cli pingExpected output:
PONGStep 3: Start The Runtime
mn runtime startExpected output:
MirrorNeuron services startedIf your local command prints a different success line, verify with:
mn node listExpected output includes:
{
"nodes": []
}or a non-empty nodes list when the core runtime is reachable.
Step 4: Run The Workflow
mn blueprint run message_routing_traceExpected output:
Job submitted successfullyThe CLI may also print live events and the job id. Keep the job id for inspection commands.
Step 5: Inspect Jobs
mn job listExpected output:
Job IDCheck a single job:
mn job status <job_id>Expected output includes:
{
"status": "completed"
}If the job is still running, wait a moment and run mn job status <job_id> again.
Step 6: Try A Python-Defined Blueprint
Run the checked-in Python SDK research pipeline:
mn blueprint run python_sdk_research_pipelineExpected output:
Job submitted successfullyFor Python bundle-generation details, see Python SDK.
Security Basics
Before running bigger or third-party workflows:
- Review
manifest.jsonandpayloads/. - Check whether a node uses
host_localor OpenShell. - Check
pass_envbefore secrets are exposed to workers. - Use dry-run options for email, Slack, or other external delivery flows.
- Treat live messages and model outputs as untrusted input.
Read Security Model before exposing a runtime to other users or machines.
Troubleshooting
mn: command not found
Install the CLI or activate the project virtual environment. Then verify:
which mn
mn --helpgRPC connection refused
The runtime is not reachable.
mn runtime start
mn node listRedis connection errors
Check:
docker exec mirror-neuron-redis redis-cli pingExpected output:
PONG