Repository navigation
Releases
eKuiper Manager v1.4.0
Added
- Flow Studio (Beta): End-to-end visual DAG flow editor (
/flowsand/flows/[id]) powered by@xyflow/react, with 17 built-in source/transform/sink node definitions, declarative extension node support (@ekuiper-manager/flow-sdk), Flow-to-eKuiper IR/SQL/JSON compilation, preflight capability and connection-health validation, one-click deploy/undeploy/delete, automatic revision snapshots (flow_revisions), semantic diff and rollback-to-revision, 1 Hz runtime operator metrics, command palette (Ctrl+K), focus mode, and Monaco expression editing. - Bilingual Manager UI (
en-US&zh-CN): Full English and Simplified Chinese localization across all Manager pages, Flow Studio, Rule Designer (including built-in and node-provided connector/sink metadata labels and hints), and diagnostic rule-status formatting (formatRuleStatus), with persistent locale switching. - Interactive Inspector & Connector Pickers: Searchable comboboxes for option-backed properties, unified connection-registry (
confKey) pickers for MQTT sources, connector pickers for stream/table reference nodes, and join reference pickers. - Static i18n & Placeholder Verification (
npm run check:i18n): AST-based catalog parity, interpolation variable, and empty-JSX expression checks enforced in both Linux and Windows CI jobs. - Automated Docker Hub Publishing & Release Pipeline: Added
.github/workflows/release.yml,.github/workflows/docker.yml, anddeploy/docker/README.mdto automatically publishindusstack/ekuipermanagerimages and sync the Docker Hub README on tag releases.
Changed
- Replaced legacy third-party API docs bundles with a clean Swagger UI page for the audited eKuiper 2.4.1 OpenAPI reference.
- Consolidated Dependabot configuration and upgraded Next.js (
16.4.2), React (19.3.1), and GitHub Actions dependencies.
Security
- Added dependency overrides (
source-map-js >=1.2.2) and resolved all reportednpm auditand CodeQL advisories.
Docker Image
docker pull indusstack/ekuipermanager:1.4.0
docker pull indusstack/ekuipermanager:latestWhat's Changed
- Restore README convention and purge teardown docs by @ankur-paan in #48
- Purge proprietary teardown documentation by @ankur-paan in #49
- chore(ci): resolve high/moderate dependency advisories by @ankur-paan in #51
- FS-0001: Add in-repo Flow Studio architecture guardrail document by @ankur-paan in #50
- FS-0002: Create v1alpha1 Flow Document TypeScript types by @ankur-paan in #52
- FS-0003: Add Flow Diagnostic types and stable code constants by @ankur-paan in #53
- FS-0004: Add canonical JSON serializer for Flow hashing by @ankur-paan in #54
- FS-0005: Add separate semantic and layout hash helpers by @ankur-paan in #55
- FS-0006: Add Flow Document fixture builders for tests by @ankur-paan in #56
- FS-0007: Add basic Flow Document shape guard by @ankur-paan in #57
- FS-0008: Add deterministic Flow Document normalization by @ankur-paan in #58
- FS-0009: Add duplicate and missing-endpoint structural validation by @ankur-paan in #59
- FS-0010: Add DAG cycle detection validation by @ankur-paan in #60
- FS-0011: Create internal Node Definition types by @ankur-paan in #62
- FS-0012: Implement Node Registry core by @ankur-paan in #63
- FS-0013: Add port compatibility helper by @ankur-paan in #64
- FS-0014: Add registry-aware unknown node type validation by @ankur-paan in #65
- FS-0015: Add registry-aware edge port existence validation by @ankur-paan in #66
- FS-0016: Add port kind compatibility validation by @ankur-paan in #67
- FS-0017: Add required property validation by @ankur-paan in #68
- FS-0018: Add source/sink presence validation from registry categories by @ankur-paan in #69
- FS-0019: Create Flow IR types by @ankur-paan in #70
- FS-0020: Create minimal registry-driven Flow-to-IR builder by @ankur-paan in #71
- FS-0021: Add flows table migration by @ankur-paan in #72
- FS-0022: Add flow_drafts table migration by @ankur-paan in #73
- FS-0023: Create Flow persistence row/domain mapping types by @ankur-paan in #74
- FS-0024: Implement flow repository list/create/get by @ankur-paan in #75
- FS-0025: Implement flow metadata update repository method by @ankur-paan in #76
- FS-0026: Implement flow draft repository get/upsert by @ankur-paan in #77
- FS-0027: Add authenticated GET/POST /api/flows by @ankur-paan in #78
- FS-0028: Add authenticated GET/PATCH /api/flows/:id by @ankur-paan in #79
- FS-0029: Add GET/PUT /api/flows/:id/draft by @ankur-paan in #80
- FS-0030: Add flow mutation audit events by @ankur-paan in #81
- FS-0031: Install and pin @xyflow/react by @ankur-paan in #82
- FS-0032: Create Flow Editor Zustand store skeleton by @ankur-paan in #83
- FS-0033: Create Flow Studio shell component by @ankur-paan in #84
- FS-0034: Create Flow Studio header presentational component by @ankur-paan in #85
- FS-0035: Create palette and inspector placeholder panels by @ankur-paan in #86
- FS-0036: Create React Flow canvas base by @ankur-paan in #87
- FS-0037: Add Flow Document -> XYFlow view adapter by @ankur-paan in #88
- FS-0038: Create basic Flow node chrome by @ankur-paan in #89
- FS-0039: Create client page for a single Flow Studio draft by @ankur-paan in #90
- FS-0040: Bind loaded Flow draft to editor store and canvas by @ankur-paan in #91
- FS-0041: Add layout-only node move action to editor store by @ankur-paan in #92
- FS-0042: Commit canvas drag position only on drag stop by @ankur-paan in #93
- FS-0043: Add semantic node config update action by @ankur-paan in #94
- FS-0044: Add semantic edge add/remove actions by @ankur-paan in #95
- FS-0045: Add selected node/edge synchronization with XYFlow by @ankur-paan in #96
- FS-0046: Add draft semantic/layout dirty-state calculation by @ankur-paan in #97
- chore(test): discover .test.tsx files in jest testMatch by @ankur-paan in #98
- FS-0047: Add debounced draft autosave hook by @ankur-paan in #99
- FS-0048: Show Saved/Saving/Unsaved/Error state in header by @ankur-paan in #100
- FS-0049: Add bounded editor undo/redo command history by @ankur-paan in #101
- FS-0050: Add keyboard undo/redo and delete selected elements by @ankur-paan in #102
- FS-0051: Create built-in Node Registry factory by @ankur-paan in #103
- FS-0052: Add Memory Source and Memory Sink definitions by @ankur-paan in #104
- FS-0053: Add MQTT Source and MQTT Sink definitions by @ankur-paan in #105
- FS-0054: Add REST/HTTP Sink and Log Sink definitions by @ankur-paan in #106
- FS-0055: Add Filter and Pick transform definitions by @ankur-paan in #107
- FS-0056: Add Function/Script transform definition by @ankur-paan in #108
- FS-0057: Add Window definition by @ankur-paan in #109
- FS-0058: Add Aggregate and Group By definitions by @ankur-paan in #110
- FS-0059: Add Switch and Sort definitions by ...
eKuiper Manager v1.3.0
Highlights
- Replaces the page-aware chatbot with a permission-aware, read-only operations agent.
- Correlates sanitized Manager/PostgreSQL data with selected-node eKuiper state through parallel and iterative tool calls.
- Adds an investigation timeline so users can see what the agent inspected for each answer.
- Updates the README, deployment configuration, provider compatibility checks, and test coverage.
Security boundary
- No arbitrary SQL, URLs, shell execution, write methods, or mutation tools.
- Owner-only access for user, session, audit, and migration readers.
- Explicit eKuiper GET allowlist, recursive secret redaction, and hard execution budgets.
Validation
- All 60 unit tests pass with coverage above the configured thresholds.
- CI, CodeQL, production build, Docker build, and the official eKuiper integration stack pass.
npm auditreports zero vulnerabilities for the released dependency tree.
Upgrade
Back up your deployment, pull the release, then run docker compose up -d --build.
Rollback target: v1.2.1.
eKuiper Manager v1.2.1
eKuiper Manager v1.2.1 turns the experimental application into an installable, self-hosted eKuiper operator stack.
Highlights
- Start Manager, official eKuiper 2.4.1, and a private PostgreSQL sidecar with one Docker Compose command.
- Use the context-aware operator assistant from every authenticated page, including the rule designer. Provider credentials stay server-side; page context is bounded and redacted; replies render safe Markdown and include clickable follow-up questions.
- Design rules visually, inspect generated SQL/JSON, validate, create stopped, and duplicate safely.
- Bootstrap an owner and manage the basic local user lifecycle: sign-in/out, add, reset, forced password change, and delete.
- Register, probe, select, and remove eKuiper nodes through a server-owned encrypted registry.
- Operate the audited eKuiper 2.4.1 contract across streams, tables, rules, connections, schemas, uploads, plugins, functions, services, metadata, and import/export.
- Browse the refreshed 98-path/140-operation Swagger contract on GitHub Pages.
Security and reliability
- Same-origin mutations, hashed sessions, scrypt passwords, encrypted node authorization, recursive response redaction, registered-target proxying, DNS/IP validation, redirect rejection, rate limits, audit events, and bounded request/response bodies.
- Non-root read-only Manager container with dropped capabilities and pinned production images.
- Checked PostgreSQL migrations, durable named volumes, health checks, restart persistence verification, 57 unit tests, eight local desktop/mobile journeys, clean-container CI, CodeQL, and zero npm audit findings.
Upgrade note
This release replaces the former experimental browser/SQLite/Prisma/EMQX/Supabase paths. Back up first. Compose deliberately ignores legacy DATABASE_URL=file:...; use the bundled PostgreSQL sidecar or explicitly set MANAGER_DATABASE_URL.
The optional assistant is off by default. See docs/AI_ASSISTANT.md for provider configuration and its data boundary.
v1.2.0: AI Assistant & Query Designer Beta
AI-powered rule engine management with visual query designer and Swagger documentation.
What's Changed
- chore(release): v1.1.0 - AI Assistant & Security Hardening by @ankur-paan in #29
- docs: restore IDACS branding and roadmap, update for v1.1.0 by @ankur-paan in #30
- v1.2.0 Release Preparation by @ankur-paan in #42
Full Changelog: V0.3...v1.2.0
V0.3
🚀 Release Notes: AI Assistant & Security Hardening
🌟 Highlights
This release introduces a powerful AI Assistant integrated directly into the eKuiper Manager, powered by OpenRouter. It also brings persistent Server Management using SQLite/Prisma and includes significant Security Hardening based on CodeQL analysis.
✨ New Features
🤖 AI-Powered Assistant
- Master Chat Interface: New conversational agent to help manage and debug eKuiper instances.
- Intelligent Generators:
- Rule Generator: Describe rules in plain English and get ready-to-use JSON/SQL.
- Stream Generator: Automatically generate stream definitions from data descriptions.
- Deep Analysis Tools:
- Rule Analysis: Get performance insights and optimization tips for existing rules.
- Explain Plan: Visual and textual explanation of rule execution plans.
- Log Capture & Analysis: Smart log capturing with AI-driven debugging suggestions.
🖥️ Server Management
- Multi-Server Support: Manage connections to multiple eKuiper instances.
- Persistent Storage: Server configurations are now saved locally using SQLite & Prisma.
- Connection Status: Real-time health monitoring of connected servers.
🛡️ Security Improvements
- Resource Exhaustion Protection: Implemented strict allowlists for duration-based operations to prevent DoS attacks (fixing CWE-400).
- Safe Logging: Replaced template literals with safe format specifiers to prevent log injection (fixing CWE-134).
- CI/CD Security: Added CodeQL analysis and improved build pipeline security.
⚡ Enhancements
- Dashboard:
- Redesigned metrics section with real-time updates.
- Improved layout for better data density.
- Rules Management:
- Enhanced Topology view for complex rule pipelines.
- Better status indicators and error reporting.
- Streamlined "New Rule" workflow.
- Developer Experience:
- Prisma Integration: Robust ORM for local data management.
- Clean Build: Optimized build process with proper artifact cleanup.
🐛 Bug Fixes
- Fixed hydration errors in Next.js 15.
- Resolved build failures related to Prisma client generation in CI.
- Fixed tracing runtime errors in rule status monitoring.
🔧 Upgrade Notes
- Prisma Setup: This release utilizes Prisma with SQLite. The CI pipeline has been updated to run
prisma generateautomatically. - Env Vars: New optional environment variables for security configuration:
EKUIPER_ALLOWED_HOSTS: Comma-separated list of allowed eKuiper hosts.EKUIPER_ALLOW_PRIVATE_NETWORKS: Set totrueto allow connections to private IP ranges.
Full Changelog: V0.2...V0.3
V0.2-beta, playground with manager
What's Changed
- Update repository URL in README by @ankur-paan in #14
- Compliance Polish: Fix linting errors, build issues, and standard compliance issue by @ankur-paan in #16
- fix: resolve TypeError in getSpanIcon and improve tracing page robustness by @ankur-paan in #19
- docs: update README with functional Rule Tracing, Topology, and Explain by @ankur-paan in #21
- ci: add Codecov coverage upload to CI workflow by @ankur-paan in #22
- Fix/tracing runtime error by @ankur-paan in #24
- Fix/tracing runtime error by @ankur-paan in #25
- chore: bump eslint-config-next to 16.1.2 and @types/node to 25.0.9 by @ankur-paan in #26
- Enhanced security by @ankur-paan in #27
New Contributors
- @ankur-paan made their first contribution in #14
Full Changelog: v0.1-beta...V0.2
Beta 0.1 - eKuiper Manager
🚀 eKuiper Manager Beta 0.1
The first open-source web UI and manager for LF Edge eKuiper!
✅ Complete Features
- Swagger API Playground - Full interactive API documentation with 70+ endpoints
🔶 Partially Complete
- Dashboard Overview (70%) - System monitoring
- Rule Management (60%) - List, start, stop rules
- eKuiper Health Check (80%) - Ping and system info
🚧 Under Development
- Visual Pipeline Builder
- Monaco SQL Editor
- MQTT Message Simulator
Developed by IDACS Business Administration Private Limited