Files
OpenNoodl/dev-docs/tasks/phase-11-cloud-functions/README.md
Richard Osborne ddcb9cd02e feat: Phase 5 BYOB foundation + Phase 3 GitHub integration
Phase 5 - BYOB Backend (TASK-007A/B):
- LocalSQL Adapter with full CloudStore API compatibility
- QueryBuilder translates Parse-style queries to SQL
- SchemaManager with PostgreSQL/Supabase export
- LocalBackendServer with REST endpoints
- BackendManager with IPC handlers for Electron
- In-memory fallback when better-sqlite3 unavailable

Phase 3 - GitHub Panel (GIT-004):
- Issues tab with list/detail views
- Pull Requests tab with list/detail views
- GitHub API client with OAuth support
- Repository info hook integration

Phase 3 - Editor UX Bugfixes (TASK-013):
- Legacy runtime detection banners
- Read-only enforcement for legacy projects
- Code editor modal close improvements
- Property panel stuck state fix
- Blockly node deletion and UI polish

Phase 11 - Cloud Functions Planning:
- Architecture documentation for workflow automation
- Execution history storage schema design
- Canvas overlay concept for debugging

Docs: Updated LEARNINGS.md and COMMON-ISSUES.md
2026-01-15 17:37:15 +01:00

285 lines
11 KiB
Markdown

# Phase 11: Cloud Functions & Workflow Automation
**Status:** Planning
**Dependencies:** Phase 5 TASK-007 (Integrated Local Backend) - MUST BE COMPLETE
**Total Estimated Effort:** 10-12 weeks
**Strategic Goal:** Transform OpenNoodl into a viable workflow automation platform
---
## Executive Summary
Phase 11 extends the local backend infrastructure from Phase 5 TASK-007 to add workflow automation features that enable OpenNoodl to compete with tools like n8n. This phase focuses on **unique features not covered elsewhere** - execution history, cloud deployment, monitoring, advanced workflow nodes, and Python/AI runtime support.
> ⚠️ **Important:** This phase assumes Phase 5 TASK-007 is complete. That phase provides the foundational SQLite database, Express backend server, CloudRunner adaptation, and basic trigger nodes (Schedule, DB Change, Webhook).
---
## What This Phase Delivers
### 1. Advanced Workflow Nodes
Visual logic nodes that make complex workflows possible without code:
- IF/ELSE conditions with visual expression builder
- Switch nodes (multi-branch routing)
- For Each loops (array iteration)
- Merge/Split nodes (parallel execution)
- Error handling (try/catch, retry logic)
- Wait/Delay nodes
### 2. Execution History & Debugging
Complete visibility into workflow execution:
- Full execution log for every workflow run
- Input/output data captured for each node
- Timeline visualization
- Canvas overlay showing execution data
- Search and filter execution history
### 3. Cloud Deployment
One-click deployment to production:
- Docker container generation
- Fly.io, Railway, Render integrations
- Environment variable management
- SSL/domain configuration
- Rollback capability
### 4. Monitoring & Observability
Production-ready monitoring:
- Workflow performance metrics
- Error tracking and alerting
- Real-time execution feed
- Email/webhook notifications
### 5. Python Runtime & AI Nodes (Bonus)
AI-first workflow capabilities:
- Dual JavaScript/Python runtime
- Claude/OpenAI completion nodes
- LangGraph agent nodes
- Vector store integrations
---
## Phase Structure
| Series | Name | Duration | Priority |
| ------ | ----------------------------- | -------- | ------------ |
| **1** | Advanced Workflow Nodes | 2 weeks | High |
| **2** | Execution History & Debugging | 3 weeks | **Critical** |
| **3** | Cloud Deployment | 3 weeks | High |
| **4** | Monitoring & Observability | 2 weeks | Medium |
| **5** | Python Runtime & AI Nodes | 4 weeks | Medium |
**Recommended Order:** Series 1 → 2 → 3 → 4 → 5
Series 2 (Execution History) is the highest priority as it enables debugging of workflows - critical for any production use.
---
## Recommended Task Execution Order
> ⚠️ **Critical:** To avoid rework, follow this sequencing.
### Step 1: Phase 5 TASK-007 (Foundation) — DO FIRST
| Sub-task | Name | Hours | Phase 11 Needs? |
| --------- | ------------------------------ | ------ | -------------------------------------- |
| TASK-007A | LocalSQL Adapter (SQLite) | 16-20h | **YES** - CF11-004 reuses patterns |
| TASK-007B | Backend Server (Express) | 12-16h | **YES** - Execution APIs live here |
| TASK-007C | Workflow Runtime (CloudRunner) | 12-16h | **YES** - All workflow nodes need this |
| TASK-007D | Launcher Integration | 8-10h | No - Can defer |
| TASK-007E | Migration/Export | 8-10h | No - Can defer |
| TASK-007F | Standalone Deployment | 8-10h | No - Can defer |
**Start with TASK-007A/B/C only** (~45h). This creates the foundation without doing unnecessary work.
### Step 2: Phase 11 Series 1 & 2 (Core Workflow Features)
Once TASK-007A/B/C are complete:
1. **CF11-001 → CF11-003** (Advanced Nodes) - 2 weeks
2. **CF11-004 → CF11-007** (Execution History) - 3 weeks ⭐ PRIORITY
### Step 3: Continue Either Phase
At this point, you can:
- Continue Phase 11 (Series 3-5: Deployment, Monitoring, AI)
- Return to Phase 5 (TASK-007D/E/F: Launcher, Migration, Deployment)
### Why This Order?
If CF11-004 (Execution Storage) is built **before** TASK-007A (SQLite Adapter):
- Two independent SQLite implementations would be created
- Later refactoring needed to harmonize patterns
- **~4-8 hours of preventable rework**
The CloudRunner (TASK-007C) must exist before any workflow nodes can be tested.
---
## Dependency Graph
```
Phase 5 TASK-007 (Local Backend)
├── SQLite Adapter ✓
├── Backend Server ✓
├── CloudRunner ✓
├── Basic Triggers ✓
┌─────────────────────────────────────────────────────┐
│ PHASE 11 │
├─────────────────────────────────────────────────────┤
│ │
│ Series 1: Advanced Nodes ─┬─► Series 2: Exec History
│ │ │
│ │ ▼
│ └─► Series 3: Deployment
│ │
│ ▼
│ Series 4: Monitoring
│ │
│ ▼
│ Series 5: Python/AI
│ │
└─────────────────────────────────────────────────────┘
```
---
## Task List
### Series 1: Advanced Workflow Nodes (2 weeks)
| Task | Name | Effort | Status |
| -------- | --------------------------------------- | ------ | ----------- |
| CF11-001 | Logic Nodes (IF/Switch/ForEach/Merge) | 12-16h | Not Started |
| CF11-002 | Error Handling Nodes (Try/Catch, Retry) | 8-10h | Not Started |
| CF11-003 | Wait/Delay Nodes | 4-6h | Not Started |
### Series 2: Execution History (3 weeks) ⭐ PRIORITY
| Task | Name | Effort | Status |
| -------- | ---------------------------- | ------ | ----------- |
| CF11-004 | Execution Storage Schema | 8-10h | Not Started |
| CF11-005 | Execution Logger Integration | 8-10h | Not Started |
| CF11-006 | Execution History Panel UI | 12-16h | Not Started |
| CF11-007 | Canvas Execution Overlay | 8-10h | Not Started |
### Series 3: Cloud Deployment (3 weeks)
| Task | Name | Effort | Status |
| -------- | --------------------------- | ------ | ----------- |
| CF11-008 | Docker Container Builder | 10-12h | Not Started |
| CF11-009 | Fly.io Deployment Provider | 8-10h | Not Started |
| CF11-010 | Railway Deployment Provider | 6-8h | Not Started |
| CF11-011 | Cloud Deploy Panel UI | 10-12h | Not Started |
### Series 4: Monitoring & Observability (2 weeks)
| Task | Name | Effort | Status |
| -------- | ------------------------- | ------ | ----------- |
| CF11-012 | Metrics Collection System | 8-10h | Not Started |
| CF11-013 | Monitoring Dashboard UI | 12-16h | Not Started |
| CF11-014 | Alerting System | 6-8h | Not Started |
### Series 5: Python Runtime & AI Nodes (4 weeks)
| Task | Name | Effort | Status |
| -------- | --------------------- | ------ | ----------- |
| CF11-015 | Python Runtime Bridge | 12-16h | Not Started |
| CF11-016 | Python Core Nodes | 10-12h | Not Started |
| CF11-017 | Claude/OpenAI Nodes | 10-12h | Not Started |
| CF11-018 | LangGraph Agent Node | 12-16h | Not Started |
| CF11-019 | Language Toggle UI | 6-8h | Not Started |
---
## What's NOT in This Phase
### Handled by Phase 5 TASK-007
- ❌ SQLite database adapter (TASK-007A)
- ❌ Express backend server (TASK-007B)
- ❌ CloudRunner adaptation (TASK-007C)
- ❌ Basic trigger nodes (Schedule, DB Change, Webhook)
- ❌ Schema management
- ❌ Launcher integration
### Deferred to Future Phase
- ❌ External integrations (Slack, SendGrid, Stripe, etc.) - See `FUTURE-INTEGRATIONS.md`
- ❌ Workflow marketplace/templates
- ❌ Multi-user collaboration
- ❌ Workflow versioning/Git integration
- ❌ Queue/job system
---
## Success Criteria
### Functional
- [ ] Can create IF/ELSE workflows with visual expression builder
- [ ] Can view complete execution history with node-by-node data
- [ ] Can debug failed workflows by pinning execution to canvas
- [ ] Can deploy workflows to Fly.io with one click
- [ ] Can monitor workflow performance in real-time
- [ ] Can create Python workflows for AI use cases
- [ ] Can use Claude/OpenAI APIs in visual workflows
### User Experience
- [ ] Creating a conditional workflow takes < 3 minutes
- [ ] Debugging failed workflows takes < 2 minutes
- [ ] Deploying to production takes < 5 minutes
- [ ] Setting up AI chat assistant takes < 10 minutes
### Technical
- [ ] Workflow execution overhead < 50ms
- [ ] Execution history queries < 100ms
- [ ] Real-time monitoring updates < 1 second latency
- [ ] Can handle 1000 concurrent workflow executions
---
## Risk Assessment
| Risk | Impact | Mitigation |
| -------------------------------- | ------------ | ------------------------------------------------- |
| Phase 5 TASK-007 not complete | **BLOCKING** | Do not start Phase 11 until TASK-007 is done |
| Python runtime complexity | High | Start with JS-only, add Python as separate series |
| Deployment platform variability | Medium | Focus on Fly.io first, add others incrementally |
| Execution history storage growth | Medium | Implement retention policies early |
---
## References
- [Phase 5 TASK-007: Integrated Local Backend](../phase-5-multi-target-deployment/01-byob-backend/TASK-007-integrated-backend/README.md)
- [Cloud Functions Revival Plan (Original)](./cloud-functions-revival-plan.md)
- [Native BaaS Integrations](../../future-projects/NATIVE-BAAS-INTEGRATIONS.md)
- [Phase 10: AI-Powered Development](../phase-10-ai-powered-development/README.md)
---
## Changelog
| Date | Change |
| ---------- | ---------------------------------------------------- |
| 2026-01-15 | Restructured to remove overlap with Phase 5 TASK-007 |
| 2026-01-15 | Prioritized Execution History over Cloud Deployment |
| 2026-01-15 | Moved integrations to future work |