Skip to content

eKuiper Manager v1.4.0

Latest

Choose a tag to compare

@github-actions github-actions released this 04 Nov 13:05
910cdae

Added

  • Flow Studio (Beta): End-to-end visual DAG flow editor (/flows and /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, and deploy/docker/README.md to automatically publish indusstack/ekuipermanager images 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 reported npm audit and CodeQL advisories.

Docker Image

docker pull indusstack/ekuipermanager:1.4.0
docker pull indusstack/ekuipermanager:latest

What'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 @ankur-paan in #111
  • FS-0060: Add Join definition and join-specific semantic validation by @ankur-paan in #112
  • FS-0061: Add generic property form renderer for string/number/boolean/select by @ankur-paan in #113
  • FS-0062: Add JSON and expression generic property controls by @ankur-paan in #114
  • FS-0063: Generate palette from built-in registry by @ankur-paan in #115
  • FS-0064: Add palette search filtering by @ankur-paan in #116
  • FS-0065: Add editor-store addNode action with deterministic local ID provider boundary by @ankur-paan in #117
  • FS-0066: Add palette drag/drop node creation onto canvas by @ankur-paan in #118
  • FS-0067: Add connection creation with preflight port validation by @ankur-paan in #119
  • FS-0068: Show node validation error badge and inspector diagnostics by @ankur-paan in #120
  • FS-0069: Add node rename and delete controls in inspector by @ankur-paan in #121
  • FS-0070: Add quick node creation by double-clicking empty canvas by @ankur-paan in #122
  • FS-0071: Create deterministic runtime ID helper by @ankur-paan in #123
  • FS-0072: Define eKuiper compiler contract and deployment artifact type by @ankur-paan in #124
  • FS-0073: Verify and codify audited eKuiper Graph Rule TypeScript shape by @ankur-paan in #125
  • FS-0074: Compile minimal Memory Source -> Memory Sink graph by @ankur-paan in #126
  • FS-0075: Compile Filter and Pick operators by @ankur-paan in #127
  • FS-0076: Compile Window, Aggregate, and Group By operators by @ankur-paan in #128
  • FS-0077: Compile Switch, Sort, and Join operators by @ankur-paan in #129
  • FS-0078: Compile MQTT/REST/Log and optional script built-ins by @ankur-paan in #130
  • FS-0079: Add normalized target capability profile type/resolver baseline by @ankur-paan in #131
  • FS-0080: Add capability validation and capability-aware palette state by @ankur-paan in #132
  • fix(flow-studio): render connection handles on canvas nodes (review R1) by @ankur-paan in #133
  • fix(flow-studio): clearing a property no longer breaks dirty state (review R2) by @ankur-paan in #134
  • fix(flow-studio): prevent stale autosave from overwriting newer draft (review R3) by @ankur-paan in #135
  • fix(flow-studio): invoke join validation in the editor pipeline (review R4) by @ankur-paan in #136
  • test(e2e): add Flow Studio browser authoring journey by @ankur-paan in #137
  • FS-0141: Add live-engine node conformance harness by @ankur-paan in #138
  • FS-0142: Correct MQTT compiler mapping for eKuiper graph rules by @ankur-paan in #139
  • FS-0143: Add missing compiler mapping for the Function operator by @ankur-paan in #140
  • FS-0144: Correct built-in port kinds to real engine semantics by @ankur-paan in #141
  • fix(conformance): never report green when the engine was not actually queried by @ankur-paan in #142
  • FS-0149/FS-0150: correct conformance fixtures, join topology rule and Function expression validation by @ankur-paan in #143
  • FS-0151: correct the Join node port model to match engine topology by @ankur-paan in #144
  • FS-0135: Add /flows list page and primary navigation entry by @ankur-paan in #145
  • FS-0082: Add server compile endpoint with no runtime mutation by @ankur-paan in #147
  • FS-0084: Add flow_deployments migration by @ankur-paan in #149
  • FS-0086: Add official eKuiper validation adapter for compiled artifact by @ankur-paan in #151
  • FS-0088: Add POST /api/flows/:id/deploy by @ankur-paan in #153
  • FS-0154: Script operator decision record by @ankur-paan in #163
  • fix: canonical JSON object branch dropped by production minifier (FS-0157) by @ankur-paan in #164
  • FS-0153: Add stream and table source reference nodes by @ankur-paan in #165
  • FS-0091: Add flow_revisions migration by @ankur-paan in #166
  • FS-0092: Implement revision repository and snapshot creation by @ankur-paan in #167
  • FS-0093: Create revision automatically on successful deployment by @ankur-paan in #168
  • FS-0094: Add revision history read API by @ankur-paan in #169
  • FS-0099: Add runtime desired/actual status read model by @ankur-paan in #170
  • FS-0100: Show runtime status in header and node-neutral panel by @ankur-paan in #171
  • FS-0095: Implement semantic Flow diff utility by @ankur-paan in #172
  • FS-0096: Add revision history/diff panel by @ankur-paan in #173
  • FS-0097: Add rollback-to-revision as draft operation by @ankur-paan in #174
  • FS-0098: Add explicit redeploy revision action by @ankur-paan in #175
  • Flow Studio: FS-0101-FS-0140 and live-acceptance blocker fixes by @ankur-paan in #176
  • feat(ui): Refine interactive surfaces, dialogs, async states, and inspector UX by @ankur-paan in #177
  • fix(ui): remove theme and language stubs, document reKuiper roadmap by @ankur-paan in #179
  • Bump actions/checkout from 6 to 7 by @dependabot[bot] in #181
  • Bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #180
  • Bump next from 16.3.8 to 16.4.2 by @dependabot[bot] in #187
  • Bump eslint-config-next from 16.3.8 to 16.4.2 by @dependabot[bot] in #182
  • Bump @types/node from 25.0.9 to 26.6.5 by @dependabot[bot] in #185
  • Bump the actions group with 4 updates by @dependabot[bot] in #189
  • Bump the react group with 4 updates by @dependabot[bot] in #190
  • feat(i18n): add zh-CN localization for the Manager UI by @Ycong in #204
  • Bump the dependencies group across 1 directory with 32 updates by @dependabot[bot] in #203
  • Bump postcss-selector-parser from 6.1.4 to 6.1.5 by @dependabot[bot] in #205

New Contributors

Full Changelog: v1.3.0...v1.4.0