v0.1.0-MVP · Spring Boot 3.x

Annotation-first governed reports for Spring Boot.

Generate PDFs, Excel workbooks, HTML reports, and SQL-powered dynamic spreadsheets with clean Java code, trusted SQL definitions, secure downloads, and production-ready defaults.

SQL-first Excel reporting: turn trusted queries into styled, secure, multi-sheet workbooks.

DTOorTrusted SQLtoGeneratedReport
Annotation-driven SQL-first Excel Tenant-aware exports UUID download lifecycle
InvoiceReportDto.java
@ReportTemplate(
    code = "invoice-basic",
    title = "Basic Invoice",
    templateFile = "classpath:/report-boot/report-templates/invoice.jrxml",
    output = ReportOutput.PDF
)
@ReportEngineType(ReportEngine.JASPER)
@ReportSecured(watermark = true, expiryMinutes = 30)
@ReportFileName("invoice-${invoiceNumber}.pdf")
public class InvoiceReportDto {
    @ReportField("invoiceNumber")
    @ReportRequired
    private String invoiceNumber;

    @ReportTable("items")
    private List<InvoiceItemDto> items;
}
InvoiceSqlReportDefinition.java
SqlReportSheet invoices = SqlReportSheet.builder()
    .sheetName("Invoices")
    .sqlDefinition("reports/sql/monthly-invoices.sql")
    .sortBy("Department", "Invoice Date")
    .groupBy("Department")
    .betweenGroupSpaceRows(3)
    .excel(excel -> excel
        .column("Total", column -> column
            .format(CurrencyExcelFormats.USD)
            .backgroundColor(ExcelColors.SOFT_BLUE))
        .formulaColumn("VAT", column -> column
            .ROUND("[Total] * 0.15", 2))
        .summaryFooter(footer -> footer
            .label("Totals")
            .SUM("Grand Total")))
    .build();
Choose your path

Simple where it should be. Powerful where it needs to be.

Report Boot does not force every report into one authoring model. Start from the contract that matches the job and keep the same governed runtime underneath.

Annotation reports

Put report intent beside the Java model.

Describe the template, engine, filename, fields, tables, access, watermark, and expiry directly on the report DTO. Spring discovers and registers the report contract.

  • Best for invoices, statements, letters, and governed documents
  • Works with Jasper, JXLS, BIRT, and Thymeleaf providers
  • Minimal controller code through the shared ReportService
Read this path
SQL and Excel

Create business workbooks as code.

Connect trusted SQL to a fluent workbook definition with named columns, formulas, formats, filters, groups, summaries, charts, slicers, and metadata.

  • Best for operational exports, analysis, and large datasets
  • Column names remain the developer-facing formula contract
  • Supports streaming, tenant safety, and multi-sheet output
Read this path
InvoiceReportDto.java
@ReportTemplate(
    code = "invoice-basic",
    title = "Basic Invoice",
    templateFile = "classpath:/report-boot/report-templates/invoice.jrxml",
    output = ReportOutput.PDF
)
@ReportEngineType(ReportEngine.JASPER)
@ReportSecured(watermark = true, expiryMinutes = 30)
@ReportFileName("invoice-${invoiceNumber}.pdf")
public class InvoiceReportDto {
    @ReportField("invoiceNumber")
    @ReportRequired
    private String invoiceNumber;

    @ReportTable("items")
    private List<InvoiceItemDto> items;
}
InvoiceWorkbookDefinition.java
SqlReportSheet invoices = SqlReportSheet.builder()
    .sheetName("Invoices")
    .sqlDefinition("reports/sql/monthly-invoices.sql")
    .sortBy("Department", "Invoice Date")
    .groupBy("Department")
    .betweenGroupSpaceRows(3)
    .excel(excel -> excel
        .column("Total", column -> column
            .format(CurrencyExcelFormats.USD)
            .backgroundColor(ExcelColors.SOFT_BLUE))
        .formulaColumn("VAT", column -> column
            .ROUND("[Total] * 0.15", 2))
        .summaryFooter(footer -> footer
            .label("Totals")
            .SUM("Grand Total")))
    .build();
One runtime

A report lifecycle teams can understand and operate.

The same lifecycle governs annotation reports, SQL Excel workbooks, scheduled email delivery, one-time download links, storage, and centralized insight logs.

  1. 01

    Describe

    Annotated DTO or trusted SQL definition

  2. 02

    Resolve

    Template, provider, parameters, and tenant

  3. 03

    Render

    PDF, XLSX, CSV, HTML, or email

  4. 04

    Govern

    UUID, policy, watermark, expiry, and audit

  5. 05

    Deliver

    Download, scheduled email, or application flow

Excel dashboards

Generate workbook experiences, not raw data dumps.

Build filterable tables, KPI cells, charts, slicers, calculation columns, and metadata sheets from Java configuration. The output remains a real Excel workbook your users can inspect and continue working with.

invoice-sliced-dashboard.xlsx

Slicers, KPIs, trends, comparison charts, and interactive business exploration.

Dashboard sheet from a Report Boot generated Excel dashboard
Interactive filtersTables, auto-filters, and slicers remain usable in Excel.
Named calculationsReference business columns, including generated formula columns.
Grouped headersMerge parent headers over related columns and repeat them per group.
Governed contextShip UUID, parameters, request data, and the data dictionary.
Framework capabilities

Developer convenience with enterprise guardrails.

Reporting library

Report-Boot core

Provider engines, SQL outputs, secure delivery, custom governance, and performance in one starter.

JasperJXLSBIRTThymeleafCSV
SQL & Excel

SQL-driven Excel intelligence

Dynamic outputs, formulas by column name, grouping, summaries, metadata, and streaming workbooks.

FormulasGroupingSlicersStreamingMetadata
Governance

Governed report delivery

Secure links, expiry, checksum, email delivery, scheduler flows, and wrapped custom exporters.

UUID accessExpiryChecksumEmailScheduler
01
Capability

Core reporting pipeline

Generate, store, secure, and download reports through one Spring Boot service contract.

Report-Boot · Implemented
02
Capability

Annotation contracts

Keep template, engine, output, fields, filename, security, and formatting visible beside the DTO.

Report-Boot · Implemented
03
Capability

Multi engine rendering

Use Jasper, JXLS, BIRT, Thymeleaf, Dynamic Excel, and CSV through one application pattern.

Report-Boot · Implemented
04
Capability

SQL dynamic outputs

Turn trusted SQL definitions into Excel and CSV exports with named parameters and tenant controls.

Report-Boot · Implemented
05
Capability

Excel intelligence

Generate styled workbooks with formulas by column name, grouping, summaries, filters, and metadata sheets.

Report-Boot · Implemented
06
Capability

Secure download lifecycle

Protect generated reports with UUID access, expiry, checksum, requested-by tracking, and safe errors.

Report-Boot · Implemented
07
Capability

Email delivery

Send generated report attachments or secure links through manual and scheduled email workflows.

Report-Boot · Implemented
08
Capability

Custom report governance

Wrap existing byte array, stream, or file exporters with Report-Boot validation, delivery, and security.

Report-Boot · Implemented
09
Capability

Performance and large data

Control memory and runtime with streaming Excel, fetch size, timeouts, row limits, and parallel SQL sheets.

Report-Boot · Implemented
10
Capability

Developer experience

Adopt quickly with Spring Boot auto-configuration, YAML defaults, demos, provider docs, and Postman examples.

Report-Boot · Implemented
The road ahead

From a library to the report agent for Spring Boot.

Report-Boot is the foundation. Next phases bring frontend-ready report widgets, a dashboard designer, an insights product for monitoring, an AI assistant baked into every template, and a no-code report builder that emits the template + DTO for you.

Phase 2Frontend

Frontend-ready reports

React / Angular components that render Report-Boot HTML output natively — print, preview, download, share. Drop into any dashboard.

ReactAngularPrintShare
Phase 3Studio

Report Boot Studio

Design dashboards visually. Studio generates ready APIs and DTOs for Spring Boot integration — you only inject the data.

DashboardsAuto APIsAuto DTOSpring Boot
Phase 3Insights

Report-Boot Insights

Monitoring product for every generated report: run history, latency, failure rates, user access, and delivery health across tenants.

MonitoringAuditLatencyDelivery
Phase 4No-code

Visual report builder

Drag fields, tables and groups in the browser; export a ready-to-inject template and a fully annotated DTO. A direct competitor to today's no-code report agents.

Drag & dropTemplateAnnotated DTO
Phase 4AI

AI assistant per template

Every template ships with a ready prompt so your IDE or agent can wire the DTO, controller, and sample data automatically.

PromptCopilotCodegen
Phase 5Agent

Report agent

Natural-language report requests resolved into governed Report-Boot pipelines with security, delivery, and audit intact.

NL to reportGovernedAudit
Five-minute start

Add the starter, select a provider, and build the report.

The documentation now includes capability-specific Maven and YAML templates, complete property dictionaries, demo APIs, Postman flows, and cookbook examples.

pom.xml
<dependency>
  <groupId>com.reportboot</groupId>
  <artifactId>report-boot-spring-boot-starter</artifactId>
  <version>0.1.0-MVP</version>
</dependency>

<!-- Add only the provider your report uses. -->
<dependency>
  <groupId>com.reportboot</groupId>
  <artifactId>report-boot-excel</artifactId>
  <version>0.1.0-MVP</version>
</dependency>
Build with confidence

One reporting framework. Two simple authoring paths. A shared enterprise lifecycle.

Start with a real demo, inspect every configuration property, and grow from a local report to scheduled, secure, observable delivery without replacing the foundation.

Open the developer guide

Share Report Boot

Built for developer teams shipping reports at scale

Report Boot - annotation-first reporting for Spring Boot