Skip to content
ReportShell ReportShell Documentation

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.

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.

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 JasperPrint documents 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 BindingResult with 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 AuthorizationService that 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.