Skip to content

ION Flow Documentation

Comprehensive developer documentation for the ION Flow workflow automation system


ION Flow is a modular workflow automation system built in Go that enables visual flow creation, execution, and real-time monitoring. This documentation provides complete technical reference for developers working with the ION Flow ecosystem.


ModuleDescriptionLink
Core EngineThe heart of flow execution - processes nodes, manages stateView Documentation
BackendFull-featured backend with WebSocket, authentication, multi-tenancyView Documentation
ServerREST microservice exposing core APIsView Documentation
PackagesReusable portable modules (channel, helpers)View Documentation
GuideDescription
Architecture OverviewSystem architecture, module dependencies, technology stack
Development GuideSetting up development environment
Testing GuideRunning and writing tests
Building GuideBuilding and compiling the project
Deployment GuideDeploying ION Flow

graph TB
subgraph Client [Client Applications]
WebApp[Web Application]
BunJS[Bun/JavaScript]
PHP[PHP Integration]
end
subgraph ION [ION Flow System]
Backend[Backend - WebSocket + REST]
Server[Server - REST Microservice]
Core[Core - Flow Engine]
Channel[Channel - Auth Package]
end
subgraph Storage [Data Storage]
PostgreSQL[(PostgreSQL)]
SQLite[(SQLite)]
end
WebApp --> Backend
BunJS --> Server
PHP --> Server
Backend --> Core
Backend --> Channel
Server --> Core
Backend --> PostgreSQL
Core --> SQLite

The heart of ION Flow - responsible for:

  • Flow execution and state management
  • Node processing and data transformation
  • Queue/Stack-based execution model
  • SQLite workspace persistence

Key APIs:

flow.LoadFlow(flowId, flow) // Initialize flow workspace
flow.RunNode(flowId, nodeId) // Start node execution
flow.PushNode(flowId, ots, ...) // Push results, continue flow
flow.ContinueNode(flowId) // Get next node from queue

Learn more about Core


The main ION Flow backend extending core with:

  • WebSocket-based real-time execution monitoring
  • JWT authentication and authorization
  • Multi-tenant data isolation
  • Scheduled flow execution (cron)
  • Git-based flow version control

Key Features:

  • Development and Live execution modes
  • Real-time progress streaming
  • Pause/Resume/Stop controls
  • Input waiting capabilities

Learn more about Backend


A lightweight REST microservice that exposes core flow APIs:

  • Used by external applications (Bun, PHP)
  • Stateless flow execution
  • Data store management

Endpoints:

POST /load - Load flow into workspace
POST /run - Run initial node
POST /continue - Continue to next node
POST /push - Push node results
POST /mapper - Execute mapper

Learn more about Server


Reusable, portable modules:

Authentication engine supporting:

  • OAuth 2.0 (Authorization Code, Client Credentials)
  • API Key authentication
  • Basic authentication
  • Token refresh handling

Generic utilities:

  • Configuration parsing
  • JSONC sanitization
  • Pointer helpers

Learn more about Packages


CategoryTechnologyPurpose
LanguageGo 1.24.3Primary development language
HTTP RouterGorilla MuxREST API routing
WebSocketGorilla WebSocketReal-time communication
ORMGORMDatabase abstraction
DatabasesPostgreSQL, SQLiteData persistence
Expressionexpr-lang/exprDynamic parameter evaluation
AuthJWTToken-based authentication
Schedulingrobfig/cronScheduled flow execution

This documentation follows:

  • IEEE 830-1998 - Software Requirements Specification
  • IEEE 26514-2010 - Systems and Software Engineering — User Documentation

Each section includes:

  1. Overview and purpose
  2. Technical specifications
  3. API reference with signatures
  4. Code examples
  5. Cross-references to related documentation

New Developers:

  1. Architecture Overview
  2. Development Guide
  3. Core Engine Basics

Backend Developers:

  1. Backend Architecture
  2. Board Engine
  3. Database Connections

Integration Developers:

  1. Server REST API
  2. Channel Authentication
  3. WebSocket Channels

Feature TypeLocationDocumentation
New node typecore/actions//docs/core/actions/
Backend featurebackend/ion//docs/backend/
REST endpointserver//docs/server/
Generic utilitypackages/helpers//docs/packages/helpers/
Auth patternpackages/channel//docs/packages/channel/
  • All comments in English
  • All documentation in English
  • Follow Go naming conventions
  • Write tests for all core actions
  • Check existing helpers before creating new ones

See Changelog for version history and release notes.