Repository navigation
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 @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
- @dependabot[bot] made their first contribution in #181
- @Ycong made their first contribution in #204
Full Changelog: v1.3.0...v1.4.0