{"id":37958543,"url":"https://github.com/ankur-paan/ekuiper-manager","last_synced_at":"2026-01-26T16:01:05.064Z","repository":{"id":332852871,"uuid":"1135242158","full_name":"ankur-paan/ekuiper-manager","owner":"ankur-paan","description":"Open-source eKuiper Manager UI - The first community-driven web interface for LF Edge eKuiper","archived":false,"fork":false,"pushed_at":"2026-01-16T23:39:06.000Z","size":722,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-17T04:37:03.465Z","etag":null,"topics":["edge-computing","ekuiper","iiot","iot","manager-ui","mqtt","stream-processing"],"latest_commit_sha":null,"homepage":"https://ankur-paan.github.io/ekuiper-manager/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ankur-paan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"ankur.paan","thanks_dev":null,"custom":null}},"created_at":"2026-01-15T20:45:24.000Z","updated_at":"2026-01-16T22:59:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ankur-paan/ekuiper-manager","commit_stats":null,"previous_names":["ankur-paan/ekuiper-manager"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ankur-paan/ekuiper-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ankur-paan%2Fekuiper-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ankur-paan%2Fekuiper-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ankur-paan%2Fekuiper-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ankur-paan%2Fekuiper-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ankur-paan","download_url":"https://codeload.github.com/ankur-paan/ekuiper-manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ankur-paan%2Fekuiper-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28782084,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T13:55:28.044Z","status":"ssl_error","status_checked_at":"2026-01-26T13:55:26.068Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["edge-computing","ekuiper","iiot","iot","manager-ui","mqtt","stream-processing"],"created_at":"2026-01-16T18:02:08.119Z","updated_at":"2026-01-26T16:01:05.017Z","avatar_url":"https://github.com/ankur-paan.png","language":"TypeScript","funding_links":["https://buymeacoffee.com/ankur.paan"],"categories":[],"sub_categories":[],"readme":"# eKuiper Manager\n\n[![Build Status](https://github.com/ankur-paan/ekuiper-manager/actions/workflows/ci.yml/badge.svg)](https://github.com/ankur-paan/ekuiper-manager/actions/workflows/ci.yml)\n[![License: IOSL](https://img.shields.io/badge/License-IDACS%20Open%20Source-green.svg)](./LICENSE)\n[![Next.js](https://img.shields.io/badge/Next.js-14-black)](https://nextjs.org/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.3-blue)](https://www.typescriptlang.org/)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)\n[![Live Demo](https://img.shields.io/badge/Live-API%20Docs-orange)](https://ankur-paan.github.io/ekuiper-manager/)\n[![AI Powered](https://img.shields.io/badge/AI-Powered-purple)](https://openrouter.ai)\n\n\u003e **🚀 The First Open-Source Web UI \u0026 Manager for [LF Edge eKuiper](https://ekuiper.org/) - Because the Community Deserves Better**\n\nAn open-source, community-driven web interface and management platform for eKuiper - the lightweight IoT data analytics and stream processing engine. Built because the existing closed-source solution is buggy and the community deserves a reliable, open alternative.\n\n**Developed \u0026 Maintained by [I-Dacs Labs](https://i-dacs.com)**\n\n📧 Contact: measure@i-dacs.com | 🌐 Website: [i-dacs.com](https://i-dacs.com) | 💼 [LinkedIn](https://www.linkedin.com/company/110770924)\n\n---\n\n## 🎯 Why This Project?\n\n**There is currently no fully open-source eKuiper management UI.** EMQ's proprietary eKuiper Manager is:\n- Closed source\n- Reportedly buggy and unreliable\n- Not community-extensible\n\nThis project aims to fill that gap with a **completely open-source, community-driven solution**.\n\n---\n\n## 📋 Feature Status\n\n### ✅ Fully Built \u0026 Working\n\n| Feature | Description |\n|---------|-------------|\n| **Swagger API Playground** | Complete interactive API documentation with live \"Try It Out\" functionality. Full OpenAPI 3.0 spec with 70+ endpoints. |\n| **Rule Tracing \u0026 Debugging** | Real-time data flow tracing with span hierarchy and detailed message attributes. |\n| **Rule Topology** | Visual graph representation of the data flow from sources through operators to sinks. |\n| **Query Plan (Explain)** | Visualized execution plans and performance hints for eKuiper SQL queries. |\n| **AI Assistant** | Conversational agent, Rule/Stream generators, Analysis tools. (New in v1.2.0) |\n| **Server Persistence** | Browser-based (Default) or SQLite (Experimental) storage for server configs. |\n\n### 🔶 Partially Built (Functional but Incomplete)\n\n| Feature | Status | Notes |\n|---------|--------|-------|\n| **Query Designer** | 30% | Visual builder for shop floor users. Node-based editor in progress. |\n| **Rule Management** | 90% | List, start, stop, tracing, topology, and explain working. Edit with SQL working. Create with UI logic in progress. |\n| **Dashboard Overview** | 70% | System info display, CPU/memory/uptime monitoring. Needs real-time refresh polish. |\n| **Rule Metrics** | 70% | Basic metrics and status display. Advanced historical charts pending. |\n| **eKuiper Health Check** | 80% | Ping and system info working. Connection status indicators need work. |\n| **Action/Sink Configuration** | 40% | Basic MQTT sink working. Other sink types need implementation. |\n| **Stream Management** | 50% | List and view streams. Create with SQL editor partially working. |\n\n### 🚧 Under Development\n\n| Feature | Priority | Notes |\n|---------|----------|-------|\n| Visual Pipeline Builder | Medium | Drag-and-drop rule builder with React Flow |\n| Monaco SQL Editor | High | eKuiper SQL syntax highlighting \u0026 IntelliSense |\n| MQTT Message Simulator | High | Test message generation for rule validation |\n| Connection Management | Medium | Shared MQTT, Redis, SQL connections |\n| Schema Registry | Low | Protobuf and JSON Schema management |\n| Import/Export | Medium | Backup and restore configurations |\n| Real-time Logs Viewer | Low | Filter and search server logs |\n| Python Plugin Editor | Low | Custom function/source/sink development |\n| Batch Rule Operations | Medium | Multi-select start/stop/delete |\n| Configuration Templates | Low | Pre-configured source/sink templates |\n\n---\n\n## 🛣️ Development Roadmap\n\n### Phase 1: MQTT-First Development (Current Priority)\n\n**I have the capacity to fully test only MQTT-based pathways**, so those will be developed and validated first:\n\n1. ✅ **Swagger API Playground** - Complete\n2. 🔄 **MQTT Source Configuration** - In Progress\n3. 🔄 **MQTT Sink Configuration** - In Progress\n4. 🔄 **MQTT-based Rule Creation \u0026 Testing** - In Progress\n5. ⏳ **MQTT Message Simulator** - Planned\n6. ⏳ **MQTT Connection Management** - Planned\n\n### Phase 2: Core Rule Engine Features\n\n- ✅ Rule CRUD with validation (SQL-based)\n- ✅ Rule status \u0026 basic metrics\n- ✅ Rule topology visualization\n- ✅ Data tracing and debugging\n- ✅ Query execution plan visualization (Explain)\n- ⏳ Advanced historical charts (Pending)\n\n### Phase 3: Extended Sources \u0026 Sinks\n\n- HTTP Pull/Push sources\n- REST API sinks\n- Redis pub/sub\n- InfluxDB sinks\n- File sources/sinks\n\n### Phase 4: Advanced Features\n\n- Schema registry integration\n- Python plugin development environment\n- Visual pipeline builder\n- Import/Export functionality\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- Node.js 18+\n- eKuiper server running (default: http://localhost:9081)\n- (Optional) OpenRouter API Key for AI features\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/ankur-paan/ekuiper-manager.git\ncd ekuiper-manager\n\n# Install dependencies\nnpm install\n\n# Start development server\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) in your browser.\n\n### AI Configuration (Optional)\nTo enable AI features, create a `.env` file and add your OpenRouter key:\n```env\nOPENROUTER_API_KEY=your_key_here\n```\n\n### Persistence Configuration\nBy default, server connections are stored in your **Browser (Local Storage)**.\nTo enable **Database Mode (SQLite)** (Experimental/Beta):\n1. Configure `prisma` in your environment.\n2. Toggle \"Persistence Mode\" in **Settings**.\n\u003e **Note:** Database mode is work-in-progress and may be unstable. Browser mode is recommended.\n\n### Connect to eKuiper\n\n1. Start your eKuiper instance\n2. Navigate to the Manager Overview\n3. Enter your eKuiper server URL and click Connect\n4. Explore the Swagger Playground at `/api-docs`\n\n---\n## Documentation available\n [https://ekuiper-manager.superdocs.cloud/](https://ekuiper-manager.superdocs.cloud/)\n## 🤝 Contributing - Let's Build This Together!\n\n**This project needs YOUR help to become the best eKuiper manager out there!**\n\n### Why Contribute?\n\n- 🌟 **First-mover advantage** - Be part of building the definitive open-source eKuiper UI\n- 🔧 **Real impact** - Your code will be used by the global IoT community\n- 📚 **Learn edge computing** - Work with cutting-edge IoT stream processing\n- 🤝 **Community driven** - No corporate agenda, just building great software\n\n### Priority Contribution Areas\n\n| Area | Difficulty | Impact |\n|------|------------|--------|\n| **Non-MQTT Source Testing** | Medium | 🔥🔥🔥 I can't test these - need contributors with Kafka, Redis, HTTP setups |\n| **Sink Type Implementation** | Medium | 🔥🔥🔥 InfluxDB, TDengine, SQL sinks need work |\n| **UI/UX Improvements** | Easy-Medium | 🔥🔥 Always welcome |\n| **Documentation** | Easy | 🔥🔥 Examples, tutorials, API guides |\n| **Error Handling** | Medium | 🔥🔥 Edge cases and better user feedback |\n| **Testing** | Medium | 🔥 Unit tests, integration tests |\n| **Docker Support** | Medium | 🔥 Docker Compose setup with eKuiper |\n\n### How to Contribute\n\n1. **Fork the repository**\n2. **Create your feature branch** (`git checkout -b feature/amazing-feature`)\n3. **Commit your changes** (`git commit -m 'Add amazing feature'`)\n4. **Push to the branch** (`git push origin feature/amazing-feature`)\n5. **Open a Pull Request**\n\n### Development Guidelines\n\n- Follow existing code style (TypeScript, React patterns)\n- Add comments for complex logic\n- Test with a running eKuiper instance\n- Update documentation when adding features\n\n---\n\n## 🔌 Tech Stack\n\n| Technology | Purpose |\n|------------|---------|\n| **Next.js 14** | React framework with App Router |\n| **TypeScript** | Type-safe development |\n| **Tailwind CSS** | Styling |\n| **Radix UI** | Accessible UI primitives |\n| **Monaco Editor** | Code editing |\n| **React Flow** | Visual pipeline builder |\n| **Swagger UI React** | API documentation |\n| **Zustand** | State management |\n| **OpenRouter** | AI Model Integration |\n\n---\n\n## 📁 Project Structure\n\n```\nsrc/\n├── app/                    # Next.js App Router\n│   ├── page.tsx           # Main application entry\n│   └── api-docs/          # Swagger playground\n├── components/\n│   ├── dashboard/         # Metrics dashboard\n│   ├── editor/            # Monaco code editors\n│   ├── manager/           # Manager UI components\n│   ├── pipeline/          # Visual pipeline builder\n│   └── ui/                # Shared UI components\n├── lib/\n│   └── ekuiper/           # eKuiper API client\n│       ├── client.ts          # Base REST client\n│       ├── manager-client.ts  # Extended manager client\n│       └── manager-types.ts   # TypeScript interfaces\n└── public/\n    └── ekuiper-openapi.json   # Complete OpenAPI spec\n```\n\n---\n\n## 📄 License\n\nThis project is licensed under the **IDACS Open Source License (IOSL)** - see the [LICENSE](LICENSE) file for details.\n\n**Key points:**\n- ✅ Free to use, modify, and distribute\n- ✅ Commercial use permitted\n- 📧 Organizations with \u003e$1M annual turnover using in production: please notify us at measure@i-dacs.com (just a friendly notification, no fee required)\n\n---\n\n## 🙏 Acknowledgments\n\n- [LF Edge eKuiper](https://ekuiper.org/) - The IoT stream processing engine\n- [EMQ](https://www.emqx.com/) - Original developers of eKuiper\n- [Next.js](https://nextjs.org/) - React framework\n- [Swagger UI](https://swagger.io/tools/swagger-ui/) - API documentation\n\n---\n\n## ⭐ Star This Repo!\n\nIf you find this project useful, please give it a star! It helps others discover the project and motivates continued development.\n\n---\n\n**Developed by [I-Dacs Labs](https://i-dacs.com)**\n\n📧 measure@i-dacs.com | 🌐 [i-dacs.com](https://i-dacs.com) | 💼 [LinkedIn](https://www.linkedin.com/company/110770924)\n\n*Building the future of Industrial IoT together.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fankur-paan%2Fekuiper-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fankur-paan%2Fekuiper-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fankur-paan%2Fekuiper-manager/lists"}