Erupt Report
Erupt Report is the general-purpose reporting and charting module of the erupt ecosystem. Define reports and charts with pure SQL and perform multi-dimensional data analysis with zero frontend code. Charts are rendered by G2Plot, with 20+ chart types, a dozen query dimension components, column drill-down, chart-dimension linkage, Excel export, and report caching.
🎉 Open Source Notice
Erupt Report (formerly the commercial erupt-bi module) is officially open-sourced with Erupt 2.1.0.
Live demo: https://demo.erupt.xyz Username: bi Password: bi



Why not DataEase / Superset / in-house?
| Dimension | In-house ECharts | DataEase / Superset | Erupt Report |
|---|---|---|---|
| Deployment cost | 0 (embedded in your app) | Separate BI server + database | 0 (embedded in your app) |
| Tech stack | Frontend + backend to maintain | Java/Vue + Python/Node stacks | Pure Java + SQL |
| Permissions | Reimplement from scratch | Separate user system to sync | Reuses Erupt UPMS, zero extra work |
| Drill-down / linkage | 1–2 weeks each to build | High configuration barrier | Available out of the box |
| Time to production | Weeks | Days + cross-team coordination | 30 minutes |
Getting Started
Add the dependency
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-report</artifactId>
<version>${erupt.version}</version>
</dependency>TIP
The module targets Java 17 and works with erupt 2.x. It depends on erupt-upms (permissions) and erupt-tpl (template pages), and bundles the standalone nashorn-core JS engine — no extra dependency needed.
Configuration
erupt:
bi:
enable-cache: true # enable report cache
query-log: true # log query SQL
super-admin-publish: false # restrict publishing to super admins
page-size: 10 # default page size
page-size-options: [10, 30, 50, 100] # selectable page sizes
single-max-result-num: 500 # max rows per backend-pagination queryFeature Guide
| Feature | Description |
|---|---|
| Data Sources | Configure multiple data sources to analyze data across different databases |
| Report Handlers | Dynamically process report SQL and query results with Java code |
| Reference Dimensions | Generate dropdown lists or trees as query conditions from SQL results |
| Function Management | Mix JS functions into SQL for dynamic SQL capabilities |
| Report Configuration | Core configuration: reports, charts, query dimensions, dynamic columns, drill-down |
| Publishing Reports | Publish configured reports as system menus |
| FAQ | ES6 syntax, default values, and more |