Create Identity Reporting views with reduced effort


The Identity Reporting module is a web application for scheduling and running reports.

It's included with several NetIQ products, among them are Identity Manager Standard Edition, Identity Manager Advanced Edition, and Identity Governance.

NetIQ offers a repository that contains a large number of report definitions for each product and the Reporting Administrator can easily install those reports through the web UI by clicking on Download and selecting the reports that the administrator wants to install.

 Download report definitions

Next to each report is a row with two or three icons, the first icon installs the report, the second icon is for downloading the report to your machine.

If there is a third icon that looks like a looking glass then you are in trouble.

 Additional report content

This means that the report requires additional views that don't exist in the reporting database.

Clicking that icon will download a ZIP file containing a readme file and several SQL files for different database vendors such as PostgreSQL, Oracle, and Microsoft SQL Server.

The database administrator needs to import the SQL file into the reporting database for the views to be created and for the report to be functional.

I work with multiple customers that often have multiple environments and when setting up Identity Reporting for the first time or after a upgrade they want all the reports installed just in case they would like to run them.

Most often a customer will utilize just a couple of reports but I understand that they want to install all of them.

Creating the views manually is tedious and gets old really fast so that's why I created a script that does that for me.

In my case the customers use the Identity Reporting module together with PostgreSQL so my script only works with that database.

You as the administrator need to download all the additional reporting ZIP files containing the views and transfer them to the PostgreSQL server or a machine where you have psql available.

The ZIP files must be in their own directory without any other files or subdirectories. Place the script in the same directory with the ZIP files.

The script itself is named installreports.js and it's is written in JavaScript and uses the Nashorn scripting API that is included in Java 8 and later. I.e. to run the script you will need to have Java 8 or newer installed on the machine where the script will run.

Before running the script it needs to be edited to give it some parameters so it can find the database and login etc.

Open installreports.js in a text editor and scroll down to START CHANGE THIS.

Edit the following variables, each variable is commented in the script and the names should be pretty self explanatory:

pgHostname = "localhost"
pgPort = "5432"
pgDbName = "igops"
pgUsername = "postgres"
pgPassword = "12345"
psqlPath = "C:\\netiq\\idm\\apps\\postgres\\bin\\psql.exe"
workingDir = Paths.get("C:\\Temp\\ReportingAdditional")

Save your changes and run the script from a command prompt/PowerShell prompt or terminal window using jjs from the Java 8 bin directory.


D:\jdk-11\bin\jjs -scripting .\installreports.js

When you run the script the following will happen:

    1. It will gather a list of all ZIP files in the workingDir.


    1. It will look for a file in each ZIP that starts with "pg-" and ends with ".sql".


    1. It will extract that file to the workingDir.


    1. It will run the psql command specified by the psqlPath variable together with the pgUsername, pgDbName, pgHostname and pgPort variables.

Some last words of caution, don't mix reporting files for different products. If you are installing views for Identity Governance then download only the ZIP files for Identity Governance reports and not for Identity Manager.

If you are installing views for Identity Manager make sure you have the correct files for your edition (Standard or Advanced).

Use the script at your own risk and make sure you have database backup before you do.

The script itself is hosted on Github and can be found in this repository:

Good luck with reporting!


How To-Best Practice
Comment List