Thanks to visit codestin.com
Credit goes to github.com

Skip to content

ConflixIQ Studio is a visual workflow designer and frontend for Netflix Conductor. It abstracts the complexity of microservice orchestration, enabling teams to design, compose, and manage sophisticated workflows through an intuitive, visual interface.

License

Notifications You must be signed in to change notification settings

amishra213/ConflixIQStudio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ConflixIQ Studio

A comprehensive visual workflow designer for Netflix and OSS Conductor (https://github.com/conductor-oss/conductor) - build, edit, and manage Conductor workflows with an intuitive drag-and-drop interface.

Node.js React TypeScript License

πŸš€ Features

  • Visual Workflow Designer - Drag-and-drop workflow creation with React Flow
  • Task Library - Full support for all Conductor task types (HTTP, Kafka, Sub-Workflow, etc.)
  • Operator Support - Fork/Join, Switch, Do-While, Dynamic Fork, and more
  • Real-time Validation - Validate workflows before deployment
  • Execution Monitoring - View workflow executions and task details
  • Dark Theme - Modern dark UI optimized for productivity
  • Portable Deployment - Windows EXE or Docker container

πŸ“¦ Installation & Quick Start

Option 1: Docker (Recommended for All Platforms)

# Pull from GitHub Container Registry
docker pull ghcr.io/amishra213/ConflixIQStudio:latest

# If image is already imported run the container
docker run -d -p 4000:4000 --name conflixiq-studio conflixiq-studio:latest




# Access at http://localhost:4000

Option 2: Windows Executable (Portable)

  1. Download the latest .exe from Releases
  2. Extract the ZIP file
  3. Double-click conflixiq-studio-build-XXX.bat or run the .exe directly
  4. App opens automatically in your browser at http://localhost:4000

No installation required! Everything is self-contained and portable.

Option 3: From Source

# Clone the repository
git clone https://github.com/amishra213/ConflixIQStudio.git
cd ConflixIQStudio

# Install dependencies
npm install

# Run development server (frontend + backend)
npm run dev:full

# Or run separately:
npm run dev        # Frontend only (http://localhost:5173)
npm run server:dev # Backend only (http://localhost:4000)

πŸ› οΈ Building from Source

Prerequisites

  • Node.js: 20.0.0 or higher
  • npm: 8.0.0 or higher
  • Optional: Docker or Rancher Desktop for container builds

Build Commands

# Build web UI
npm run build

# Build Windows EXE (portable, no installation)
npm run sea:build:windows

# Build Docker image
npm run docker-build

# Build all (Windows EXE + Docker)
npm run sea:build

See Build Guide for comprehensive build instructions and troubleshooting.


🐳 Docker Deployment

Using Docker CLI

# Build image
docker build -t conflixiq-studio:latest .

# Run container
docker run -d \
  --name conflixiq-studio \
  -p 4000:4000 \
  -v conductor-logs:/app/logs \
  -v conductor-filestore:/app/.filestore \
  -e CONDUCTOR_API=http://localhost:8080 \
  conflixiq-studio:latest

# View logs
docker logs -f conflixiq-studio

# Stop container
docker stop conflixiq-studio

# Remove container
docker rm conflixiq-studio

Using Docker Compose

# Start services
docker-compose up -d

# View logs
docker-compose logs -f

# Stop services
docker-compose down

Using Rancher Desktop

Rancher Desktop supports both nerdctl and docker CLI:

# Using nerdctl (Rancher default)
nerdctl build -t conflixiq-studio:latest .
nerdctl run -d --name conflixiq-studio -p 4000:4000 conflixiq-studio:latest

# Or using docker CLI
docker build -t conflixiq-studio:latest .
docker run -d --name conflixiq-studio -p 4000:4000 conflixiq-studio:latest

Rancher Desktop Tips:

  • Enable WSL2 backend for better performance (Windows)
  • Allocate sufficient resources (4GB RAM, 2 CPUs recommended)
  • Use Docker mode instead of Kubernetes for simpler deployment

πŸ”§ Configuration

Environment Variables

Variable Default Description
PORT 4000 HTTP server port
CONDUCTOR_API http://localhost:8080 Conductor server URL
NODE_ENV production Environment mode
LOG_LEVEL info Logging level (debug, info, warn, error)

Connecting to Conductor Server

Docker:

docker run -d -p 4000:4000 \
  -e CONDUCTOR_API=https://conductor.example.com \
  conflixiq-studio:latest

Windows EXE:

set CONDUCTOR_API=https://conductor.example.com
conflixiq-studio.exe

Development: Create a .env file in the project root:

CONDUCTOR_API=http://localhost:8080
PORT=4000
LOG_LEVEL=info

Port Configuration

Change the default port (4000) if needed:

# Docker
docker run -d -p 5000:5000 -e PORT=5000 conflixiq-studio:latest

# Windows
set PORT=5000
conflixiq-studio.exe

πŸ“‚ Project Structure

ConflixIQStudio/
β”œβ”€β”€ src/                          # React frontend source
β”‚   β”œβ”€β”€ components/               # UI components
β”‚   β”‚   β”œβ”€β”€ modals/               # Task/operator modals
β”‚   β”‚   β”œβ”€β”€ workflow/             # Workflow designer components
β”‚   β”‚   └── ui/                   # Reusable UI components
β”‚   β”œβ”€β”€ pages/                    # Page components
β”‚   β”‚   β”œβ”€β”€ WorkflowDesigner.tsx  # Main workflow editor
β”‚   β”‚   β”œβ”€β”€ Executions.tsx        # Workflow execution list
β”‚   β”‚   └── Settings.tsx          # App settings
β”‚   β”œβ”€β”€ stores/                   # Zustand state management
β”‚   β”œβ”€β”€ hooks/                    # Custom React hooks
β”‚   β”œβ”€β”€ utils/                    # Utility functions
β”‚   └── types/                    # TypeScript type definitions
β”œβ”€β”€ scripts/                      # Build scripts
β”‚   └── sea-builder.ts            # Node.js SEA builder
β”œβ”€β”€ index.js                      # Backend server (Express + GraphQL)
β”œβ”€β”€ Dockerfile                    # Docker build configuration
β”œβ”€β”€ docker-compose.yml            # Docker Compose configuration
└── package.json                  # npm dependencies and scripts

🚧 Troubleshooting

Windows EXE Won't Start

  1. Windows Defender blocking:

    • Windows Security β†’ Virus & threat protection
    • Add exception for conflixiq-studio.exe
  2. Port already in use:

    # Check what's using port 4000
    netstat -ano | findstr :4000
    
    # Kill the process (replace PID)
    taskkill /PID [PID] /F
    
    # Or use a different port
    set PORT=5000
    conflixiq-studio.exe
  3. Missing files:

    • Ensure all files from the ZIP are extracted
    • Don't move the EXE outside its folder

Docker Container Won't Start

  1. Check container logs:

    docker logs conflixiq-studio
  2. Port conflict:

    # Use a different port
    docker run -d -p 5000:5000 -e PORT=5000 conflixiq-studio:latest
  3. Image not found:

    # List images
    docker images | grep conductor
    
    # Pull or build the image
    docker pull ghcr.io/amishra213/ConflixIQStudio:latest

Build Fails with EBUSY Error

This happens on Windows when files are locked:

# Option 1: Manual cleanup (PowerShell)
Remove-Item -Path ".\.build" -Recurse -Force -ErrorAction SilentlyContinue
npm run sea:build

# Option 2: Run as Administrator
# Right-click PowerShell β†’ Run as Administrator
npm run sea:build

# Option 3: Wait and retry
timeout /t 5 /nobreak
npm run sea:build

Can't Connect to Conductor Server

This is expected if you don't have a Conductor server running. The app works offline with reduced functionality.

To connect to a Conductor server:

# Update environment variable
docker run -d -p 4000:4000 -e CONDUCTOR_API=http://your-conductor-host:8080 conflixiq-studio:latest

πŸ“Š Performance

  • Startup Time: < 1 second
  • Memory Usage: 30-50 MB
  • File Size: 60-80 MB (Windows EXE)
  • Docker Image: ~200 MB

🧰 Development

Quick Start for Developers

Prerequisites

  • Node.js: 20+ installed
  • npm: 8+ installed

Install Dependencies

npm install

Development Mode

# Run frontend and backend together (Recommended)
npm run dev:full

# Or run separately:
npm run dev        # Frontend only (http://localhost:5173)
npm run server:dev # Backend only (http://localhost:4000)

Production Build

# Build web UI
npm run build

# Build Windows EXE (portable, no installation needed)
npm run sea:build:windows

# Build Docker image
npm run docker-build

Common Development Commands

Command Description
npm run dev Start frontend dev server
npm run dev:full Start frontend + backend
npm run build Build production web UI
npm run sea:build:windows Build Windows EXE
npm run docker-build Build Docker image + TAR
npm run format Format code with Prettier
npm run lint Run ESLint
npm run type-check TypeScript type checking

πŸ“Š Logging Framework

ConflixIQ Studio includes a comprehensive, production-grade logging framework with multiple log levels, automatic file rotation, and retention policies.

Quick Start

# Set log level (DEBUG, INFO, WARN, ERROR)
set LOG_LEVEL=DEBUG
npm run server:dev

# View logs in real-time
tail -f logs/conflixiq-studio-2025-12-04.log

# Test the logging framework
node test-logging.js DEBUG

Log Levels

Level Severity Use Case Example
DEBUG 0 Development & troubleshooting "Fetching task definitions from..."
INFO 1 Normal operations "βœ“ Configuration updated"
WARN 2 Warnings & issues "Cache size approaching limit"
ERROR 3 Failures & errors "Failed to connect to Conductor"

Features

  • βœ… Color-Coded Output: Cyan (DEBUG), Green (INFO), Yellow (WARN), Red (ERROR)
  • βœ… Automatic File Rotation: Daily timestamps + size-based rotation (10MB default)
  • βœ… Log Retention: Automatic cleanup (7 days default, configurable)
  • βœ… Dual Output: Console (for viewing) + File (for persistence)
  • βœ… Async I/O: Non-blocking file writes with sync fallback
  • βœ… 6 Environment Variables: Full configuration control
  • βœ… Zero Overhead: < 0.1% CPU, ~2MB memory

Logging Environment Variables

Variable Default Description
LOG_LEVEL INFO Minimum log level (DEBUG/INFO/WARN/ERROR)
LOGS_PATH ./logs Log file directory
LOG_CONSOLE true Enable console output
LOG_FILE true Enable file output
LOG_MAX_SIZE 10485760 Max file size before rotation (bytes)
LOG_RETENTION 7 Days to retain logs

Logging Configuration Examples

Windows Command Prompt:

set LOG_LEVEL=DEBUG
npm run server:dev

Windows PowerShell:

$env:LOG_LEVEL = "DEBUG"
npm run server:dev

Docker:

docker run -d -p 4000:4000 -e LOG_LEVEL=DEBUG conflixiq-studio:latest

Custom Log Directory:

set LOGS_PATH=C:\AppLogs\ConflixIQ
npm run server:dev

Log Output Examples

Console (with color coding):

2025-12-04T10:30:15.123Z [INFO ] πŸš€ ConflixIQ Studio Server Starting
2025-12-04T10:30:15.200Z [INFO ] βœ“ GraphQL proxy ready at http://localhost:4000/graphql
2025-12-04T10:30:16.456Z [DEBUG] Fetching task definitions from http://localhost:8080
2025-12-04T10:30:16.789Z [DEBUG] βœ“ Successfully fetched 15 task definitions

File (logs/conflixiq-studio-YYYY-MM-DD.log):

  • Daily log rotation with timestamps
  • Size-based rotation (10MB default)
  • Automatic retention (7 days default)
  • Async file writing for performance

Viewing Logs

# View current day's logs
cat logs/conflixiq-studio-2025-12-04.log

# Follow logs in real-time (Windows PowerShell)
Get-Content logs/conflixiq-studio-2025-12-04.log -Wait

# Follow logs in real-time (Linux/Mac)
tail -f logs/conflixiq-studio-2025-12-04.log

# Search for errors
grep ERROR logs/conflixiq-studio-*.log

Logging Implementation Details

Core Components

  1. server-logger.js - Core logging framework

    • 4 log levels with severity filtering
    • Color-coded console output (ANSI codes)
    • Async file I/O with sync fallback
    • Daily and size-based rotation
    • Log retention policies
    • Statistics/monitoring API
  2. Integrated Endpoints (20+ endpoints)

    • Server startup with configuration
    • REST endpoints (/api/config, /api/health, /api/metadata/*)
    • GraphQL resolvers (workflows, tasks, executions)
    • File operations (/api/filestore/*)
    • Error handlers with context
  3. Testing

    • Comprehensive test suite (test-logging.js)
    • All log levels verified
    • File output validation
    • Console color coding confirmed
    • Filtering tests passed

Logger Architecture

Logger Methods:

import { serverLogger } from './server-logger.js';

serverLogger.debug('Detailed operational info');
serverLogger.info('Significant events');
serverLogger.warn('Warning conditions');
serverLogger.error('Error conditions');

// Runtime configuration
serverLogger.setLevel('DEBUG');
const stats = serverLogger.getStats();

Log File Structure:

logs/
β”œβ”€β”€ conflixiq-studio-2025-12-04.log   # Today's logs
β”œβ”€β”€ conflixiq-studio-2025-12-03.log   # Yesterday
└── conflixiq-studio-2025-12-02.log   # Previous days

Logging Performance

Metric Value Status
CPU Overhead < 0.1% βœ… Negligible
Memory Usage ~2 MB βœ… Minimal
Startup Delay < 10 ms βœ… Imperceptible
File I/O Async βœ… Non-blocking
Disk Usage ~10 MB/day at INFO βœ… Reasonable

Logging Troubleshooting

Not seeing DEBUG messages?

set LOG_LEVEL=DEBUG
# Default is INFO, which hides DEBUG

Logs too verbose?

set LOG_LEVEL=WARN
# Only shows WARN and ERROR

Where are my logs?

logs/conflixiq-studio-YYYY-MM-DD.log

Custom log directory?

set LOGS_PATH=C:\MyLogs

Version: 1.0.0
Node.js Requirement: 20.0.0+
Last Updated: December 4, 2025

About

ConflixIQ Studio is a visual workflow designer and frontend for Netflix Conductor. It abstracts the complexity of microservice orchestration, enabling teams to design, compose, and manage sophisticated workflows through an intuitive, visual interface.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published