FlowASM has been successfully refactored from separate app folders into a unified n8n-style mainframe workflow platform with Node.js only.
FlowASM/
├── src/
│ ├── adapters/ ← Separate adapters
│ ├── core/ ← Basic flow engine
│ └── server.js ← Simple server
├── public/ ← Basic UI
└── workflows/ ← Demo workflows
FlowASM/
├── core/ ← Flow engine, runner, API
│ ├── runner.js
│ ├── flow-engine.js
│ └── api.js
├── engines/
│ └── asm-sandbox/ ← Embedded IPLLab engine
│ ├── adapter.js
│ └── engine.js
├── connectors/ ← Unified connector interface
│ ├── tk5/
│ ├── zos/
│ └── zeroframe/
├── ui/ ← Enhanced visual builder
│ ├── index.html
│ ├── app.js
│ └── styles.css
├── workflows/ ← 3 demo flows
│ ├── payroll-demo.json
│ ├── tk5-demo.json
│ └── zos-integration.json
├── docs/ ← Complete documentation
│ ├── README_DEMO.md
│ ├── CREDENTIALS_TEMPLATE.md
│ └── SUBMISSION_REPORT.md
├── server.js ← Main entry point
├── cli-demo.js ← CLI demo runner
└── package.json ← Node.js only
- Before: Separate adapters with inconsistent interfaces
- After: Unified connector interface with standard
/executeendpoint
- Before: Stubbed IPLLab integration
- After: Real embedded ASM engine for deterministic demos
- Before: Only IPLLab and ZeroFrame adapters
- After: 4 connectors (asm-sandbox, tk5, zos, zeroframe) with auto-fallback
- Before: Basic workflow viewer
- After: Full visual builder with inspector, live logs, import/export
- Before: Basic README
- After: Demo guide, credentials template, submission report
- Before: No credential handling
- After: Environment variables, .gitignore, security documentation
| Metric | Before | After | Change |
|---|---|---|---|
| Code Files | 8 | 20 | +150% |
| Lines of Code | ~800 | ~2,500 | +212% |
| Node Types | 6 | 12 | +100% |
| Connectors | 2 | 4 | +100% |
| Demo Workflows | 1 | 3 | +200% |
| Documentation | 1 file | 4 files | +300% |
- ✅ Repo restructure - Clean separation of concerns
- ✅ Sandboxed engine - Real IPLLab port in Node.js
- ✅ Connectors - Uniform interface, auto-fallback
- ✅ n8n-style wiring - Template variables, node registry
- ✅ UI integration - Visual builder with live execution
- ✅ Demo flows - 3 workflows with sandbox fallback
- ✅ Documentation - Complete guides and security docs
- ✅ Stubbing - Deterministic stubs, clearly marked
- ✅ Node.js only - No Python anywhere
- ✅ No credentials - Environment variables only
cd FlowASM
npm install
npm run demoOutput:
✅ Demo completed successfully!
Summary: 5/5 nodes succeeded
Total time: 2ms
npm start
# Open http://localhost:3000export TK5_ENDPOINT=http://localhost:8038
npm startexport ZOS_ENDPOINT=https://zos.example.com
export ZOS_USERNAME=user
export ZOS_PASSWORD=pass
npm start| Connector | Status | Fallback | Setup |
|---|---|---|---|
| asm-sandbox | ✓ Real | N/A | None required |
| tk5 | Real/Stub | Auto | Set TK5_ENDPOINT |
| zos | Real/Stub | Auto | Set ZOS_* vars |
| zeroframe | Real/Stub | Auto | Set ZEROFRAME_ENDPOINT |
- README.md - Main project overview
- docs/README_DEMO.md - 60-90 second demo script
- docs/CREDENTIALS_TEMPLATE.md - Security and setup guide
- docs/SUBMISSION_REPORT.md - Complete requirements report
- REFACTOR_COMPLETE.md - This file
Theme: Combining separate systems into a unified whole
FlowASM demonstrates this by unifying:
- IPLLab (assembly engine)
- ZeroFrame (3270 automation)
- TK5/Hercules (emulator)
- z/OS (real mainframe)
Into a single n8n-style visual workflow platform.
- ❌
src/folder (replaced bycore/andengines/) - ❌
public/folder (replaced byui/) - ❌ Old workflow format (replaced by new JSON format)
- ✅
core/runner.js- Workflow orchestrator - ✅
core/flow-engine.js- Execution engine - ✅
core/api.js- REST API routes - ✅
engines/asm-sandbox/- Embedded ASM engine - ✅
connectors/tk5/- TK5 connector - ✅
connectors/zos/- z/OS connector - ✅
connectors/zeroframe/- 3270 connector - ✅
ui/- Enhanced visual builder - ✅
docs/- Complete documentation - ✅
cli-demo.js- CLI demo runner - ✅
.gitignore- Security (credentials, .env)
- Old workflow format not compatible (easy to migrate)
- Old adapter interface replaced by connector interface
- Server now serves from
ui/instead ofpublic/
- Try the demo -
npm run demo - Explore UI -
npm start→ http://localhost:3000 - Configure connectors - See docs/CREDENTIALS_TEMPLATE.md
- Build workflows - Create custom automation
- Integrate systems - Connect TK5, z/OS, 3270
- ✅ 100% Node.js - No Python dependencies
- ✅ Sandbox demo works - No external setup required
- ✅ Visual builder functional - Load, edit, run workflows
- ✅ All connectors implemented - Real or stubbed with fallback
- ✅ Documentation complete - Demo guide, security, API reference
- ✅ Security enforced - No credentials in repo
- ✅ Deterministic outputs - Stubbed connectors return predictable data
Demo not working?
- Check Node.js version:
node --version(need 18+) - Reinstall dependencies:
npm install - Run demo:
npm run demo - Check logs for errors
Connector stubbed?
- Check environment variables
- Verify endpoint availability
- See docs/CREDENTIALS_TEMPLATE.md
UI not loading?
- Check port 3000 is free
- Try different port:
PORT=3001 npm start - Check browser console for errors
Refactor completed: December 3, 2024
Status: ✅ Ready for demo
Theme: Kiroween 2024 - Combining separate systems into a unified whole 🎃