The Need for an Audit Trail
When Flowork is running completely autonomously—perhaps executing cron-based workflows overnight or utilizing Mother AI to scrape and write data—users need a way to understand what happened.
The History Tracking system provides a granular, easily readable audit trail.
What is Tracked?
The engine records almost everything modifying system state:
- Workflow Executions: When a DAG starts, how long each node takes, what the final generated output was, and if/why it crashed.
- Terminal Commands: Every command executed by an AI agent or a script via the runner, along with the
stdoutandstderroutput. - System Crashes: Critical
panic()events or unhandled Node.js exceptions caught by the self-healing kernel.
Local JSON Lines (JSONL) Storage
Instead of requiring a local database server like Postgres, Flowork uses JSONL format for logs.
In a JSONL file, each line is a completely valid, independent JSON object. This is ideal for logging because: 1. It is append-only (fast, no file rewriting needed). 2. If the application crashes halfway through writing a line, only that line is corrupt; the rest of the file remains easily parseable. 3. The UI can stream the file incrementally without loading a massive JSON array into memory.
User's can review these logs via the Flowork OS settings menu or extract them raw from FloworkData/history/.