Skip to content

Changelog โ€‹

2.2.0 (2026-09-15) Spring Boot 3.5.16 โ€‹

Breaking changes

Read the V 2.2.0 Upgrade Guide before upgrading.

erupt-designer data moves to an embedded SQLite file: business data no longer lives in the main database's e_designer_data table and is not migrated automatically; the file needs its own backup and a persistent volume.

Table structures change too โ€” see Database Changes at the end of this release.

๐Ÿฆž Open-sourced erupt-atlas: the relations already implied by your annotations, drawn as a graph โ€” lineage tracing, dependency layers, a module coupling matrix, impact analysis, and a structural audit for cycles, shared tables and orphan models.

๐Ÿฆž Open-sourced erupt-remote: remote hosts in the browser โ€” VNC desktops and SSH shells over one WebSocket, credentials stored AES-GCM encrypted, and the VNC authentication answered server-side so the password never reaches the front end.

๐ŸŒŸ Tables gain bitable-style editing: double-click a cell to change one field in place, without opening the row form. The server validates the whole row, so DataProxy, the operate log and the edit event behave exactly as a form submission โ€” gated by @Power(cellEdit) on the model and @Edit(cellEdit) on the field.

๐ŸŒŸ AI writing assistant on text fields: generate, polish, continue, shorten or expand a value with the rest of the form as the brief. Streams over SSE and persists nothing; @Edit(prompt) is that field's authoring guidance.

๐ŸŒŸ erupt-ai goes multimodal: attach images with the paper-clip button or a clipboard paste and send them alongside the text. Images are persisted with the message and carried along when the history context is rebuilt, regenerated or edit-resent.

๐ŸŒŸ New Liquid Glass skin: the sidebar becomes a translucent pane of glass โ€” backdrop blur, specular top edge โ€” floating on an ambient color field, switchable against the default and Brutalist skins from the settings drawer.

๐ŸŒŸ New dark theme: light / dark / auto, where auto follows the OS live, and charts, code editors and Markdown previews follow along; compact mode combines freely with it.

๐ŸŒŸ TPL fields now talk to the form both ways: a template reads every sibling field's value and writes back formData and editExpr, so a custom editor is no longer cut off from the form it lives in.

๐Ÿงฉ Theme color and header color are now set with a color picker and remembered; the default theme color is rgb(22, 119, 255).

๐Ÿงฉ Menu layout offers single-column, split and dual-column modes โ€” dual being a first-level icon rail plus the selected category's children โ€” and menu names can show under the icons when the sidebar is collapsed.

๐Ÿงฉ A dark sidebar can be turned on on its own while the rest of the UI stays light.

๐Ÿงฉ The login page gained a skin dropdown and a theme color picker, so the first screen can be dressed before signing in.

๐Ÿงฉ Multi-tab improvements: pages opened from a row operation or a link (remote host, AI canvas, cube dashboard, form designer) name their tab after their data and close it on back.

๐Ÿงฉ The menu tree expands one level by default, so a large menu no longer fills the screen at once.

๐Ÿงฉ Upgraded to Font Awesome 7, taking available icons from 675 to 1992; legacy FA4 class names keep working.

๐Ÿงฉ The micro-frontend container switched to the iframe sandbox, so Vite / ESM sub-apps load correctly and several micro-frontend menus can be open at once.

๐Ÿงฉ New micro-frontend link menu type: opens an external URL in the micro-frontend container when the target refuses framing.

๐Ÿงฉ Gantt charts and the Markdown editor load their libraries on demand, only when a page actually shows one.

๐Ÿงฉ TEXTAREA gained configuration: max length, visible row bounds, and @ / # mentions (static candidates plus a TagsFetchHandler, served on demand).

๐Ÿงฉ AUTO_COMPLETE supports static values; handler is no longer required.

๐Ÿงฉ The NUMBER input ignores the mouse wheel, so scrolling a page can no longer nudge a value.

๐Ÿงฉ Tree view labels now go through @EruptI18n translation, so tree pages such as Menu Management follow the console language instead of showing their authored text.

๐Ÿงฉ erupt-designer stores its data in an embedded SQLite file: one real table per published design, with filtering, sorting and paging pushed down as SQL regardless of the host database.

๐Ÿงฉ erupt-ai-canvas enhancements: a canvas binds several data models, each with its own add / edit / delete permission; generation runs asynchronously, plus page validation and publish versions.

๐Ÿงฉ A model picker in the chat input toolbar switches models mid-conversation; shown only when more than one enabled model exists, and hidden when the model is pinned through ?llm=.

๐Ÿงฉ The AI now replies in the language the console is set to, instead of drifting to Chinese whatever language the question was asked in.

๐Ÿงฉ Added erupt.ai.request-timeout, raising the LLM read timeout to 15 minutes by default (langchain4j defaults to 60s, which cuts off long non-streaming generations).

๐Ÿงฉ erupt-print templates are authored with CKEditor, matching the storage format the frontend print-template editor expects (Velocity tokens plus widget markup).

๐Ÿงฉ Added anonymous telemetry โ€” version and module stats only, and it can be turned off at any time.

๐Ÿงฉ User and role lists are no longer scoped to their creator โ€” visibility is decided by menu and role permissions. Review those two menu grants after upgrading; see the upgrade guide.

๐Ÿงฉ WebSocket pushes go through a per-connection async queue, so business threads never block on slow clients.

๐Ÿงฉ ip2region loads its xdb file on demand instead of shipping the database in the jar.

๐Ÿž Fixed 64-bit id precision loss in the browser: erupt-api responses returning bare Map / Collection bypassed Gson's safe-number serialization.

๐Ÿž Fixed scheduled jobs crashing with redis-session enabled โ€” the LockProvider is now resolved from the Spring container. Thanks to chenxiaolong8023 for the contribution.

๐Ÿž Fixed sub-table row corruption caused by unstable temporary primary keys.

๐Ÿž Fixed the drag-sort grip appearing on placeholder and measuring rows.

๐Ÿž Fixed the designer copying a field along with its original field id.

Database Changes โ€‹

INFO

Schema changes are applied automatically by JPA / Hibernate at startup. Run these manually only if automatic DDL is disabled (spring.jpa.hibernate.ddl-auto=none or validate).

This release adds the table e_ai_canvas_model, drops two columns from e_ai_canvas after migrating them, adds one column to e_ai_chat_message, and leaves e_designer_data unused. Adding erupt-remote also creates e_remote_host, which Hibernate builds on its own.

Show the SQL (MySQL syntax; translate for other databases)

New table e_ai_canvas_model (erupt-ai-canvas)

sql
CREATE TABLE e_ai_canvas_model
(
    id           BIGINT NOT NULL AUTO_INCREMENT,
    canvas_id    BIGINT,
    data_type    VARCHAR(255),
    model        VARCHAR(255),
    purpose      VARCHAR(255),
    allow_add    BIT(1),
    allow_edit   BIT(1),
    allow_delete BIT(1),
    PRIMARY KEY (id)
);
ALTER TABLE e_ai_canvas_model ADD CONSTRAINT fk_ai_canvas_model_canvas FOREIGN KEY (canvas_id) REFERENCES e_ai_canvas (id);

Changed columns on e_ai_canvas (erupt-ai-canvas)

Model bindings moved into e_ai_canvas_model. Migrate the data first, then drop the old columns:

sql
INSERT INTO e_ai_canvas_model (canvas_id, data_type, model, allow_add, allow_edit, allow_delete)
SELECT id, data_type, target_model, 0, 0, 0 FROM e_ai_canvas WHERE target_model IS NOT NULL;

ALTER TABLE e_ai_canvas DROP COLUMN data_type;
ALTER TABLE e_ai_canvas DROP COLUMN target_model;

New column on e_ai_chat_message (erupt-ai)

sql
ALTER TABLE e_ai_chat_message ADD COLUMN images LONGTEXT COMMENT 'JSON array of image attachment paths sent with a user message';

e_designer_data is no longer used (erupt-designer)

Designer business data moves to an embedded SQLite file (data/designer.db by default). The table is neither read nor written any more, and Hibernate will not drop it for you. Nothing is migrated automatically, so drop it by hand only once you are sure nothing in it is still needed (or it has been exported):

sql
-- Irreversible: confirm the data is migrated or no longer needed first
DROP TABLE e_designer_data;

The design config table e_designer is still in use โ€” do not drop it.

2.1.1 (2026-08-30) Spring Boot 3.5.16 โ€‹

๐ŸŒŸ Added the MULTI_FORM edit type โ€” one-to-many child rows are edited directly as inline form blocks, ideal when child tables have many fields.

๐ŸŒŸ @Layout added the formSteps step-form wizard mode: DIVIDE fields delimit the steps, splitting long forms into guided stages.

๐ŸŒŸ erupt-cube added a Map report type: ECharts-based choropleth maps with a GeoJSON map registry and region-click drill-down linkage.

๐Ÿงฉ @Search added lockOperator โ€” the query operator is enforced server-side so crafted requests cannot bypass frontend query restrictions.

๐Ÿงฉ Choice and reference field search now supports IN / NOT_IN multi-select queries, matching multiple options at once.

๐Ÿงฉ DATE picker added a QUARTER mode plus min / max selectable date bounds.

๐Ÿงฉ NUMBER input enhanced with decimal precision, step size, prefix/suffix units, and thousands separator.

๐Ÿงฉ COLOR picker added configuration for alpha channel, preset swatches, and color value text.

๐Ÿงฉ erupt-job supports cluster deduplication: with redis-session enabled, each scheduled job runs on exactly one node across the cluster.

๐Ÿงฉ Security hardening: nested sub-model requests (TAB, COMBINE, reference fields, etc.) are now authorized against their parent's menu permission.

๐Ÿงฉ ADD/EDIT function permissions are auto-generated for FORM-type menus โ€” no manual configuration needed.

๐Ÿงฉ Sidebar menu gained a toolbar: refresh, reset, expand all, and split mode.

๐Ÿงฉ Tree views support batch delete with checkboxes.

๐Ÿงฉ Table column widths are computed from measured text for better accuracy; overly long header breadcrumbs are truncated with ellipsis; the multi-tab bar is hidden on mobile.

๐Ÿงฉ Added the OrcaRouter LLM provider โ€” thanks to XiaoHuo888-hue for the contribution.

๐Ÿž Fixed RAG knowledge-base ingestion failing for remote attachments and stale embedding clients after configuration changes.

๐Ÿž Fixed the TIME search filter being blank and unusable.

๐Ÿž Fixed Markdown fields not displaying asynchronously loaded content โ€” thanks to chenxiaolong8023 for the contribution.

๐Ÿž Fixed left-join queries in erupt-cube semantic models.

๐Ÿž Fixed the fixed-mode multi-tab bar overlapping page content.

2.1.0 (2026-08-23) Spring Boot 3.5.16 โ€‹

๐Ÿฆž 15 modules open-sourced โ€ƒ ๐Ÿ”Œ 13+ data connectors โ€ƒ ๐Ÿค– Major AI upgrades

๐Ÿฆž Open-sourced the Erupt Report module (formerly the commercial erupt-bi) โ€” define reports and charts in pure SQL, multi-dimensional analytics with zero frontend code.

๐Ÿฆž Open-sourced the erupt-ai-canvas module: generate a complete page from one sentence โ€” SSE streaming generation, version rollback, element picking, multi-device preview, one-click publish to menu, with live data from the Erupt backend.

๐Ÿฆž Open-sourced the erupt-ai-rag module: knowledge bases with vector retrieval (RAG), pluggable embedding models and vector stores (pgvector, Redis, etc.), with Agentic RAG support.

๐Ÿฆž Open-sourced the erupt-ai-staff module: AI digital employees bound to real system accounts, inheriting UPMS permissions, running Cron-scheduled tasks, and pushing work reports to DingTalk, WeCom, Feishu, or Slack.

๐Ÿฆž Open-sourced the erupt-data connector layer: where data lives, admin follows โ€” one unified data-source interface, letting the same annotated model perform CRUD, pagination, and search over any data. 11 new data-source modules:

ModuleDescription
erupt-data-jdbcPlain JDBC single-table data source, no JPA mapping needed โ€” supports ClickHouse, Doris, TDengine, DM, and other JDBC-driver-only databases
erupt-data-httpREST APIs as data sources โ€” map any HTTP service to a manageable admin table
erupt-data-esElasticsearch data source for managing and full-text searching index data
erupt-data-redisVisual management of Redis key-value data
erupt-data-memoryIn-memory data source โ€” manage data without a database
erupt-data-fileFiles as tables, supporting CSV, JSONL, TSV, INI, and more
erupt-data-k8sVisual management of Kubernetes cluster resources
erupt-data-ldapLDAP directory service data source
erupt-data-feishuFeishu Bitable data source
erupt-data-notionNotion data source
erupt-data-s3S3 object storage data source

๐ŸŒŸ erupt-cube gains a SQL Port: a PostgreSQL-compatible wire-protocol port (Calcite query pushdown) โ€” any BI tool can connect to the semantic layer as if it were PostgreSQL.

๐ŸŒŸ erupt-ai-claw enhancements: sandboxed file and shell tools, an Agent Skills library with skill sedimentation, an Erupt model CRUD toolbox, and JVM/Spring runtime diagnostics tools.

๐ŸŒŸ erupt-cloud enhancements: node lifecycle management, resource reporting, routing failover and graceful shutdown, plus support for mounting erupt-flow, erupt-ai-claw, and erupt-monitor.

๐ŸŒŸ erupt-flow gains Flex automation nodes: HTTP request, script, data, variable (JS expression resolution), notify, and wait-callback โ€” flows can now perform automated actions without human steps.

๐ŸŒŸ New erupt-docker all-in-one image โ€” spin up a complete Erupt environment with a single command.

๐ŸŒŸ AI chat can now be stopped mid-generation; partial output is kept and marked as interrupted.

๐Ÿงฉ erupt-monitor adds an Erupt class registry page listing runtime models, with one-click publish to menu.

๐Ÿงฉ @Power adds an ai switch to control AI availability per entity.

๐Ÿงฉ Admin UI refresh: new Brutalist theme with one-click toggle, redesigned login screens and brand logo.

๐Ÿงฉ Table columns now filter dynamically based on @Vis field visibility.

๐Ÿž Fixed the change-password API failing when pwd-transfer-encrypt = false.

๐Ÿž Fixed operation-log recording errors caused by masking failures.

Breaking Changes

  • erupt-jpa has been renamed to erupt-data-jpa, and erupt-mongodb to erupt-data-mongodb (both now part of the erupt-data connector layer) โ€” update the artifactId in your Maven dependencies.
  • The AMIS integration module in erupt-tpl-ui has been removed; migrate to another template engine integration if you were using it.

2.0.4 (2026-07-19) Spring Boot 3.5.16 โ€‹

๐ŸŒŸ New BUTTON edit type โ€” an in-form button that calls a backend handler with all current form values, supporting form population and dynamic field configuration.

๐ŸŒŸ New @DragSort row drag sorting โ€” reorder table rows by dragging, with the result automatically persisted to the sort field.

๐ŸŒŸ New PROGRESS view type โ€” display numeric columns as progress bars; the SLIDER edit type contributes its max value automatically.

๐ŸŒŸ New PASSWORD view type โ€” sensitive fields are masked and the actual value is never sent to the client.

๐Ÿงฉ PASSWORD edit type security hardening: edit echo returns only a mask placeholder; submitting it unchanged keeps the stored password.

๐ŸŒŸ Card view now supports card selection, with selected-state styling wired to action buttons.

๐Ÿงฉ Built-in forms for AI models, MCP servers, agents, and scheduled jobs gain test/validation buttons for one-click connection and configuration checks.

๐Ÿงฉ erupt-ai supports an embedded chat mode; the LLM apiKey is now masked with the password view.

๐Ÿงฉ More lenient date parsing, accepting a wider range of date/time input formats.

๐Ÿž Fixed password fields not being masked in operation logs.

๐Ÿž Fixed swapped "Hidden" and "Disable" labels in the menu status enum.

๐Ÿž Fixed an error caused by the AI chat drawer opening outside the Angular zone.

2.0.3 (2026-07-04) Spring Boot 3.5.16 โ€‹

๐ŸŒŸ New erupt-spring-boot-starter and erupt-spring-boot-starter-all starters โ€” integrate Erupt core or every feature module with a single dependency.

๐ŸŒŸ New CALLOUT edit type โ€” render static guidance content inside forms with HTML support and card/info/warning styles; the field is neither collected nor persisted.

๐ŸŒŸ @Search adds an operator property to specify the default query operator per field; AUTO resolves by edit type.

๐ŸŒŸ erupt-print templates now support block-level template variables, with a new editor variable plugin, automatic print-variable generation, and loading feedback in print preview.

๐Ÿงฉ Operation logging enhanced: new record-operate-log-max-body-size property caps the recorded request body size, with improved request-context cleanup.

๐Ÿงฉ Admin home page visual refresh: animated blueprint background, collapsible sidebar, and refined terminal tab styling.

๐Ÿž Fixed unbounded captcha image height parameter that could be abused to generate oversized images.

๐Ÿž Fixed a deserialization error in erupt-designer when the form view field is null.

2.0.1 (2026-06-29) Spring Boot 3.5.15 โ€‹

๐Ÿš€ New modules ร—2 โ€ƒ ๐ŸŒŸ New features ร—21 โ€ƒ ๐ŸŽจ Frontend 50+ updates

WARNING

2.0.0 contains multiple breaking changes. Please read the 1.14.x โ†’ 2.0.0 Upgrade Guide before upgrading.

๐Ÿš€ Open-sourced erupt-designer โ€” visually design Erupt entity models at runtime and publish them to the menu with one click.

๐Ÿš€ Open-sourced erupt-print โ€” define print templates and variables for any Erupt entity and print rows with a single click.

๐ŸŒŸ erupt-monitor completely rewritten: new diagnostics system covering JVM, HikariCP pool, HTTP stats, and Redis health metrics.

๐ŸŒŸ erupt-ai: LLM requests now support agentPrompt and contextPrompt for context-aware prompt injection per invocation.

๐ŸŒŸ @Vis adds Calendar (CALENDAR) and Board (BOARD) view types for richer data visualization.

๐ŸŒŸ @Power adds a copy toggle โ€” supports one-click row duplication in tables.

๐ŸŒŸ @Layout adds collapseActionButton โ€” collapses the view-details, edit, and delete buttons into a dropdown menu.

๐ŸŒŸ New @GroupType annotation โ€” group fields inside a collapsible panel (EditType.GROUP).

๐ŸŒŸ @Erupt and @Edit gain a prompt field for AI agent prompt configuration.

๐ŸŒŸ New PASSWORD edit type โ€” password fields render and transmit more securely.

๐ŸŒŸ Open search support โ€” INPUT, NUMBER, and other components now let users choose the search operator (equals, not-equals, contains, range, etc.) directly in the search bar.

๐ŸŒŸ Dynamic dropdown refresh โ€” ChoiceFetchHandler / AutoCompleteHandler / TagsFetchHandler can now reload options on demand.

๐ŸŒŸ Selection Handler interfaces are now generic โ€” callbacks can directly access other form fields for cascading linkage.

๐ŸŒŸ New FormView โ€” dedicated backend endpoint with DataProxy.formViewBehavior / formSave hooks for single-record full-page form scenarios.

๐ŸŒŸ Excel export supports exporting only selected rows.

๐ŸŒŸ Password encryption upgraded from MD5 to SHA-512 with salt for significantly improved security โ€” thanks to ๆฎต้น้น for the contribution (!35).

๐ŸŒŸ Spring Boot upgraded to 3.5.15.

๐ŸŒŸ Operation logs now record the entity state before modification/deletion โ€” the previous field values are visible in log details.

๐ŸŒŸ erupt-ai adds Requesty as a new LLM provider.

๐ŸŒŸ OpenAPI: new getAppid endpoint to retrieve appid information by token.

๐ŸŒŸ EruptLambdaQuery adds or() support for building OR-logic composite queries.

๐ŸŒŸ erupt-cube: new drillFields dimension filtering and drillMeasure measure-level drill-down support.

๐ŸŒŸ erupt-cube: Cube annotations gain a prompt field for AI-readable semantic descriptions.

๐Ÿงฉ dependField now uses getter-style references with IDE field-name auto-complete.

๐Ÿงฉ erupt-designer: button permissions are now auto-generated when publishing a menu.

๐Ÿž Fixed: Ollama model configuration was missing the baseUrl parameter โ€” thanks to canjian215215 for the contribution.

๐ŸŽจ Frontend Complete Overhaul (erupt-web 2.0)

Angular 20 โ†’ 21. The entire UI layer has been rewritten from architecture to interaction.

  • New login page and preloader animation; new Split Menu mode (first-level nav on left, second-level alongside)
  • Sidebar width is draggable and persisted; favourites support drag-and-drop reordering; responsive layout optimized for mobile
  • Table: column drag-sort, column pinning, column density, row copy, persistent search state, collapsible search panel
  • Left-tree panel is collapsible; table-tree layout supports fullscreen mode
  • AI side panel embedded in table / tree views โ€” chat with AI about visible data without leaving the page
  • erupt-ai chat: wide-screen mode, session search, input-history navigation
  • Code editor: smart hints and fullscreen mode; attachment component: drag-sort and batch update
  • MultiChoice / Checkbox gain a select-all button; Choice shows color dots; input shows real-time character count
  • Tree view: sort, node locate; BI / Monitor modules gain fullscreen improvements
  • Terminal module (erupt-terminal) UI integrated โ€” multi-tab switching with real-time WebSocket communication
  • Table and modal now support dynamic action buttons โ€” visibility can be controlled based on row data state
  • erupt-flow approval UI fully redesigned with mobile-responsive master-detail layout and accessibility improvements
  • TAGS component supports joinSeparator = "[]" JSON array format for tag value storage and parsing

1.14.x โ†’ 2.0.0 Upgrade Guide โ€‹

Full guide: /en/guide/upgrade

Breaking Changes

  • Password encryption upgraded: MD5 โ†’ SHA-512 with salt. The upgrade is backward compatible โ€” existing users can still log in with their current passwords; only new and reset passwords will use SHA-512 + salt going forward. Thanks to ๆฎต้น้น for this security improvement.
  • DataProxy.extraContent signature changed: A second parameter Collection<Map<String, Object>> list has been added. Any class that overrides this method must update its signature.
  • AutoCompleteHandler, ChoiceFetchHandler, TagsFetchHandler require a generic type parameter: The fetchFilter method's formData parameter (Map<String,Object>) has been replaced with the actual model object (generic T).
  • Excel import template format changed from .xls to .xlsx: Users with cached or bookmarked download links must re-download the template.
  • @Search.vague removed: The vague property has been deleted. Remove all vague = true / vague = false from your code โ€” advanced search is now the default behaviour.
  • EruptApiModel deleted: The response model is now R<T>. Replace EruptApiModel.PromptWay with R.PromptWay throughout your code.
  • ChoiceTrigger interface removed: Use @ChoiceType.fetchHandler instead.
  • Login / change-password endpoints switched to HTTP POST: /login and /change-pwd changed from GET to POST. Custom login pages must be updated accordingly.

Legacy Versions โ€‹

Changelogs and documentation for the 1.x release line have moved to the Legacy Versions page.

Contributors

The avatar of contributor named as YuePeng YuePeng
The avatar of contributor named as Claude Opus 5 (1M context) Claude Opus 5 (1M context)

Changelog

Released under the Apache-2.0 License.