Add OrchestrateUI: Docker-based API automation with scheduling and webhooks #1

Merged
Copilot merged 5 commits from copilot/add-docker-automation-tasks into main 2025-10-27 12:05:02 -05:00
Copilot commented 2025-10-27 10:39:00 -05:00 (Migrated from github.com)

Implements a Docker-runnable tool for orchestrating RESTful API calls with cron-based scheduling, manual execution, and webhook notifications.

Architecture

Backend (backend/)

  • Express.js API server with in-memory task storage
  • node-cron for scheduled execution (e.g., */5 * * * *)
  • axios for HTTP request execution with configurable methods, headers, body
  • Webhook POST on task completion (success/failure)
  • Execution history tracking with duration/status metrics

Frontend (frontend/)

  • React SPA with task CRUD operations
  • Form-based task creation with cron expression support
  • One-click manual execution
  • Real-time execution history view with auto-refresh
  • Nginx reverse proxy in production build

Deployment (docker-compose.yml)

  • Multi-stage Docker builds for both services
  • Frontend on :80, backend on :3001
  • Bridge network for inter-service communication

API Endpoints

POST   /api/tasks           # Create task with schedule/webhook config
PUT    /api/tasks/:id       # Update task (reschedules if cron changed)
DELETE /api/tasks/:id       # Delete and unschedule
POST   /api/tasks/:id/execute  # Manual execution
GET    /api/history         # Paginated execution logs

Task Configuration

{
  "name": "Daily Report",
  "method": "POST",
  "url": "https://api.example.com/reports",
  "headers": {"Authorization": "Bearer token"},
  "body": "{\"type\": \"daily\"}",
  "schedule": "0 9 * * *",
  "webhookUrl": "https://hooks.slack.com/...",
  "enabled": true
}

UI Screenshots

Task Management
Tasks

Execution History
History

Task Creation
Form

Security Considerations

By design, allows arbitrary URL execution - intended for trusted environments. Production deployments should add:

  • Network-level URL filtering (firewall/allowlist)
  • Authentication layer
  • Database persistence vs in-memory storage

See README for deployment recommendations.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • jsonplaceholder.typicode.com
    • Triggering command: node server.js (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

Need to create a docker runnable program to run automation tasks for APIs. It should have a clean UI with a fast backend. This will be for RESTful APIs. Should have schedule functions, run on command functions, and Notifications through webhooks.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Implements a Docker-runnable tool for orchestrating RESTful API calls with cron-based scheduling, manual execution, and webhook notifications. ## Architecture **Backend** (`backend/`) - Express.js API server with in-memory task storage - node-cron for scheduled execution (e.g., `*/5 * * * *`) - axios for HTTP request execution with configurable methods, headers, body - Webhook POST on task completion (success/failure) - Execution history tracking with duration/status metrics **Frontend** (`frontend/`) - React SPA with task CRUD operations - Form-based task creation with cron expression support - One-click manual execution - Real-time execution history view with auto-refresh - Nginx reverse proxy in production build **Deployment** (`docker-compose.yml`) - Multi-stage Docker builds for both services - Frontend on :80, backend on :3001 - Bridge network for inter-service communication ## API Endpoints ``` POST /api/tasks # Create task with schedule/webhook config PUT /api/tasks/:id # Update task (reschedules if cron changed) DELETE /api/tasks/:id # Delete and unschedule POST /api/tasks/:id/execute # Manual execution GET /api/history # Paginated execution logs ``` ## Task Configuration ```json { "name": "Daily Report", "method": "POST", "url": "https://api.example.com/reports", "headers": {"Authorization": "Bearer token"}, "body": "{\"type\": \"daily\"}", "schedule": "0 9 * * *", "webhookUrl": "https://hooks.slack.com/...", "enabled": true } ``` ## UI Screenshots **Task Management** ![Tasks](https://github.com/user-attachments/assets/55c3d148-c927-4df2-95f7-22ac4a096a7c) **Execution History** ![History](https://github.com/user-attachments/assets/944cf769-4920-495f-81d2-da2e4f9bfea9) **Task Creation** ![Form](https://github.com/user-attachments/assets/074e2c51-1721-4686-a9d6-81d0a3e413b3) ## Security Considerations By design, allows arbitrary URL execution - intended for trusted environments. Production deployments should add: - Network-level URL filtering (firewall/allowlist) - Authentication layer - Database persistence vs in-memory storage See README for deployment recommendations. > [!WARNING] > > <details> > <summary>Firewall rules blocked me from connecting to one or more addresses (expand for details)</summary> > > #### I tried to connect to the following addresses, but was blocked by firewall rules: > > - `jsonplaceholder.typicode.com` > - Triggering command: `node server.js` (dns block) > > If you need me to access, download, or install something from one of these locations, you can either: > > - Configure [Actions setup steps](https://gh.io/copilot/actions-setup-steps) to set up my environment, which run before the firewall is enabled > - Add the appropriate URLs or hosts to the custom allowlist in this repository's [Copilot coding agent settings](https://github.com/SluberskiHomeLab/orchestrateui/settings/copilot/coding_agent) (admins only) > > </details> <!-- START COPILOT CODING AGENT SUFFIX --> <details> <summary>Original prompt</summary> > Need to create a docker runnable program to run automation tasks for APIs. It should have a clean UI with a fast backend. This will be for RESTful APIs. Should have schedule functions, run on command functions, and Notifications through webhooks. </details> <!-- START COPILOT CODING AGENT TIPS --> --- 💬 We'd love your input! Share your thoughts on Copilot coding agent in our [2 minute survey](https://gh.io/copilot-coding-agent-survey).
SluberskiHomeLab (Migrated from github.com) approved these changes 2025-10-27 12:04:51 -05:00
Sign in to join this conversation.
No description provided.