Release Notes for ReportServer 4.1.0

These release notes reflect the changes with respect to ReportServer 4.0.0.

Some Important Features and Noteworthy Improvements for ReportServer RS4.1.0

Groovy 4 Support

ReportServer 4.1.0 now supports the newest Groovy 4.0.0 version, which contains many awesome new features and capabilities. Check the Groovy 4 release notes for details.

BIRT Upgrade

The BIRT libraries were upgraded to the newest version 4.9.0. More information can be found here.

"Write" permissions additionally needed for editing report variants

As of ReportServer 4.1.0, "Write" permissions are needed in able to edit, create or delete a report variant. Previously, only "Execute" permissions were needed.

Support sending dynamic list reports to Table Datasinks

Table datasinks allow you to send and/or schedule dynamic list reports into to a given table in any datasource supported by ReportServer. This allows you to easily transfer data from MySQL to Oracle, for example. The destination table must exist and must be compatible with the dynamic list, i.e. the fields must exist, have the same name, and have compatible data types.

Check permissions by via "haspermission" terminal command

As of ReportServer 4.1.0 you can check permissions via the new "haspermission" terminal command.

The command allows to check if a given user has a given permission on a given target. Returns "true" if the user has the permission, else "false".

The -g flag allows to check generic permissions. Documentation of these including the exact target types you can enter can be found here.

For other objects, e.g. Users, Datasources, etc., you can check the entity types here.

The following example checks if the user with id "6" has "Execute" permission on the "AccessRsSecurityTarget" generic target, i.e. if the user is allowed to log in into ReportServer.

The following example checks if the user with id 115254 has "Read" permission on the datasource with id 144497.

Check is a table exists via "tableExists" terminal command

The "tableExists" terminal command allows you to check the existence of the "T_AGG_CUSTOMER" table as shown in the following example.

Check is a column list exists in a given table via "columnsExist" terminal command

The "columnsExist" terminal command allows you to check the existence of a column list (CUS_CITY, myColumn) in the "T_AGG_CUSTOMER" table as shown in the following example.

Fetch column metadata of a given table via "columnsMetadata" terminal command

The "columnsMetadata" allows you to fetch column metadata of the "T_AGG_CUSTOMER" table as shown in the following example.

Metadata documentation of the fields above can be found here. The first 8 columns are displayed by default and CHAR_OCTET_LENGTH is an optional column in the example above. You can choose to append any number of the listed column-description columns by passing their name as an argument.

Advanced: Fetch any datasource metadata via "datasourceMetadata" terminal command

The "datasourceMetadata" command is a very powerful command that allows you to dynamically call any method of the DatabaseMetaData interface.

There are any number of applications for this. You will need to specify the datasource you want to access, the name of the method you want to execute and its parameters. The command will look up a method matching the name and argument count. If there is exactly one matching method it will be executed.

Arguments passed are converted into the expected parameter types as need. Supplying the String "null" will evaluate to null as an Object. Examples:

Lookup JDBC minor/major version and driver

Fetch column metadata similar to the columnsMetadata example

Fetch information about your datasource with via "info datasource" terminal command

Now you will be able to display some selected meta-data about your datasource from within the terminal. It features 4 sections: general information, url information, functions section and supports section. If you require more information still, use the "datasourceMetadata" terminal command as mentioned here.

Example:

Note that this information is also available in the new datasource information window as shown in the following screenshots.

Include internal datasource information on "env" terminal command and "General Info" System Console

The "env" terminal command now includes information on your internal datasource. Note that this internal datasource has to be set in the /fileserver/etc/datasources/internaldb.cf configuration file.

Terminal operators >, >> and >>>

All terminal command results can now be redirected either to a file in the internal ReportServer filesystem (> for new files and >> for appending results), or to an existing datasink (>>>). In such way, you can send long command results per email, OneDrive - SharePoint (O365), etc.

Test LDAP configuration via "ldaptest" terminal command

You can now test your LDAP configuration with the new "ldaptest" terminal command and its subcommands as shown in the examples below.

ldaptest filter

ldaptest users

ldaptest groups

ldaptest organisationalUnits

The following screenshot shows the corresponding "ldapimport" results:

Find the base root of a onedrive-drive belonging to a group via "onedrive" terminal command

The "onedrive" terminal command allows you to access some onedrive api functions from within ReportServer. As of now it has the following commands: onedrive group getmygroups & onedrive group getdrivesof.

The following example shows how to acquire a driveId of group you belong to in order to configure the baseroot of a onedrive datasink.

Use onedrive group getmygroups to see which groups you belong to

Use the groupId of the group to acquire its drives with onedrive group getdrives of

Use the driveId to configure the baseroot of the datasink as such /drives/your-driveid/root:

Allow to test the SSL configuration via "ssltest" terminal command

The "ssltest" command allows you to test your SSL configuration as shown in the screenshot below.

In case you installed a server's certificate, for example for LDAPS or LDAP StartTLS, this command is useful for testing the installed certificate analogously to the following: "ssltest ipOrHostOfYourServer 10389"

New Features, Improvements and Bug Fixes for ReportServer RS4.1.0-6058

RS-5171 New Feature Include internal datasource information in "env" terminal command
RS-5408 New Feature Add Table datasinks
RS-5440 New Feature Allow to fetch OneDrive-SharePoint groups by "onedrive group getmygroups" terminal command
RS-5441 New Feature Allow to fetch drives of given OneDrive-SharePoint group by "onedrive group getdrivesof" terminal command
RS-5450 New Feature Add example for listing all users, groups, OUs and their group and OU memberships: usersOusAndGroups.groovy
RS-5451 New Feature Adapt excel2csv.groovy example to insert transposed results into database table
RS-5456 New Feature Add schedulerjobs.groovy example for listing all scheduler jobs
RS-5463 New Feature Add usersInTeamspace.groovy example for listing all users in teamspaces
RS-5465 New Feature Allow to check permissions for a given user and a given generic target with "haspermission" terminal command
RS-5466 New Feature Allow to check permissions for a given user and a given object with "haspermission" terminal command
RS-5485 New Feature Add "ldaptest filter" terminal command for testing LDAP filter configuration
RS-5496 New Feature Allow to check if table exists with "tableExists" terminal command
RS-5512 New Feature Table datasinks: stream table data while copying
RS-5514 New Feature Table datasinks: allow to configure batch size
RS-5520 New Feature Table datasinks: allow to configure destination primary keys and to copy destination primary keys
RS-5522 New Feature Table datasinks: support scheduling
RS-5524 New Feature Table datasinks: add "stream table" export type
RS-5567 New Feature Table datasinks: Support database bundles
RS-5570 New Feature Allow to check if a column list exists in a given table with "columnsExist" terminal command
RS-5572 New Feature Fetch table's column metadata by "columnsMetadata" terminal command
RS-5575 New Feature Allow to retrieve any datasource metadata information using the new "datasourceMetadata" terminal command
RS-5576 New Feature Allow showing additional column metadata with "columnsMetadata" terminal command
RS-5578 New Feature Add ReportServer mapped type name to "columnsMetadata" results
RS-5582 New Feature Allow to display tabled metadata information using the new "datasourceMetadata" terminal command
RS-5583 New Feature Add >>> terminal operator for allowing to send terminal command results to any datasink
RS-5585 New Feature Add "ldaptest users" terminal command for displaying LDAP users and their attributes
RS-5589 New Feature Add "ssltest" terminal command for testing SSL configuration
RS-5591 New Feature Add "ldaptest groups" terminal command for displaying LDAP groups and their attributes
RS-5592 New Feature Add "ldaptest organisationalUnits" terminal command for displaying LDAP organisational units and their attributes
RS-5598 New Feature The "ldaptest" terminal commands should show "parent" attributes in the results
RS-5599 New Feature The "ldaptest groups" terminal command should show the group members in the results
RS-5606 New Feature Add "info datasource" terminal command for displaying metadata on given datasource
RS-5607 New Feature Add datasource information window with relevant datasource data
RS-5609 New Feature Add > and >> terminal operators for allowing to send/append terminal command results to files in internal filesystem
RS-5448 Improvement Adapt script examples and templates to work with latest release
RS-5452 Improvement Adapt excel2csv.groovy example to allow a loop of files
RS-5453 Improvement Adapt excel2csv.groovy example to allow moving the files after processing to an archive directory
RS-5454 Improvement Adapt excel2csv.groovy example to send a delete statement for the current file before processing it
RS-5462 Improvement Adapt id terminal command and user group information to distinguish between direct and indirect groups
RS-5481 Improvement GeneralInfoServiceImpl and HaspermissionCommand should not be enterprise-checked
RS-5497 Improvement "copyTableContents" terminal command should check if source and destination tables exist
RS-5501 Improvement Table datasinks: show table datasinks options only in dynamic lists
RS-5502 Improvement Table datasinks: allow to select only database datasources in datasource selection window
RS-5507 Improvement Upgrade groovy to 4.0.1
RS-5509 Improvement Table datasinks: values should contain SQL types while inserting them into the destination table
RS-5511 Improvement Table datasinks: check if destination table exists
RS-5518 Improvement Check for column name compatibility before exporting into table datasinks
RS-5521 Improvement Table datasinks: check if all given primary keys exist in the destination table
RS-5526 Improvement Table datasinks : Allow only "stream table" export type for table datasink send-to
RS-5527 Improvement Table datasinks: scheduler window should only allow table datasink option when selecting "stream table" format
RS-5528 Improvement Table datasinks: refactor to EE
RS-5529 Improvement Upgrade hibernate-core to 5.6.7.Final
RS-5530 Improvement Refactor LdapService
RS-5531 Improvement Remove unnecessary code from SchedulerExportConfigurationForm
RS-5532 Improvement Table datasinks: adapt height of scheduler report in case of stream table
RS-5533 Improvement Table datasinks: refresh export dialog in scheduler window when changing format
RS-5534 Improvement Table datasinks: scheduler window should not show table datasink option when not selecting "stream table" format
RS-5538 Improvement Ldapimport: allow to set/remove writeProtection even if nodes are already imported
RS-5539 Improvement Remove unnecessary groovy-console-3.0.9.jar dependency
RS-5540 Improvement Upgrade groovy-astbuilder to 4.0.1
RS-5541 Improvement Upgrade groovy-cli-picocli to 4.0.1
RS-5542 Improvement Upgrade groovy-datetime to 4.0.1
RS-5543 Improvement Upgrade groovy-dateutil to 4.0.1
RS-5544 Improvement Upgrade groovy-json to 4.0.1
RS-5545 Improvement Upgrade groovy-jsr223 to 4.0.1
RS-5546 Improvement Upgrade groovy-macro to 4.0.1
RS-5547 Improvement Upgrade groovy-nio to 4.0.1
RS-5548 Improvement Upgrade groovy-servlet to 4.0.1
RS-5549 Improvement Upgrade groovy-sql to 4.0.1
RS-5550 Improvement Upgrade groovy-templates to 4.0.1
RS-5551 Improvement Upgrade groovy-xml to 4.0.1
RS-5552 Improvement Upgrade picocli to 4.6.3
RS-5553 Improvement Table datasinks: add table datasinks to demo data
RS-5559 Improvement Upgrade groovy-sandbox to 1.26-jaspersoft-2
RS-5560 Improvement Upgrade byte-buddy to 1.12.8
RS-5561 Improvement Upgrade hibernate-c3p0 to 5.6.7.Final
RS-5562 Improvement Upgrade hibernate-entitymanager to 5.6.7.Final
RS-5563 Improvement Upgrade hibernate-envers to 5.6.7.Final
RS-5564 Improvement Upgrade jandex to 2.4.2.Final
RS-5565 Improvement Upgrade jboss-logging to 3.4.3.Final
RS-5571 Improvement Refactor "sql" terminal command to datasourcemanager package
RS-5577 Improvement Refactor DatasourceEEService and terminal commands into CE
RS-5580 Improvement Refactor OneDriveService to use groovy
RS-5581 Improvement Refactor terminal object-fetching methods to type-independent method getSingleObjectOfTypeByQuery()
RS-5587 Improvement Refactor LDAP package to EE
RS-5594 Improvement Refactor LDAP Service for better ldaptest support
RS-5597 Improvement Better LDAP error messages
RS-5600 Improvement Include table structure description in String representation of CommandResultTable
RS-5604 Improvement >>> terminal operator should include current date and time in the exported filename
RS-5608 Improvement Refactor DatasourceHelperService and commands to net.datenwerke.rs.base.service.datasources
RS-5618 Improvement Improve text wrapping/scrolling in "datasource information" window
RS-5619 Improvement Perform a connection test before showing "datasource information" window
RS-5620 Improvement Refactor > and >> terminal operators
RS-5624 Improvement Upgrade birt-runtime to 4.9.0-20220315
RS-5641 Improvement Upgrade pdfbox to 2.0.24
RS-5642 Improvement Upgrade fontbox to 2.0.24
RS-5643 Improvement Upgrade batik-anim to 1.14
RS-5644 Improvement Upgrade batik-awt-util to 1.14
RS-5645 Improvement Upgrade batik-bridge to 1.14
RS-5646 Improvement Upgrade batik-codec to 1.14
RS-5647 Improvement Add batik-constants-1.14.jar dependency
RS-5648 Improvement Upgrade batik-css to 1.14
RS-5649 Improvement Upgrade batik-dom to 1.14
RS-5650 Improvement Upgrade batik-ext to 1.14
RS-5651 Improvement Upgrade batik-extension to 1.14
RS-5652 Improvement Upgrade batik-gvt to 1.14
RS-5653 Improvement Add batik-i18n-1.14.jar dependency
RS-5654 Improvement Upgrade batik-parser to 1.14
RS-5655 Improvement Upgrade batik-script to 1.14
RS-5657 Improvement Add batik-shared-resources-1.14.jar dependency
RS-5658 Improvement Upgrade batik-svg-dom to 1.14
RS-5659 Improvement Upgrade batik-svggen to 1.14
RS-5660 Improvement Upgrade batik-transcoder to 1.14
RS-5661 Improvement Upgrade batik-util to 1.14
RS-5662 Improvement Upgrade batik-xml to 1.14
RS-5663 Improvement Upgrade fop to 2.7
RS-5664 Improvement Add fop-core-2.7.jar dependency
RS-5665 Improvement Add fop-events-2.7.jar dependency
RS-5667 Improvement Add fop-util-2.7.jar dependency
RS-5668 Improvement Upgrade xmlgraphics-commons to 2.7
RS-5669 Improvement Add qdox-1.12.jar dependency
RS-5670 Improvement Add xml-apis-1.4.01.jar dependency
RS-5672 Improvement Upgrade commons-jexl3 to 3.2.1
RS-5673 Improvement Remove unnecessary commons-jexl-2.0.1.jar dependency
RS-5674 Improvement Print internal database metadata in tomcat logs during startup
RS-5675 Improvement Include internal datasource info in "General Info" System Console
RS-5676 Improvement Report variant "save" button should not be shown in the UI if the user does not have write and execute rights on report
RS-5677 Improvement Grid Editor "save" button should not be shown in the UI if the user does not have write and execute rights on report
RS-5678 Improvement "Write" permissions additionally needed for commiting grid report changes
RS-5681 Improvement Allow to specify column display sizes in terminal table definitions
RS-5684 Improvement "Write" permissions additionally needed for editing, creating and deleting report variants
RS-5686 Improvement Report variant "delete" button should be disabled in the UI if the user does not have write, delete and execute rights on report
RS-5469 Bug excel2csv.groovy: File filter is not working in some cases
RS-5470 Bug excel2csv.groovy: BLANK cell files are being ignored
RS-5472 Bug excel2csv.groovy: Input files should only be archived if no errors happened
RS-5519 Bug Table datasinks: export is not using parameters or computed columns
RS-5554 Bug Demo data installer is not deleting old datasinks
RS-5603 Bug DatasourceHelperServiceImpl is using EE services
RS-5614 Bug Localfilesystem datasink scheduler jobs are sending incorrect email text
RS-5615 Bug "Stream table" should only be shown in scheduler when scheduler in table datasinks is enabled
RS-5617 Bug "datasource information" window is not working for other datasource types
RS-5623 Bug DateTimeOffset datatype is not working

New Features, Improvements and Bug Fixes for ReportServer RS4.1.0-6059

RS-5704 Bug Terminal command --help is not working

New Features, Improvements and Bug Fixes for ReportServer RS4.1.0-6060

RS-5190 New Feature Allow to send log files to any datasink with "listlogfiles" terminal command
RS-5700 Improvement Print max memory in "General Info" system console
RS-5701 Improvement Print max memory in startup logs
RS-5717 Improvement Upgrade h2 to 2.1.212
RS-5718 Improvement Upgrade mariadb to 3.0.4
RS-5719 Improvement Upgrade postgresql to 42.3.3
RS-5720 Improvement Upgrade liquibase-core to 4.9.1
RS-5721 Improvement Upgrade log4j-over-slf4j to 1.7.36
RS-5724 Improvement Upgrade fr.opensagres.xdocreport.core to 2.0.3
RS-5725 Improvement Upgrade logback-core to 1.2.11
RS-5733 Improvement Upgrade owasp-java-html-sanitizer to 20211018.2
RS-5734 Improvement Upgrade codemirror to 5.65.2
RS-5735 Improvement Upgrade pdf.js to 2.13.216
RS-5739 Improvement Remove unnecessary ooxml-security-1.1.jar dependency
RS-5740 Improvement Upgrade bcprov-jdk18on to 1.71
RS-5741 Improvement Upgrade bcpg-jdk18on to 1.71
RS-5742 Improvement Upgrade bcpkix-jdk18on to 1.71
RS-5743 Improvement Upgrade bcmail-jdk18on to 1.71
RS-5744 Improvement Upgrade bcutil-jdk18on to 1.71
RS-5745 Improvement Upgrade logback-classic to 1.2.11
RS-5746 Improvement Upgrade slf4j-api to 1.7.36
RS-5747 Improvement Upgrade slf4j-ext to 1.7.36
RS-5748 Improvement Upgrade slf4j-jdk14 to 1.7.36
RS-5749 Improvement Upgrade jcl-over-slf4j to 1.7.36
RS-5750 Improvement Upgrade jul-to-slf4j to 1.7.36
RS-5751 Improvement Upgrade fr.opensagres.xdocreport.converter to 2.0.3
RS-5752 Improvement Upgrade fr.opensagres.xdocreport.document.docx to 2.0.3
RS-5753 Improvement Upgrade fr.opensagres.xdocreport.document to 2.0.3
RS-5754 Improvement Upgrade fr.opensagres.xdocreport.template.velocity to 2.0.3
RS-5755 Improvement Upgrade fr.opensagres.xdocreport.template to 2.0.3
RS-5757 Improvement Print max memory in "env" terminal command

New Features, Improvements and Bug Fixes for ReportServer RS4.1.0-6061

RS-5763 Improvement Upgrade postgresql to 42.3.4
RS-5766 Improvement Upgrade xdocreport to 2.0.3
RS-5771 Improvement Remove unnecessary fr.opensagres.xdocreport.converter-2.0.3.jar dependency
RS-5772 Improvement Remove unnecessary fr.opensagres.xdocreport.core-2.0.3.jar dependency
RS-5773 Improvement Remove unnecessary fr.opensagres.xdocreport.document.docx-2.0.3.jar dependency
RS-5774 Improvement Remove unnecessary fr.opensagres.xdocreport.document-2.0.3.jar dependency
RS-5775 Improvement Remove unnecessary fr.opensagres.xdocreport.template.velocity-2.0.3.jar dependency
RS-5776 Improvement Remove unnecessary fr.opensagres.xdocreport.template-2.0.3.jar dependency
RS-5777 Improvement Remove unnecessary geronimo-jta+1.1+spec-1.1.1.jar dependency
RS-5778 Improvement Remove unnecessary hibernate-jpa-2.1-api-1.0.2.Final.jar dependency
RS-5779 Improvement Upgrade hibernate-core to 5.6.8
RS-5780 Improvement Upgrade hibernate-validator to 6.2.3
RS-5781 Improvement Upgrade byte-buddy to 1.12.9
RS-5782 Improvement Upgrade hibernate-c3p0 to 5.6.8
RS-5783 Improvement Upgrade hibernate-entitymanager to 5.6.8
RS-5784 Improvement Upgrade hibernate-envers to 5.6.8

New Features, Improvements and Bug Fixes for ReportServer RS4.1.0-6062

RS-5726 Improvement Upgrade lucene-core to 9.1.0
RS-5787 Improvement Upgrade lucene-queries to 9.1.0
RS-5788 Improvement Upgrade lucene-queryparser to 9.1.0
RS-5789 Improvement Upgrade lucene-sandbox to 9.1.0
RS-5790 Improvement Remove unnecessary lucene-analyzers-common-8.11.1.jar dependency
RS-5791 Improvement Add lucene-analysis-common-9.1.0.jar dependency
RS-5792 Improvement Upgrade jcifs to 2.1.29

New Features, Improvements and Bug Fixes for ReportServer RS4.1.0-6063

RS-5795 Improvement Upgrade groovy to 4.0.2
RS-5834 Improvement Upgrade groovy-astbuilder to 4.0.2
RS-5835 Improvement Upgrade groovy-cli-picocli to 4.0.2
RS-5836 Improvement Upgrade groovy-datetime to 4.0.2
RS-5837 Improvement Upgrade groovy-dateutil to 4.0.2
RS-5838 Improvement Upgrade groovy-json to 4.0.2
RS-5839 Improvement Upgrade groovy-jsr223 to 4.0.2
RS-5840 Improvement Upgrade groovy-macro to 4.0.2
RS-5841 Improvement Upgrade groovy-nio-4.0.2
RS-5842 Improvement Upgrade groovy-servlet to 4.0.2
RS-5843 Improvement Upgrade groovy-sql to 4.0.2
RS-5844 Improvement Upgrade groovy-templates to 4.0.2
RS-5845 Improvement Upgrade groovy-xml to 4.0.2
RS-5846 Improvement Remove unnecessary commons-math-1.2.jar dependency
RS-5847 Improvement Replace calls to commons-math-1.2.jar with calls to commons-math3-3.6.1.jar
RS-5848 Improvement Remove unnecessary commons-vfs-1.0.jar dependency
RS-5849 Improvement Replace calls to commons-vfs-1.0.jar with calls to commons-vfs2-2.9.0.jar
RS-5850 Improvement Remove unnecessary commons-lang-2.6.jar dependency
RS-5851 Improvement Upgrade mysql-connector-java to 8.0.29
RS-5852 Improvement Upgrade protobuf-java to 3.19.4
RS-5853 Improvement Upgrade postgresql to 42.3.5
RS-5828 Bug Some datasink error messages are incorrect