In my server environment, we have a test and production environment. Based on my research, BIRT supports the following methods of providing database username/passwords to reports:
1. By Directly Saving the Username/Password into the Report File (won't work for an environment with different test and production accounts)
2. By prompting the user at runtime for a username/password as a report parameter. The problem in my case is that the database hostname and port change between our test and production environments. I wouldn't want to prompt the user for a database server's hostname and port.
3. By using a connection profile. I could use a relative path from the report file to the connection profile and then have two different connection profiles (one for production and one for testing). The problem is that there are different levels of access for each of the users running these reports. The connection profile does not permit me to use parameters for the username/password which would force all the reports to be run as the same MySQL user.
4. By using a BIRT library. I initially thought that this would be the best solution to my problem. I could have one library used on the test server and a different .rptlibrary file on the production server. The problem was that the database credentials get copied from the rptlibrary file into the rptdesign file and they would try to use the test server's credentials to connect to the production server. There is already a bug entered in BIRT's bug tracker on this issue (#343527) but no fix is available.
Is there any option that I missed? Multiple deployment environments seems like it should be a fairly typical scenario. Is there a workaround to bug 343527 that I mentioned (to make BIRT libraries work)? Or some way to combine parameters with connection profiles?
1. By Directly Saving the Username/Password into the Report File (won't work for an environment with different test and production accounts)
2. By prompting the user at runtime for a username/password as a report parameter. The problem in my case is that the database hostname and port change between our test and production environments. I wouldn't want to prompt the user for a database server's hostname and port.
3. By using a connection profile. I could use a relative path from the report file to the connection profile and then have two different connection profiles (one for production and one for testing). The problem is that there are different levels of access for each of the users running these reports. The connection profile does not permit me to use parameters for the username/password which would force all the reports to be run as the same MySQL user.
4. By using a BIRT library. I initially thought that this would be the best solution to my problem. I could have one library used on the test server and a different .rptlibrary file on the production server. The problem was that the database credentials get copied from the rptlibrary file into the rptdesign file and they would try to use the test server's credentials to connect to the production server. There is already a bug entered in BIRT's bug tracker on this issue (#343527) but no fix is available.
Is there any option that I missed? Multiple deployment environments seems like it should be a fairly typical scenario. Is there a workaround to bug 343527 that I mentioned (to make BIRT libraries work)? Or some way to combine parameters with connection profiles?