Set env::username for testing PRPT in Pentaho Report Designer (PRD)

by Andrew Cave
July 23, 2019
man in black crew neck t-shirt using macbook
A common technique to restrict access in Pentaho Report Designer is use the variable ‘${env::username}’ in queries. This is replaced with the currently logged in username on the server and allows group memberships/rows access to be identified at the database level.

Unfortunately, when testing (or debugging) a report using the Desktop designer, there is no obvious way to set the username – this means all the queries have to be manually changed to use a string literal (e.g. ‘acave’) with all the risks that might entail.

However, a tip I discovered on an obscure forum from more than a decade ago , allows the setting of the username value at program startup.

In the file

[PRD_INSTALL_PATH]/report-designer/resources/classic-engine.properties

(on my Win10 setup, it’s in C:\pentaho\design-tools\report-designer\resources\classic-engine.properties)

Find the line

org.pentaho.reporting.engine.classic.core.environment.username=Designer

and change it to (your user for testing). Here I’m using ‘test_user_name’

org.pentaho.reporting.engine.classic.core.environment.username=test_user_name

Save the file and restart the Pentaho Report Designer. When running your queries, the ‘${env::username}’ will be replaced with ‘test_user_name’ when the queries are run.

Portrait of Maxx Silver
Andrew Cave

Andrew Cave is a senior data engineer with BizCubed. He has worked in network data, billing, telco credit and debt after a career in the welfare sector. He loves databases. Follow him on LinkedIn

More blog posts

Working at BizCubed: Teresa Cheung

This month, we are talking about diversity at BizCubed and what it means to the people who work here. Here is Teresa Cheung, one of our Junior Data Engineers, with her thoughts on the topic. Teresa...

read more