mirror of
https://github.com/The-Low-Code-Foundation/OpenNoodl.git
synced 2026-03-08 01:53:30 +01:00
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
This commit is contained in:
284
dev-docs/tasks/phase-11-cloud-functions/README.md
Normal file
284
dev-docs/tasks/phase-11-cloud-functions/README.md
Normal file
@@ -0,0 +1,284 @@
|
||||
# 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 |
|
||||
Reference in New Issue
Block a user