/report-cockpit-birt-web

ReportingCockpit for BIRT Reports

Primary LanguageJavaApache License 2.0Apache-2.0

Report Cockpit for BIRT Reports

This projects provides an easy to integrate and enhanced BIRT Web-Viewer based on Spring WebMVC, Thymeleaf and Bootstrap. The Projects consist of two parts. First, is the REST-API to render reports. Second, it provides an modern Front-End based on Bootstrap and JQuery to be easily customized.

Build Status

Build Status

Documentation

Configuration

For security and branding configuration see src/main/resources/config.properties. Be aware that the file will generated on the first mvn initialize.

Per default the security is disabled:

security.enabled=false

Per default inmemory authentication is activated:

ldap.authentication=false

The default username (e-mail) and password are:

ldap.inmemory.user=birt@test.de
ldap.inmemory.password=birt

For report engine specific configuration see report-config.properties and BirtReportService.java.

report.base.image.url=/reportimages
report.image.directory=/${java.io.tmpdir}/reportimages/
report.image.contextpath=/report-cockpit-birt-web
report.source.url=classpath:/reports/

Authorisation and the Security Domain Model

This is currently under development!

The simple authorization mechanism is based on a match between a user, a role and a report. Each user that wants to access a report should be included in a specific role which in turn has an access to that given report. For instance, to open a report with the name multiselect the user birt must be a member of the role role_company and this specific role has access to multiselect report.

For details see the uml class diagram. Domain Model

To generate the source code from the model we use NoMagic MagicDraw and KissMDA.

RESTful-API

Pagination

It is still in progress!

  • To request a specific page you can call http://localhost:8080/report-cockpit-birt-web/reports/chart/1.

  • reports/<reportName>/<pageNumber>?[__recreate=true]&.... Normally the requested report is cached as long as specific pages are requested. That guarantees that the next page is generated on the same data as the previous one. If the report parameters has been changed or the report must provide new data you can force an recreate and overwrite of the cached data by a request parameter __recreate=true

  • JSON to customize Reports

{
    "reportName": <REPORT_NAME>,
    "format": <"html" | "pdf" | "xls" | "xlsx">,
    "parameters": [{<key>:<value>}...]
};