What is ReportShell?
ReportShell™ is a lightweight embedded web reporting framework and report viewer for Spring Boot applications. It turns your compiled JasperReports® files into ready-to-use REST APIs for dynamic parameter forms, cascading controls, rendering, persistent executions, and multi-format exports.
It also includes a built-in viewer controller that serves a report viewer page, letting your users preview, run, and export reports through the same REST APIs.
Unlike a standalone reporting server, ReportShell is delivered as a Spring Boot starter. Drop it into your application, point it at your compiled reports, and you have a complete reporting backend running. This means:
- No extra reporting server to deploy and manage
- ReportShell runs inside your existing Spring application
- It naturally reuses your application’s configuration, security, and data sources
ReportShell is API-first: developers use its REST APIs to build report viewer UIs for their JasperReports reports with any frontend framework. It intentionally mirrors JasperReports® Server (JRS) endpoint names and schemas where it makes sense, so teams familiar with JRS can adopt the framework with a smaller mental-model shift.
Key Features
Section titled “Key Features”ReportShell provides REST APIs for:
- Dynamic Parameter Forms: Endpoints that return input controls list and load control data using control query definitions. These APIs enable developers to build dynamic parameter forms.
- Persistent Executions: Endpoints for managing stored print documents and related metadata for later navigation and export.
- Exports: Endpoint for exporting reports on-demand or from stored print documents associated with previously saved persistent executions.
Core Capabilities
Section titled “Core Capabilities”Dynamic Parameter Forms
- Automatically resolves input control metadata by parsing JasperReports JRXML metadata and parameter Java types
- Supports cascading relationships when queries reference other parameters
- Supports multi-valued controls and simple UI data types such as Number, String, Date, etc. for implementing flexible report viewer web UIs
- Default value expression evaluation for initial control states
Flexible Report Processing
- Run and render JasperReports reports immediately with direct fill and export
- Store
JasperPrintdocuments as persistent executions for reuse across multiple exports - Support paginated viewing via persistent executions without re-running the report
Control Binding
- Automatic parameter conversion from web request data to report parameter types
- Binding via Spring’s standard binding constructs such as
BindingResultwith support for nested binding errors for multi-valued controls. - Customizable via events published before and after binding
Export Options
- Export to all formats supported by built-in JasperReports Library exporters or your own custom exporters with format-specific export options
- Single page or page range exports
- Zoom option for HTML exports
- Customization through exporter overrides or global customizers acting on all exporters
Security
- Per-report access checks through a user-defined
AuthorizationServicethat can easily integrate with Spring Security
© 2026 Bivektor Inc. All rights reserved. ReportShell™
is a trademark of Bivektor, Inc.
Questions? Email us at reportshell@bivektor.com.
JasperReports® and Jaspersoft® are trademarks of Cloud Software Group, Inc. and/or its subsidiaries. Eclipse BIRT™ and BIRT™ are trademarks of the Eclipse Foundation. Spring® is a trademark of Broadcom Inc. and/or its subsidiaries. React is a trademark of Meta Platforms, Inc. ReportShell and Bivektor, Inc. are not affiliated with, endorsed by, sponsored by or otherwise associated with the owners of the JasperReports®, Jaspersoft®, Spring®, Eclipse BIRT™, BIRT™ or React marks. Any reference to these or other trademarks on this site is made solely for informational, descriptive, comparative and interoperability purposes.