2013-08-12-reportserver-configguide (1)

58
Configuration Guide

Upload: javiperezcantero

Post on 17-Jul-2016

71 views

Category:

Documents


4 download

DESCRIPTION

Jaspersoft manual

TRANSCRIPT

Page 1: 2013-08-12-reportserver-configguide (1)

Configuration Guide

Page 2: 2013-08-12-reportserver-configguide (1)
Page 3: 2013-08-12-reportserver-configguide (1)

Version 1.0 vom 11.08.2013 zu ReportServer 2.1

Configuration Guide

©2013 datenwerke

http://reportserver.datenwerke.net/

Page 4: 2013-08-12-reportserver-configguide (1)

4

Page 5: 2013-08-12-reportserver-configguide (1)

5

Table of Contents

Preface.................................................................................................................................. 7

Installation ............................................................................................................................ 9

Configuration ...................................................................................................................... 21

Datasources ............................................................................................................... 22

Export settings ........................................................................................................... 30

UI Customization ........................................................................................................ 31

Extensions.................................................................................................................. 36

Executing Reports using URLs .................................................................................. 37

Misc Settings .............................................................................................................. 38

Security related properties ......................................................................................... 39

Appendix A: Config File Reference ..................................................................................... 45

Page 6: 2013-08-12-reportserver-configguide (1)

6

Page 7: 2013-08-12-reportserver-configguide (1)

7

Preface

Business Intelligence (BI) describes the ability to jointly analyze all of a company‘s data, di-stilling relevant information to be used to foster better business decisions. The foundation of any BI solution is the careful preprocessing of existing data, for example, in a data warehouse. ReportServer acts as the gateway between end-users and the collected data, allowing users to efficiently access and analyze exactly the data they need. From print-ready evaluations to fine-grained ad-hoc reporting; ReportServer provides you with the tools to support your daily work.

Target audienceThis document is written for future ReportServer administrators, as well as those who are tasked with initially setting up the system.

Page 8: 2013-08-12-reportserver-configguide (1)

8

Page 9: 2013-08-12-reportserver-configguide (1)

9

Installation

InstallationReportServer is a web-based application using the Java Servlet technology. ReportServer is run in an application server (such as Apache Tomcat) and stores application relevant meta-data in a relational database using the hibernate library. ReportServer basically supports all operating systems that can run java and have an application server available.

ReportServer is distributed as a zip-archive to deploy in your application server. Additionally a windows installer package is available for the use with Microsoft Windows. This package optionally also installs Oracle Java, Apache Tomcat and the PostgreSQL database. You can download ReportServer from http://sourceforge.net/projects/dw-rs.

Windows InstallerIf you choose to install ReportServer using the Windows installer you are guided through the various steps of the installation process. The installer is primarily meant to provide a quick and easy way to get ReportServer runnig and the configuration is not optimized for produc-tion use. For production use we recommend a manual installation of the application server, so you can adjust all required settings to your environment.

TomcatThe installer will configure ReportServer to run with the Apache Tomcat (http://tomcat.apa-che.org/) application server. You can either have the installer set up Tomcat for you, or use an already installed Tomcat instance.

Tomcat directory and external URLIf you choose not to have Tomcat installed automatically, you must specify its installation directory as well as the external URL of the system. The external URL is the URL used to access your system over the network.

Page 10: 2013-08-12-reportserver-configguide (1)

10

Database SelectionYou can either install ReportServer together with a preconfigured PostgreSQL database or have the installer use an existing relational database system. Please note that if you choose to use an existing database system, you need to manually create the necessary schema. See 4. Database Setup.

Also note that depending on the database system used, you need to manually install the corresponding jdbc driver. See 4. Database Setup.

Setup the database connectionIn case you don‘t want to use the bundled postgreSQL database, you need to configure the database connection for ReportServer. The configuration goes into the file META-INF/persi-stance.xml which the installer will automatically create.

Note: In case you use an existing database make sure to create the schema be-fore starting ReportServer.

You can now start the installation.

After the installation is complete you can access ReportServer via the displayed URL (e.g., http://localhost:8080/reportserver). ReportServer has generated the root user with which you can login: username: root, password: root.

Manual InstallationIf you choose to use the zip-archive distribution to set up ReportServer, the installation pro-cess is comprised of 3 parts:

1. Installation Prerequisits Java Runtime Environment (JRE) Application Server Database 2. Configuration of the database and authentication procedures adjusting the config file persistence.xml adjusting the config file reportserver.properties 3. First system start and login

Installation of the Java Runtime Environment (JRE)ReportServer requires an installed Oracle Java Runtime Environment (JRE) in version 7.

If the host computer supports it, you should use the 64-bit edition.

Page 11: 2013-08-12-reportserver-configguide (1)

11

Installation and configuration of the application serverReportServer can be configured to run in any application server that supports the Java Serv-let Technology. We recommend using Apache Tomcat (http://tomcat.apache.org/).

Note that it is required to increase the maximum memory available to the appli-cation server from its default values. Otherwise, ReportServer will probably not start.

Also, the available permanent generation space (PermGenSpace) needs to be set to at least 256mb (we recommend 512mb). The maximal available heap size should be at least 1.5gb. The encoding should be set to UTF8. The individual parameters can vary, depending on the intended usage scenario and the expected parallel load.

A sample configuration of the VM might look as follows:

-Xmx1548M

-XX:MaxPermSize=512M

-Dfile.encoding=UTF8

Further information can be found, for example, at http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html.

Unpack the zip-archiveStop the application server, if it was running, and unpack the ReportServer archive to a directory called reportserver below the webapps directory of your application server (on Windows this could be, for example, C:\Program Files\Apache Tomcat\webapps; on Linux /var/tomcat/webapps).

Setup the databaseReportServer stores necessary application metadata in a relational database. For this, Re-portServer uses the Hibernate library (http://www.hibernate.org/). Hibernate supports most popular database systems. A list of the database systems supported by Hibernate can be found at https://community.jboss.org/wiki/SupportedDatabases2.

Installation of the JDBC driverCopy the JDBC driver for your database system to the directory path_to_webapps/reportser-ver/WEB-INF/lib.

Creating the ReportServer schemaChoose the create script correspoding to your database system from the directory „ddl“ and execute it on your database. For a PostgrSQL database, for example, use the file: reportser-ver-RS2.x-svn-xxx-schema-PostgreSQL_CREATE.sql

Page 12: 2013-08-12-reportserver-configguide (1)

12

Adapt the persistence.xml config fileCopy the file persistence.xml.skeletton to create a new file called persistence.xml in the directory META-INF (beneath WEB-INF/classes). The file persistence.xml contains the con-figuration of the ReportServer database connection. You can find further information on the persistence.xml config file below in section „persistence.xml.“ Following are sample configu-rations for MySQL and Oracle.

Note that in general only the properties-section needs to be customized.

For a MySQL database

<!-- Connection properties -->

<property name=“hibernate.dialect“ value=“org.hibernate.dialect.MySQLDialect“/>

<property name=“hibernate.connection.driver_class“ value=“com.mysql.jdbc.Driver“/>

<property name=“hibernate.connection.url“

value=“jdbc:mysql://localhost:3306/reportserver“/>

<property name=“hibernate.connection.username“ value=“root“/>

<property name=“hibernate.connection.password“ value=“root“/>

For an Oracle database

<!-- Connection properties -->

<property name=“hibernate.connection.driver_class“

value=“oracle.jdbc.driver.OracleDriver“ />

<property name=“hibernate.connection.url“ value=“jdbc:oracle:thin:@localhost:1521:SID“ />

<property name=“hibernate.dialect“ value=“org.hibernate.dialect.Oracle9Dialect“ />

<property name=“hibernate.connection.username“ value=“user“ />

<property name=“hibernate.connection.password“ value=“password“ />

The config file reportserver.propertiesYou find the config file reportserver.properties in the WEB-INF/classes directory. It contains basic properties concerning the available authentication procedures used by ReportServer as well as configuration for cryptopgraphic functionality used in ReportServer.

A detailed description of the available parameters are given in Section „Config files“.

Page 13: 2013-08-12-reportserver-configguide (1)

13

Application Server StartStart the application server. ReportServer should now be accessible, for example under the URL http://localhost:8080/reportserver. ReportServer has generated the root user with which you can login: username: root, password: root.

Configuration FilesReportServer has only two (external) config files which hold information on the database connection as well as information on available authentication methods. All other configurati-on is done from within ReportServer. The file persistence.xml (in directory WEB-INF/classes/META-INF) holds information on the database connection that is used by ReportServer. The file reportserver.properties (in the directory WEB-INF/classes) holds information about available authentication schemes, as well as, cryptogrpahy related properties.

persistence.xmlReportServer uses the Java Persistence API (JPA) to abstract from the actual database sys-tem when storing application data. The necessary configuration is made in the persistence.xml config file.

Example

<?xml version=“1.0“ encoding=“UTF-8“?>

<persistence version=“1.0“

xmlns=“http://java.sun.com/xml/ns/persistence“

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance“

xsi:schemaLocation=“http://java.sun.com/xml/ns/persistence

http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd“>

<persistence-unit name=“reportServerPU“ transaction-type=“RESOURCE_LOCAL“>

<class>net.datenwerke.rs.dashboard.service.dashboard.dagets.FavoriteListEntry</class>

...

<properties>

<property name=“hibernate.dialect“

value=“org.hibernate.dialect.PostgreSQLDialect“/>

<property name=“hibernate.connection.driver_class“ value=“org.postgresql.Driver“/>

<property name=“hibernate.connection.url“

value=“jdbc:postgresql://localhost/postgres“/>

<property name=“hibernate.connection.username“ value=“rs“/>

<property name=“hibernate.connection.password“ value=“rs“/>

....

</properties>

</persistence-unit>

</persistence>

Page 14: 2013-08-12-reportserver-configguide (1)

14

The file consists of two parts that are both contained within the <persistence-unit> tag. The <classes> section lists the entity classes used by ReportServer. This part should not be changed. The properties within the tag „<properties>“ specify the JPA configuration.

When changing the file, make sure that the XML syntax is maintained. Furthermore, - lines beginning with <class... should not be changed - the file should be stored in UTF-8 encoding.

Connection propertiesReportServer supports all databases, that are supported by Hibernate. A list of the data-base systems supported by Hibernate can be found at https://community.jboss.org/wiki/SupportedDatabases2.

Example config for MySQL

<property name=“hibernate.dialect“ value=“org.hibernate.dialect.MySQLDialect“/>

<property name=“hibernate.connection.driver_class“ value=“com.mysql.jdbc.Driver“/>

<property name=“hibernate.connection.url“

value=“jdbc:mysql://localhost:3306/reportserver“/>

<property name=“hibernate.connection.username“ value=“rs“/>

<property name=“hibernate.connection.password“ value=“rs“/>

<property name=“hibernate.connection.autocommit“ value=“false“/>

Example config for PostgreSQL

<property name=“hibernate.dialect“ value=“org.hibernate.dialect.PostgreSQLDialect“/>

<property name=“hibernate.connection.driver_class“ value=“org.postgresql.Driver“/>

<property name=“hibernate.connection.url“ value=“jdbc:postgresql://localhost/postgres“/>

<property name=“hibernate.connection.username“ value=“rs“/>

<property name=“hibernate.connection.password“ value=“rs“/>

<property name=“hibernate.connection.autocommit“ value=“false“/>

Example config for Oracle

<property name=“hibernate.dialect“ value=“org.hibernate.dialect.Oracle10gDialect“/>

<property name=“hibernate.connection.driver_class“

value=“oracle.jdbc.driver.OracleDriver“/>

<property name=“hibernate.connection.url“

value=“jdbc:oracle:thin:@localhost:1521:MYDB“/>

<property name=“hibernate.connection.username“ value=“rs“/>

<property name=“hibernate.connection.password“ value=“rs“/>

<property name=“hibernate.connection.autocommit“ value=“false“/>

Page 15: 2013-08-12-reportserver-configguide (1)

15

Example config for SQL Server

<property name=“hibernate.dialect“ value=“org.hibernate.dialect.SQLServer2008Dialect“/>

<property name=“hibernate.connection.driver_class“

value=“com.microsoft.sqlserver.jdbc.SQLServerDriver“/>

<property name=“hibernate.connection.url“

value=“jdbc:sqlserver://localhost\sqlserver:1433;databaseName=mydb“/>

<property name=“hibernate.connection.username“ value=“rs“/>

<property name=“hibernate.connection.password“ value=“rs“/>

<property name=“hibernate.connection.autocommit“ value=“false“/>

Note, the JDBC driver corresponding to your database must be copied to the di-rectory path_to_webapps/reportserver/WEB-INF/lib. ReportServer ships with the JDBC drivers for MySQL, H2, and PostgreSQL.

Cache and naming propertiesThe following properties should not be changed.

<property name=“hibernate.ejb.naming_strategy“

value=“net.datenwerke.rs.utils.hibernate.OracleNamingStrategy“/>

<property name=“hibernate.cache.provider_class“

value=“org.hibernate.cache.NoCacheProvider“/>

Debug settings

<property name=“hibernate.show_sql“ value=“false“/>

<property name=“hibernate.format_sql“ value=“true“/>

Connection Pool (C3P0) SettingsHibernate uses the C3P0 connection pool. The following properties allow to configure C3P0 as used by Hibernate. Note that this does not have any effect on the connection pool used by ReportServer for handling reporting.

<property name=“hibernate.c3p0.acquire_increment“ value=“5“/>

<property name=“hibernate.c3p0.idle_test_period“ value=“60“/>

<property name=“hibernate.c3p0.timeout“ value=“3600“/>

<property name=“hibernate.c3p0.max_size“ value=“30“/>

<property name=“hibernate.c3p0.max_statements“ value=“0“/>

<property name=“hibernate.c3p0.min_size“ value=“5“/>

Page 16: 2013-08-12-reportserver-configguide (1)

16

See also http://www.mchange.com/projects/c3p0/index.html#appendix_d.

The most commonly used properties are:

Property Description

acquire_increment Defines how many connections are acquired simultaniously by c3p0, if all connections currently in the pool are busy.

idle_test_period If not zero, C3P0 will test idle connections in this intervall.

timeout Number of seconds a pooled connection can remain idle before it is discarded. Zero me-ans that idle connections are never discarded.

max_size Maximum number of connections in the pool.

max_statements Maximal size of the statement cache. Zero means that statements should not be cached.

min_size The minimum number of connections to be kept in the pool.

Entity Versioning (Envers)Entity versioning allows to track changes of objects. ReportServer uses Hibernate Envers to keep a history of all objects such that these can be restored (if need be) and changes can be inspected. You can access versioning features from within ReportServer using the terminal. For further information, we refer to the administrator‘s manual. The settings

<property name=“org.hibernate.envers.audit_table_suffix“ value=“_A“/>

<property name=“org.hibernate.envers.audit_table_prefix“ value=““/>

should not be changed.

Search settingsReportServer can keep its search index either in memory or outsource it to disk. For this set the value either to „ram“ or „filesystem“.

<property name=“hibernate.search.default.directory_provider“ value=“ram“/>

Note that in case the search index is stored to disk that you need to provide a path to where the search index should be stored.

<property name=“hibernate.search.default.indexBase“ value=“tmp/lucene/indexes“/>

Further note, that if the search index is kept in memory that it needs to be recreated on a ReportServer restart.

Page 17: 2013-08-12-reportserver-configguide (1)

17

The property

<property name=“hibernate.search.analyzer“

value=“net.datenwerke.rs.search.service.search.RsSearchAnalyzer“/>

configures the analyzer that is to be used to create the search index. The analyzer is used to split text into segments that are useful for indexing. Normally, the analzyer should not need to be changed. Further information on Hibernate search can be found at http://www.hibernate.org/subprojects/search.html.

Reportserver.propertiesThe config file reportserver.properties contains settings which are needed at ReportServer statup time as well as settings concerning cryptographic functionality. All properties are sto-red as attribute value pairs.

Excerpt from the reportserver.properties file

rs.crypto.pbe.passphrase = The Passphrase

rs.crypto.pbe.keylength = 128

Crypto settingsPasswords (such as, for example, datasource passwords) that are stored in ReportServer will be encrypted. ReportServer uses AES and password based encryption. For this, you need to configure the following properties:

rs.crypto.pbe.salt

the salt that is used on key generation by the password based encryption method. This value should be set to a long random string.

rs.crypto.pbe.keylength

The key size used. Keep in mind that key sizes over 128 require the Java Cryptography Ex-tension (JCE) Unlimited Strength Jurisdiction Policy Files. For more information, see http://www.oracle.com/technetwork/java/javase/downloads/index.html.

For secure storage of user passwords ReportServer uses the salted HMAC construction.

rs.crypto.passwordhasher.hmac.passphrase

Defines the static part of the salt for the salted HMAC construction. This value should be set to a long random string.

Page 18: 2013-08-12-reportserver-configguide (1)

18

Authentication settingsReportServer supports several methods for user authentication. The different methods can also be combined.

rs.authenticator.pams

This parameter defines which authentication methods are to be used. The individual values are separated by a colon.

The following authenticator modules are available

net.datenwerke.rs.authenticator.service.pam.UserPasswordPAM

This is the standard mechanism and allows users to authenticate using a username and password. Note: with this authentication method username and password are sent to the server in the clear. Thus, this method should only be used over a secure channel (such as TLS/SSL). If you are not in a secured environment choose the ChallengeResponsePAM instead.

net.datenwerke.rs.authenticator.service.pam.IPRestrictionPAM

With this method you can restrict the set of IP addresses that can access ReportServer. The allowed address ranges are configured in rs.authenticator.iprestriction.addresses. The indi-vidual values are separated by a colon. Example: rs.authenticator.iprestriction.addresses = 127.0.0.1/32:192.168.1.0/24

net.datenwerke.rs.authenticator.service.pam.EveryoneIsRootPAM

This method will disable authentication and log in all users as root.

net.datenwerke.rs.authenticator.cr.service.pam.ChallengeResponsePAM

This method is similar to the UserPasswordPAM but the password is transmitted securely to the server. In cases where the connection is not secured via SSL this is the recommended authentication method. Note though, that this requires the client browser to perform crypto-graphic tasks which may be slow on non-up-to-date browsers.

net.datenwerke.rs.authenticator.service.pam.ClientCertificateMatchEmailPAM

If your organisation uses x509 certificates, you can use this method to allow users to log in with their client certificates.

rs.authenticator.pam.ClientCertificateMatchEmailPAM.debug

This parameter allows to enable debug mode for client certificate authentication.

Page 19: 2013-08-12-reportserver-configguide (1)

19

rs.authenticator.blockroot

Setting this to true disables direct access using the root user. This is recommended for pro-duction environments. Note that you can switch to the root user using sudo if you need to perform administrative tasks (and you have the corresponding privileges). Further informati-on on sudo can be found in the administration guide.

Page 20: 2013-08-12-reportserver-configguide (1)

20

Page 21: 2013-08-12-reportserver-configguide (1)

21

Configuration

ReportServer is now up and running. In the following section we describe configuration op-tions affecting the operation of ReportServer. The present document should be considered as a reference containing a brief description of the various configuration options. Keep in mind that the settings described here affect all areas of ReportServer which to describe is beyond the scope of this config guide. See the administrator‘s and user‘s guide for further information to the various areas of ReportServer.

All configuration files described in this section can be found in ReportServer‘s internal filesy-stem. You can access the internal filesystem using the administration module (administration / file system) or using the terminal: you can open the terminal by pressing CTRL+ALT+T.

By using the command „editTextFile“ you can edit files directly from the terminal. You can also create new files using the command ‚createTextFile‘. For further information on the workings of the terminal see the administrator‘s guide. Using the graphical user interface, you can se-lect files similar to selecting files when working in the Explorer in your operating system. To do this, go to administration/file system. To edit a file, choose the tab „Edit file.“

Please note, that after changing a config file you need to run the terminal command „config reload“ for the change to take effect.

Configuration files in ReportServer are defined in an XML format. Note that XML files can only then be read and processed if they are „well-formed.“ Here are a few basic rules for XML files:

Examples:

• each XML file has a single root element. In ReportServer all configuration files have the root element <configuration>

• every element with content consists of an opening and a closing tag: for example, <tag>Here is some content</tag>

• elements without any content can be opened and closed with a single tag of the form <tag/>.

Page 22: 2013-08-12-reportserver-configguide (1)

22

• Tags must be correctly nested, e.g., the following is not allowed <a>text<b>more</a>text</b>.

• elements may not have multiple attributes with the same name• attribute values must be written in double quotes <tag someAttribute=“value“/>• tags and attributes (and values) are case sensitive.

DatasourcesIn this section we will cover:

• how to define the default datasource,• how to define datasource bundles,• how to configure the connection pool,• how to configure the internal db

Defining the default datasourceReportServer allows to configure a single default datasource. The default data source can then be accessed with only a single mouse click when working with reports and parameters. The standard data source is set in the file /fileserver/etc/datasources/datasources.cf.

You can use the name of the data source, or use the ID of the data source, for the assign-ment. Use one of the two variants for the configuration.

<defaultDatasourceName>Myds<defaultDatasourceName>

<defaultDatasourceId>12</defaultDatasourceId>

Keep in mind that the datasource name is case sensitive.

Defining the database bundleThe database bundle allows the user to, on login, select a set of datasources to be used later on. This is useful, for example, if you have a test and production warehouse, which are loa-ded separately from one another, but which should be accessible using the same instance of ReportServer. With database bundles the user can then, on login, decide if s/he wants to work with data from the test or production system.

In /fileserver/etc/datasources/databasebundle.cf you define which datasource bundles are available.

With the following configuration the user would be able to choose between Prod and Test on login.

Page 23: 2013-08-12-reportserver-configguide (1)

23

<keys>

<key>Prod</key>

<key>Test</key>

</keys>

If you now create a datasource of type datasourcebundle you can specify a datasource for each of the defined keys. If you select a datasourcebundle as data source for a report, then the actual data source will only be determined at execution time, that is, the report will be executed using the data source corresponding to the user‘s selection on login. Note that scheduled reports will always be run with the first data source in the list.

Configuring the Connection PoolReportServer will, by default, pool connections to relational database systems. This incre-ases the stability of the system, since you can define an upper limit of simultaniously open connections and, furthermore, it improves the performance at the same time since database connections are kept open and ready for use.

The connection pools can be configured both globally and per data source. The configuration is done in the file /fileserver/etc/datasources/pool.cf.

To not use connection pools, change the attribute ‚disable‘ to „true“: <pool disable=“false“>

ReportServer uses the library C3P0 (http://www.mchange.com/projects/c3p0/) to perform connection pooling. To globally set a property, set the property within the <defaultconfig> tags. For data-source-specific settings, use the tag <pool16>, where 16 is the ID of the data source.

<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<pool>

<defaultconfig>

<maxPoolSize>40</maxPoolSize>

<initialPoolSize>10</initialPoolSize>

<acquireRetryAttempts>10</acquireRetryAttempts>

<acquireRetryDelay>500</acquireRetryDelay>

<checkoutTimeout>60000</checkoutTimeout>

<maxConnectionAge>7200</maxConnectionAge>

<maxIdleTime>3600</maxIdleTime>

</defaultconfig>

<pool16>

<acquireRetryAttempts>20</acquireRetryAttempts>

</pool16>

</pool>

</configuration>

Page 24: 2013-08-12-reportserver-configguide (1)

24

The possible configuration settings of C3P0 can be found at http://www.mchange.com/projects/c3p0/#configuration_properties. ReportServer simply passes on any set property to C3P0.

Internal databaseThe internal database is used, for example, for the intermediate storage of CSV data sour-ces. Data from CSV data sources is transferred automatically before use into the internal database. Thus, all features of the dynamic list are available when using CSV data sources. Similarly is the internal DB used to store the results of scripted data sources. The correspon-ding settings can be made in the configuration file /fileserver/etc/datasources/internaldb.cf.

Define where the internal database should be stored using the parameter location (<location>dbtmp</location>). In this example, the internal db is stored in a directory dbtmp below the directory webapps/reportserver. Keep in mind that the application server needs to be able to write to this directory. If you do not specify the parameter „location“, ReportServer will keep the internal database in memory.

By default, ReportServer encrypts files of the internal data source. The following parameters

<encryption>

<disable>false</disable>

<password>SecretPassphrase</password>

</encryption>

allow to specify the password to be used, or disable encryption (disable=true).

ReportServer uses the H2 database for its internal database (http://www.h2database.com). To further specify the database settings, you can pass on connection parameters using:

<connection>

<properties>;PAGE_SIZE=1024;CACHE_SIZE=8192</properties>

</connection>

Note the leading semicolon.

Since the internal database is a regular relational database, you can naturally use Report-Server to access and evaluate it. You‘ll find further information in the Administration Guide.

DemodataReportServer comes with the option to install a demo database, which is the base for the demo report shipped with ReportServer. The demo data will be installed in the internal data-base. To install the demo data on startup change the config file /fileserver/etc/datasources/internaldb.cf to include the tag <installdemodata>true</installdemodata>. A sample configu-ration could, for example, look like:

Page 25: 2013-08-12-reportserver-configguide (1)

25

<configuration>

<internaldb>

<location>dbtmp</location>

<encryption>

<disable>false</disable>

<password>SecretPassphrase</password>

</encryption>

<installdemodata>true</installdemodata>

</internaldb>

</configuration>

Note that this change will only take effect after a restart of ReportServer. To load the demo data during runtime you can alternatively use the following script:

import net.datenwerke.rs.core.service.internaldb.InternalDbService

GLOBALS.getRsService(InternalDbService.class).initDemoDatabase()

To execute the script, copy the two lines to a file beneath the bin directory. Then open the terminal (ctrl+alt+t), go to the directory to where you placed the script (for example „cd /file-server/bin/tmp“) and execute the script via „exec theScriptsName“.

SQL limits and parameter optionsThe datasource parameter (a parameter that can be used to allow the user to select values from a predefined set) can return a single value or a list of values. If a user selects multiple values (or uses many filters in a dynamic list) this might lead to problems with certain databa-se systems. This is due to the fact that the number of values that can be used in IN clauses is limited for most database systems.

You can specify the maximum number of values to be used in IN clauses in the file /fileser-ver/etc/datasources/sql.cf. ReportServer will then distribute the selected values over multiple IN-clauses.

For this set the following parameter

<maxsize>1000</maxsize>

in accordance with the prerequisites of the used database system.

The data source parameterQueries that run for a long time have an impact on the performance of ReportServer. You can specify how long ReportServer should wait for the results of a parameter query. A parameter query is executed when a report is opened.

Page 26: 2013-08-12-reportserver-configguide (1)

26

You can specify a timeout for parameter queries in the configuration file /fileserver/etc/da-tasources/parameter.cf. If queries get cancelled you should think about ways to tune your database.

Set the parameter <querytimeout>60</querytimeout> to stop queries after 60 seconds

If you want to use the „post-processing“ feature of the data source parameter enable it using the following lines

<postprocessing>

<enable>true</enable>

</postprocessing>

The post-processing feature, for example, allows to switch parameter values or perform complex string operations. Learn more about data source parameter post-processing in the parameter chapter in the administrator‘s guide.

Dynamic ListsIn Dynamic Lists, users can use Computed Columns. Computed collumns allow users to ex-tend the list of columns by fields which do not exist in the source but which can be constructed from existing fields. Computed Columns are based on SQL.

In /fileserver/etc/dynamiclists/computedcolumn.cf you can specify which SQL functions can be used with Computed Columns.

Add those functions that may be used by your users.

Example

<function>abs</function>

Note that SQL functions vary depending on the database system.

We strongly recommend against allowing to use functions that can change data. Further, the database user used for report execution should not have write ac-cess.

Setting up the SchedulerWith ReportServer you can schedule reports and distribute the result either using mail or directly into a Teamspace. The next section discusses the relevant settings.

Page 27: 2013-08-12-reportserver-configguide (1)

27

Mail Server ConfigurationIn order for ReportServer to be able to send mails you must specify the mail server settings. Make the following configurations in the file /fileserver/etc/mail/mail.cf.

Setting up the SMTP server. Replace the values host, port, username, and password accor-ding to your SMTP server.

<smtp>

<host>mail.yourmailserver.com</host>

<port>25</port>

<username>[email protected]</username>

<password>passwordsecret</password>

<ssl>false</ssl>

<tls>

<enable>false</enable>

<require>false</require>

</tls>

</smtp>

If you are using SSL or TLS please also specify these values. Next, configure the return address and encryption policy.

<mail>

<sender>[email protected]</sender>

<encryptionPolicy>allow_mixed</encryptionPolicy>

</mail>

The encryption policy controls whether or not mails have to be encrypted or whether it is ok to send mails unencrypted if a user‘s public key is not specified. Choose between strict and allow_mixed. Note that if you choose „strict“ then mails to users that do not have a public key registered with ReportServer will not receive any messages.

Scheduler settingsReportServer comes with a powerful scheduler. ReportServer‘s scheduler allows you to schedule the execution of reports. The executed report can then either be emailed or stored in a folder in a Teamspace.

The schedule and report recipients are user provided on scheduling. You can configure the messages that ReportServer will send out on certain events. Each message can be custo-mized to your specifications.

Page 28: 2013-08-12-reportserver-configguide (1)

28

ReportServer will send out the following emails:

• email with attached completed report (mailaction),• email if a report has been placed into a Teamspace (fileaction),• email on schedule (notification - scheduled),• email if a schedule job is revoked (notification - unscheduled),• email if a scheduled job failed (notification - failed)

The following configurations are done in the file /fileserver/etc/scheduler/scheduler.cf. To include information such as „the user who created the schedule entry“, „the report‘s name“ etc. in your message you can use a variety of expressions. Substitutions are defined in the ReportServer formula language. You will find further information about the ReportServer formula language in the Administrator‘s, as well as in the User Guide.

Available SubstitutionsExpression Description

${report.getName()} report‘s name

${report.getDescription()} report‘s description

${report.report.getKey()} report‘s key

${report.getId()} report‘s ID

${user.getUsername()} username

${user.getFirstname()} first name of user

${user.getLastname()} last name of user

${user.getEmail()} user‘s email address

${user.getTitle()} user‘s title

${user.getId()} id of user

${teamspace.getName()} name of Teamspace

${folder.getName()} name of folder in Teamspace

${message} the message that was specified by the user on scheduling

${subject} the subject that was specified by the user on scheduling

${recipients} A list of the recipients

${filename} filename as specified by the user (report is scheduled in teamspace)

${nextDates} date of next execution

${RS_CURRENT_DATE} current date

${errMsg} error message on erroneous execution

${stacktrace} detailed stacktrace on failed execution

Page 29: 2013-08-12-reportserver-configguide (1)

29

Configuration of email message with attached report (successful execution)

<mailaction html=“false“>

<subject>${subject}/subject>

<text>Text of message: ${message}</text>

<attachment>

<name>rep-${report.getName()}-${RS_CURRENT_DATE}</name>

</attachment>

</mailaction>

Configuration on successful execution of report and storage in Teamspace

<fileaction disabled=“false“ html=“false“>

<subject></subject>

<text></text>

</fileaction>

Configuration of notifications on scheduling, unscheduling and execution errors

<notification disabled=“false“ html=“false“>

<scheduled>

<subject></subject>

<text></text>

</scheduled>

<unscheduled>

<subject></subject>

<text></text>

</unscheduled>

<failed>

<subject></subject>

<text></text>

</failed>

</notification>

If you would like to send emails in the HTML format please set the corresponding html attri-bute to „true“.

Page 30: 2013-08-12-reportserver-configguide (1)

30

In case you do not want to have one or more notifications, you can disable the individual notifications using the disabled attribute:

<fileaction disabled=“true“ html=“false“>

If you do not want to use the scheduler you can disable it using

<properties>

<disabled>true</disabled>

</properties>

Keep in mind that this change will only take effect after reboot. To enable or disable the sche-duler while ReportServer is running, use the terminal command „scheduler daemon start / stop.“ We refer to the Administration Guide for more information.

Export settingsRegarding the export to PDF and Microsoft Excel, there are several options that you can set. In /fileserver/etc/exportfilecmd/excelexport.cf you can specify in which format Excel do-cuments are to be exported. You can choose between the old XLS and the current XLSX format. If you have selected the XLSX format, ReportServer allows to stream the data to the client. This means, that the chunks of resulting Excel file are sent to the user while it is still being created. Streaming result files can significantly reduce processing time.

To specify the Excel format and whether or not to use streaming, adjust the following para-meters:

<format>xlsx</format>

<stream>true</stream>

You can specifiy document properties (title, creator and author) of PDF files in /fileserver/etc/exportfilecmd/metadata.cf. The texts specified here will be included in newly generated PDF files.

Modify the following parameters:

<title>title</title>

<creator>ReportServer</creator>

<author>ReportServer</author>

As with email notifactions you can use substitutions to dynamically populate the fields. The following substitutions are available:

Page 31: 2013-08-12-reportserver-configguide (1)

31

Available Substitutions

Expression Description

${user.getUsername()} username

${user.getFirstname()} user‘s first name

${user.getLastname()} user‘s last name

${user.getEmail()} user‘s email address

${user.getTitle()} user‘s title

${user.getId()} user‘s id

You can further specifiy the default character set used by ReportServer. In the file /fileserver/etc/main/main.cf you will find the option charset. By default, the charset ISO-8859-1 is used.

UI CustomizationIn this section we cover the possibilities of customizing the user interface. ReportServer pro-vides the following customization options:

• Specifying the default language,• Customizing error messages, • customize PDF preview,• customize the report documentation,• add tabs based on context

Further customization options are available whith the use of ReportServer scripts. More in-formation on ReportServer scripts can be found in the Administration Guide.

Specifying the available languagesAny visible text in ReportServer can, in principle, be displayed in any language. The languages available on log-in can be define in the configuration file /fileserver/etc/main/localization.cf.

<locales>de,en</locales>

<default>de</default>

The property „default“ specifies which language to use as default language. Please note that currently only German and English are available. If you are interested in creating a translati-on, please contact us.

Page 32: 2013-08-12-reportserver-configguide (1)

32

Customization of error messagesErrors can occur due to various reasons.

Typical errors are:

• an error occurs on the database during report execution, because: • a table does not exist,• a column does not exist,• there is a syntax error in the underlying SQL,• the JDBC driver was not installed• etc.

• the connection pool does not have any free connections

An exception is thrown whenever an error occurs in ReportServer. The exception is compo-sed of: a title, error message, and the stack trace.

In /fileserver/etc/main/templates.cf you can customize the error message that is displayed on errors that occur during the export of reports.

When customizing the error message you should give clear instructions as to what the af-fected employee should do in this case. Usually you would specify the contact address of an administrator or helpdesk. When customizing, the following substitutions are available: ${headline}, ${msg} and ${stacktrace}.

Preview for PDF reportsIn previous versions of ReportServer the preview of graphical report engines (such as, Birt, Jasper, Crystal) consisted of an image of the first page. For this only the first page of the report was rendered. Alternatively, ReportServer since version 2.0 supports a full preview of the PDF document within the browser. The PDF version of the report is previewed directly in the browser without the need for any browser plugins. This, however, requires the use of up-to-date web browsers.

In the configuration file /fileserver/etc/ui/previews.cf you can specify which option you want to use. Set the option <forcelegacy>false</forcelegacy> to true to display only the first page as preview. Default is to preview the entire document. Also note that users can choose to use the old preview (using their profiles).

Customize the report documentationUsing ReportServer‘s dynamic lists, users can easily create very powerful ad-hoc reports: so called variants. With variants users can capture complex relationships using a variety of filters, expressions, etc. In order to be able to comprehend these relationships at a later date, the configuration of a report needs to be documented. ReportServer supports automatic documentation, which is derived directly from the available metadata. A documentation can be generated for every report/variant with the help of the so called „documentation report“.

Page 33: 2013-08-12-reportserver-configguide (1)

33

The documentation report itself is a script report. It creates the documentation automatically from the available metadata.

You can customize this report or use a completely different report (for example, if you want to display additional information from other sources).

The ID of the documentation report is configured in /fileserver/etc/reportdoku/doku.cf. Note that the documentation report must be given a parameter „reportId“. Having configured the documentation report you can now create a report documentation by opening a report (e.g., from a Teamspace) and clicking on the button „display report documentation“.

You can also directly display the documentation report in a tab in the Teamspace. For this, you need to configure a view in the /fileserver/etc/ui/urlview.cf config file. This is explained in the next section.

Adding contextual tabsUsing the configuration file /fileserver/etc/ui/urlview.cf you can define context aware tabs to be displayed in the Teamspace or in the adminstration module (e.g., report management, user management, etc.). This allows you to, for example, display the documentation report directly whenever a user selects a report in the Teamspace.

The configuration of extra tabs is split into two parts

<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<adminviews>

</adminviews>

<objectinfo>

</objectinfo>

</configuration>

Page 34: 2013-08-12-reportserver-configguide (1)

34

Tabs to be displayed in the administration module go into the <adminviews> tags and tabs for the Teamspace are put within the <objectinfo> tags, respectively. To add a new tab, you define a <view> tag. For adding a tab to the Teamspace whenever a report is selected add the following <view> tag to <objectinfo>.

<view>

<types>

net.datenwerke.rs.tsreportarea.client.tsreportarea.dto.TsDiskReportReferenceDto

</types>

<name>Report Information</name>

<url>

reportserver/reportexport?key=DOKU&amp;format=html&amp;p_reportId=${reportId}

</url>

</view>

By this, you can add as many tabs as you like. Using <types> you control the objects for which the tab will be added. The following types are available in Teamspaces.

Types

net.datenwerke.rs.tsreportarea.client.tsreportarea.dto.AbstractTsDiskNodeDto

All Objects in a Teamspace.

net.datenwerke.rs.tsreportarea.client.tsreportarea.dto.TsDiskFolderDto

All folders in a Teamspace.

net.datenwerke.rs.tsreportarea.client.tsreportarea.dto.TsDiskReportReferenceDto

All reports and variants in a Teamspace.

net.datenwerke.rs.scheduleasfile.client.scheduleasfile.dto.ExecutedReportFileReferenceDto

All „exported reports“ which were, for example, created by the scheduler.

The name field defines the tab‘s name. The url is the address that is displayed. This also allows you to access external addresses, that are then displayed within the tab.

For the report documentation you must enter the following URL:

reportserver/reportexport?key=DOKUBERICHT&amp;format=html&amp;p_reportId=${reportId}

Page 35: 2013-08-12-reportserver-configguide (1)

35

The following replacements are available for defining the url: ${id} (the object‘s id), and ${type} (the object‘s type). Note that Teamspaces do only contain report references. Thus the replacement ${id} will contain the id of the reference rather than the id of the referenced report. For this, there is the special replacmenet called ${reportId} which is only available for report references.

You can find more information about how reports can be accessed using a URL in the Administrator‘s Guide.

Similarly, to the report documentation in the Teamspace you can display additional informa-tion on any selected object in the administration module. In the administration module you can add tabs to objects in the report management, user management, dadget management, datasource management and fileserver modules. These are configured within the <admin-views> tag.

The following tables describe which types can be used. Note that the type must be used together with the corresponding prefix.

Objects in Report ManagementPrefix net.datenwerke.rs.core.client.reportmanager.dto.reports.

Type Description

AbstractReportManagerNodeDto All objects in the report management tree

ReportDto reports

ReportFolderDto folders

Objects in User ManagementPrefix net.datenwerke.security.client.usermanager.dto.

Type Description

AbstractUserManagerNodeDto All objects in the user management tree

UserDto users

GroupDto groups

OrganisationalUnitDto organisational units (folders)

Objects in the file serverPrefix net.datenwerke.rs.fileserver.client.fileserver.dto.

Type Description

AbstractFileServerNodeDto All objects in the file server

FileServerFolderDto folders

FileServerFileDto files

Page 36: 2013-08-12-reportserver-configguide (1)

36

Objects in Data Source ManagementPrefix net.datenwerke.rs.core.client.datasourcemanager.dto.

Type Description

AbstractDatasourceManagerNodeDto all objects in data source management

DatasourceFolderDto folders

DatasourceDefinitionDto data sources

Objects in Dadget ManagementPrefix net.datenwerke.rs.dashboard.client.dashboard.dto.

Type Description

AbstractDashboardManagerNodeDto All objects in the dashboard tree

DashboardNodeDto dashboards

DashboardFolderDto folders

The following example would display a tab „User Information“ which displays the website at Url http://www.mycompany.com/employe.

<adminviews>

<view>

<types>net.datenwerke.security.client.usermanager.dto.UserDto</types>

<name>User Information</name>

<url>http://www.mycompany.com/employe=${id}</url>

</view>

</adminviews>

ExtensionsReportServer has a modular design which allows you to easily extend it. The extension points are called „hooks“. Extensions are written in groovy (groovy.codehaus.org) and can „hook into“ various places in ReportServer. In order to use scripts, you must configure certain properties in the configuration file /fileserver/etc/scripting/scripting.cf.

This file controls whether scripts are enabled to begin with. Furthermore, you have to specify a path (in the internal filesystem) beneath which scripts can be placed (this helps to allow users to create/edit files in the file system without giving them the rights to write scripts). Finally, you can name a script which is executed on ReportServer startup and one which is executed whenever a user logs in.

Page 37: 2013-08-12-reportserver-configguide (1)

37

<scripting>

<enable>true</enable>

<restrict>

<location>bin</location>

</restrict>

<startup>

<login>fileserver/bin/onlogin.rs</login>

<rs>fileserver/bin/onstartup.rs</rs>

</startup>

</scripting>

In the above example we allow scripts only in the bin folder (and subfolders). We defined the script fileserver/bin/onlogin.rs as the script that is executed whenever a user logs in (note that the script is executed with the current user, that is, the user that logged in and thus the user must have the rights to execute this script). The second, on startup script is executed without any user.

The onstartup and onlogin scripts shipped with the ReportServer demo data allow you to easily execute your own scripts. The onstartup script executes all scripts in the folder /file-server/bin/onstartup.d. Likewise, the onlogin.rs script executes all scripts within /fileserver/bin/onlogin.d.

Further information on ReportServer scripts can be found in the administration guide.

Executing Reports using URLsYou can configure ReportServer to allow other applications to call reports or to include reports into external websites. For this ReportServer allows to call and configure reports directly using a specific URL. You can find more information about how reports can be ac-cessed using a URL in the Administrators Guide.

In this section we will describe how ReportServer can be configured such that certain re-ports can be accessed without the need for authentication.

The following configuration goes into /fileserver/etc/misc/httpauthexecute.cf.

First, you have to specify a username and a password which are passed to ReportServer using the URL. Note that the username does not have to correspond to a user registered with ReportServer. Having the username and password provides a rudimentary level of security. Note, however, that this can only be secure, if the corresponding HTTP requests are over an encrypted channel (i.e., for example, use SSL).

<username>user</username>

<password>pass</password>

Page 38: 2013-08-12-reportserver-configguide (1)

38

In this case the username is set to „user“ and the password is set to „pass“. Username and password must be specified in any request using the url parameters „user“ and „password“.

The following properties define which reports can be accessed using this method. Allowing a report to be accessed can be done using the report‘s id or its key. Multiple keys/ids are specified comma-separated.

<registered>

<ids>1, 2, 3, 4</ids>

<keys>asd, fgh,jkl</keys>

</registered>

Finally, you must define a user with which the reports are to be executed. Note that the user must have sufficient privileges to actually run the reports.

<executeuser>

<id>123</id>

</executeuser>

Note that now anyone knowing the above specified username and password can execute the here speciefied reports.

Misc SettingsReportServer needs a directory to store temporary files. You can define the directory to use in /filserver/etc/main/main.cf. Furthermore, you can specify a maximum lifetime (in seconds) of temporary files in the directory.

<tempdir>tempdir</tempdir>

<tempfile>

<lifetime>3600</lifetime>

</tempfile>

Page 39: 2013-08-12-reportserver-configguide (1)

39

Maintenance TasksReportServer performs certain maintenance tasks from time to time. You can define the in-terval (in ms) with which ReportServer will execute these.

<maintenance>

<tasks>

<interval>600000</interval>

</tasks>

</maintenance>

ReportServer allows to define a timeout (in ms) for search queries:

<search>

<timeout>5000</timeout>

</search>

Security related propertiesIn the following section we describe certain security related configuration options.

In /fileserver/etc/security/misc.cf you can define a blacklist for ReportServer expressions. If not running ReportServer with a SecurityManager, you should ensure that such expressions cannot use java reflection. At a minimum level you should deny the phrase „getClass.“ Fur-ther information can be found in the administration and user guides.

<juel>

<expression>

<blacklist>getClass</blacklist>

</expression>

</juel>

In the example the expression getClass is prohibited. Multiple expressions are comma se-parated.

Configuring cryptographyThe file /fileserver/etc/security/crypto.cf defines various cryptography related options. The <cryptocredentials> section defines how cryptographic credentials, such as private keys and certificates are retireved for various ReportServer modules.

To do so, a provider is specified for each module.

Page 40: 2013-08-12-reportserver-configguide (1)

40

A provider is defined by specifying the name of the handler-class and some additional attri-butes.

<provider type=“signature“>

<class>

net.datenwerke.rs.incubator.service.crypto.FileServerKeyStoreKryptoCredentialProvider

</class>

<alias>rs</alias>

<secret>secret</secret>

<type>jks</type>

<location>/fileserver/keystore.jks</location>

</provider>

This configures the default handler, which tries to load key-material from a file within the file-server. Providers can be specified for these types:

signature: a keystore that holds the private key, ReportServer uses when sending signed emails

user: a keystore that holds public keys and certificates of ReportServer users. This is used, when sending encrypted emails. An alternate method to provide key material is by using a custom script, that retrieves the keys e.g. from a corporate directory.

Assigning a Password PolicyReportServer allows to configure the use of password policies to „help“ users to choose se-cure passwords. The corresponding configuration goes into the configuration file /fileserver/etc/security/passwordpolicy.cf.

For example, you can define how long passwords should be and define character classes from which the password must be built. Furthermore, you can define how often passwords need to be changed and when a previously chosen password may be chosen again.

<pswd>

<maxage>32</maxage

<minage>1</minage>

<minlength>8</minlength>

</pswd>

The parameter „maxage“ defines the number of days a password remains valid. The parame-ter „minage“ denotes that a password may be changed at most every day. Minlength defines the minimal length of passwords.

The property <historysize>6</historysize> denotes that the last 6 passwords may not be used when changing the password.

Page 41: 2013-08-12-reportserver-configguide (1)

41

You can define a threshold on the number of failed login attempts after which a user account is blocked. This is done using <lockoutthreshold>3</lockoutthreshold>. <lockoutresettime-out>60</lockoutresettimeout> specifies the time after wich automatically locked accounts can be used again.

The characterset definitions specify which characters for a password are approved and how many characters from a particular group must be used.

<characterset>0123456789</characterset>

<choosemin>2</choosemin>

<characterset>abcdefghijklmnopqrstuvwxyz</characterset>

<choosemin>1</choosemin>

<characterset>ABCDEFGHIJKLMNOPQRSTUVWXYZ</characterset>

<choosemin>1</choosemin>

<characterset>!§$%&amp;/=?*µ:.;\,-_+~\\\#@</characterset>

<choosemin>2</choosemin>

In the above example, it is specified that from the first and last group (the digits and special characters) at least 2 characters must be used. From the two remaining groups at least a single character must be used.

Note that the specified number denotes a lower bound on the characters chosen from this group.

User activationUsers can be activated by administrators using the user manager. On this, the user will recei-ve an email with an automatically generated (single use) password (note that for this the mail server must be correctly configured). After the first login, the user must change the password according to the password policy.

You can customize the email sent to the user in the configuration file /fileserver/etc/security/activateuser.cf.

<security>

<activateaccount>

<email>

<subject>Your ReportServer account details</subject>

<text>

Username: ${user.getUsername()}

Password: ${password}

</text>

</email>

</activateaccount>

</security>

Page 42: 2013-08-12-reportserver-configguide (1)

42

The following substitutions are available.

Expression Description

${user.getUsername()} username

${user.getFirstname()} user‘s first name

${user.getLastname()} Last name of user

${user.getEmail()} user‘s email address

${user.getTitle()} user‘s title

${user.getId()} user‘s id

${password} the generated password

${url} the URL under which ReportServer can be accessed

Configuring the SFTP ServerReportServer can be configured to expose its internal filesystem (and other management areas) using an SFTP server. The corresponding configuration goes into /fileserver/etc/misc/misc.cf.

<remoteaccess>

<sftp>

<keylocation>tmpres/hostkey.pem</keylocation>

<port>8022</port>

</sftp>

</remoteaccess>

The file hostkey.pem should contain the server‘s certificate. The path should be defined ab-solutely (e.g., C:/path/to/hostkey.pem)

Note that changes will only take effect after restarting ReportServer. If you do not want to start the SFTP server simply supply an invalid path.

Page 43: 2013-08-12-reportserver-configguide (1)

43

Page 44: 2013-08-12-reportserver-configguide (1)

44

Page 45: 2013-08-12-reportserver-configguide (1)

45

Appendix AConfig File Reference

Configuration FilesIn the following Chapter we provide samples for each configuration file.

datasources/databasebundle.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<bundletype>

<name>BaseBundle</name>

<keys>

<key>Prod</key>

<key>Test</key>

</keys>

</bundletype>

</configuration>

datasources/datasources.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<datasource>

<defaultDatasourceName>Demodaten</defaultDatasourceName>

<useconnectionpool>true</useconnectionpool>

</datasource>

</configuration>

Page 46: 2013-08-12-reportserver-configguide (1)

46

datasources/internaldb.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<internaldb>

<location>dbtmp</location>

<encryption>

<disable>false</disable>

<password>SecretPassphrase</password>

</encryption>

<installdemodata>true</installdemodata>

</internaldb>

</configuration>

datasources/parameter.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<parameter>

<datasource>

<querytimeout>60</querytimeout>

<postprocessing>

<enable>true</enable>

</postprocessing>

</datasource>

</parameter>

</configuration>

datasources/pool.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<pool disable=“false“ provider=“c3p0“>

<defaultconfig>

<partitionCount>4</partitionCount>

<maxConnectionsPerPartition>10</maxConnectionsPerPartition>

<minConnectionsPerPartition>1</minConnectionsPerPartition>

<connectionTimeoutInMs>10000</connectionTimeoutInMs>

<maxConnectionAgeInMs>3600000</maxConnectionAgeInMs>

<queryExecutionTimeLimitInMs>60000</queryExecutionTimeLimitInMs>

<acquireRetryDelayInMs>1000</acquireRetryDelayInMs>

<acquireRetryAttempts>2</acquireRetryAttempts>

<idleMaxAgeInSeconds>3600</idleMaxAgeInSeconds>

<idleConnectionTestPeriodInSeconds>14400</idleConnectionTestPeriodInSeconds>

</defaultconfig>

<pool16>

<!-- specific stuff for datasource with id 16 -->

</pool16>

Page 47: 2013-08-12-reportserver-configguide (1)

47

</pool>

</configuration>

datasources/sql.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<sql>

<incondition>

<maxsize>1000</maxsize>

</incondition>

</sql>

</configuration>

dynamiclists/computedcolumn.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<functions>

<function>abs</function>

<function>ceil</function>

<function>floor</function>

<function>mod</function>

<function>power</function>

<function>round</function>

<function>sign</function>

<function>sin</function>

<function>sqrt</function>

<function>trunc</function>

<function>exp</function>

<function>ln</function>

<function>log</function>

<function>concat</function>

<function>lower</function>

<function>upper</function>

<function>initcap</function>

<function>lpad</function>

<function>rpad</function>

<function>ltrim</function>

<function>rtrim</function>

<function>trim</function>

<function>replace</function>

<function>translate</function>

<function>substr</function>

<function>instr</function>

<function>length</function>

<function>add_months</function>

Page 48: 2013-08-12-reportserver-configguide (1)

48

<function>last_day</function>

<function>months_between</function>

<function>round</function>

<function>sysdate</function>

<function>trunc</function>

<function>to_char</function>

<function>to_date</function>

<function>to_number</function>

<function>hextoraw</function>

<function>rawtohexcomput</function>

</functions>

</configuration>

exportfilecmd/excelexport.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<xls>

<format>xlsx</format>

<stream>true</stream>

</xls>

</configuration>

exportfilecmd/metadata.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<exportmetadata>

<title>Title</title>

<creator>ReportServer</creator>

<author>ReportServer</author>

</exportmetadata>

</configuration>

mail/mail.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<smtp>

<host>mail.datenwerke.net</host>

<port>25</port>

<username>[email protected]</username>

<password>Uur5eeti</password>

<ssl>false</ssl>

<tls>

<enable>false</enable>

<require>false</require>

</tls>

Page 49: 2013-08-12-reportserver-configguide (1)

49

</smtp>

<mail>

<sender>[email protected]</sender>

<encryptionPolicy>allow_mixed</encryptionPolicy>

</mail>

</configuration>

main/localization.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<localization>

<locales>de,en</locales>

<default>de</default>

</localization>

</configuration>

main/main.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<default>

<charset>ISO-8859-1</charset>

</default>

<tempdir>tempdir</tempdir>

<tempfile>

<lifetime>3600</lifetime>

</tempfile>

<maintenance>

<tasks>

<interval>600000</interval>

</tasks>

</maintenance>

<search>

<timeout>5000</timeout>

</search>

</configuration>

main/templates.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<errors>

<html>&lt;!DOCTYPE html PUBLIC „-//W3C//DTD HTML 4.01//EN“ „http://www.w3.org/TR/

html4/strict.dtd“&gt;

&lt;html&gt;

&lt;meta http-equiv=“content-type“ content=“text/html; charset=UTF-8“&gt;

&lt;head&gt;

Page 50: 2013-08-12-reportserver-configguide (1)

50

&lt;title&gt;Fehler&lt;/title&gt;

&lt;link type=“text/css“ rel=“stylesheet“ href=“/ReportServer.css“&gt;

&lt;link rel=“stylesheet“ type=“text/css“ href=“/resources/css/reportserver.css“ /&gt;

&lt;link rel=“stylesheet“ type=“text/css“ href=“/resources/css/modulespecific.css“ /&gt;

&lt;/head&gt;

&lt;body class=“errorpage“&gt;

&lt;div class=“errorpage-header“&gt;Fehler: ${headline}&lt;/div&gt;

&lt;div class=“errorpage-msg“&gt;${msg}&lt;/div&gt;

&lt;div class=“errorpage-todo“&gt;Im Falle eines nicht nachvollziehbaren Fehlers

kontaktieren Sie bitte einen Administrator.&lt;/div&gt;

&lt;div class=“errorpage-stacktrace-header“&gt;Details:&lt;/div&gt;

&lt;div class=“errorpage-stacktrace“&gt;${stacktrace}&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;</html>

</errors>

</configuration>

misc/httpauthexecute.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<httpauthexecute>

<username/>

<password/>

<registered>

<ids/>

<keys/>

</registered>

<executeuser>

<id/>

</executeuser>

</httpauthexecute>

</configuration>

misc/misc.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<database>

<oracle>

<filter>

<convertclobs>true</convertclobs>

</filter>

</oracle>

</database>

<remoteaccess>

<sftp>

Page 51: 2013-08-12-reportserver-configguide (1)

51

<keylocation>tmpres/hostkey.pem</keylocation>

<port>8022</port>

</sftp>

</remoteaccess>

</configuration>

reportdoku/doku.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<report>

<id>48</id>

</report>

</configuration>

reportengines/reportengines.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<birt>

<library>

<folder>

<id>1</id>

</folder>

</library>

<enable>true</enable>

</birt>

<jasper>

<enable>true</enable>

<allowedlanguages>groovy</allowedlanguages>

</jasper>

</configuration>

scheduler/scheduler.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<scheduler>

<mailaction html=“false“>

<subject>ReportServer: ${subject}</subject>

<text>Guten Tag,

eine Einplanung wurde ausgeführt.

Bericht: ${report.getName()}

Nachricht: ${message}

</text>

<attachment>

<name>rep-${report.getName()}-${RS_CURRENT_DATE}</name>

Page 52: 2013-08-12-reportserver-configguide (1)

52

</attachment>

</mailaction>

<fileaction disabled=“false“ html=“false“>

<subject>ReportServer: Einplanung in Teamspace gespeichert</subject>

<text>Guten Tag,

eine Einplanung in den Teamspace wurde ausgefuehrt.

Bericht: ${report.getName()}

Dateiname: ${filename}

Beschreibung: ${description}

Teamspace: ${teamspace.getName()}

Ordner: ${folder.getName()}

</text>

</fileaction>

<notification disabled=“false“ html=“false“>

<scheduled>

<subject>ReportServer: Neue Einplanung</subject>

<text>Es wurde eine Einplanung für Sie vorgenommen.

Bericht: ${reportName}

Benutzer: ${scheduleUser}

Nächste Termine: ${nextDates}

</text>

</scheduled>

<unscheduled>

<subject>ReportServer: Einplanung gelöscht</subject>

<text>Eine Einplanung wurde gelöscht.

Report: ${reportName}</text>

</unscheduled>

<failed>

<subject>ReportServer: Einplanung fehlgeschlagen</subject>

<text>Die eingeplante Ausführung des Berichts ist fehlgeschlagen.

Bericht: ${reportName}

Fehlermeldung: ${errMsg}

Empfänger: ${recipients}

Fehler-Details: ${stacktrace}

</text>

</failed>

</notification>

<properties>

<disabled>false</disabled>

</properties>

</scheduler>

</configuration>

Page 53: 2013-08-12-reportserver-configguide (1)

53

scripting/scripting.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<scripting>

<enable>true</enable>

<restrict>

<location>bin</location>

</restrict>

<startup>

<login>fileserver/bin/onlogin.rs</login>

<rs>fileserver/bin/onstartup.rs</rs>

</startup>

</scripting>

</configuration>

security/activateuser.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<security>

<activateaccount>

<email>

<subject>Zugang zu Reportserver</subject>

<text>Hallo ${user.getFirstname()} ${user.getLastname()}, &#xD;

&#xD;

Ihr Zugang zu ReportServer wurde freigeschaltet. &#xD;

Bitte melden Sie sich mit folgenden temporären Zugangsdaten auf &#xD;

&#xD;

${url}&#xD;

&#xD;

an. Sie werden dann aufgefordert ihr endgültiges Kennwort zu wählen. &#xD;

&#xD;

Benutzername: ${user.getUsername()}&#xD;

Kennwort: ${password}&#xD;

&#xD;

Bitte beachten Sie, dass für eine erfolgreiche Anmeldung korrekte Groß-/Kleinschreibung

sowohl im Benutzernamen als auch im Kennwort erforderlich ist. &#xD;

&#xD;

Liebe Grüße, &#xD;

Reportserver</text>

</email>

</activateaccount>

</security>

</configuration>

Page 54: 2013-08-12-reportserver-configguide (1)

54

security/crypto.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<cryptocredentials>

<provider type=“signature“>

<class>net.datenwerke.rs.incubator.service.crypto.

FileServerKeyStoreKryptoCredentialProvider</class>

<alias>rs</alias>

<secret>secret</secret>

<type>jks</type>

<location>/fileserver/keystore.jks</location>

</provider>

<provider type=“sftp“>

<class>net.datenwerke.rs.incubator.service.crypto.

FileServerKeyStoreKryptoCredentialProvider</class>

<alias></alias>

<secret></secret>

<type></type>

<location></location>

</provider>

<provider type=“user“>

<class>net.datenwerke.rs.incubator.service.crypto.

FileServerKeyStoreKryptoCredentialProvider</class>

<alias>rs</alias>

<secret>secret</secret>

<type>jks</type>

<location>/fileserver/keystore-usr.jks</location>

</provider>

</cryptocredentials>

</configuration>

security/misc.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<juel>

<expression>

<blacklist>getClass</blacklist>

</expression>

</juel>

</configuration>

Page 55: 2013-08-12-reportserver-configguide (1)

55

security/passwordpolicy.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<rs>

<security>

<passwordpolicy>

<bsipasswordpolicy>

<pswd>

<maxage>32000</maxage>

<minage>1</minage>

<minlength>8</minlength>

</pswd>

<historysize>6</historysize>

<lockoutthreshold>3</lockoutthreshold>

<lockoutresettimeout>60</lockoutresettimeout>

<characterset>0123456789</characterset>

<choosemin>1</choosemin>

<characterset>abcdefghijklmnopqrstuvwxyz</characterset>

<choosemin>1</choosemin>

<characterset>ABCDEFGHIJKLMNOPQRSTUVWXYZ</characterset>

<choosemin>1</choosemin>

<characterset>!§$%&amp;/=?*µ:.;\,-_+~\\\#@</characterset>

<choosemin>1</choosemin>

</bsipasswordpolicy>

</passwordpolicy>

</security>

</rs>

</configuration>

terminal/alias.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<cmdaliases>

<entry>

<alias>ll</alias>

<command>ls -l</command>

</entry>

</cmdaliases>

</configuration>

Page 56: 2013-08-12-reportserver-configguide (1)

56

ui/objectinfo.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<objectinfo>

<ty-pes>net.datenwerke.rs.tsreportarea.client.tsreportarea.dto.

TsDiskReportReferenceDto</types>

<name>Report Information</name>

<url>reportserver/reportexport?key=DOKUBERICHT&amp;format=html&amp;p_

reportId=${reportId}</url>

</objectinfo>

<objectinfo>

<ty-pes>net.datenwerke.rs.tsreportarea.client.tsreportarea.dto.

TsDiskReportReferenceDto</types>

<name>Aenderungshistorie</name>

<url>reportserver/reportexport?key=REVISIONS&amp;format=html&amp;p_

reportId=${reportId}</url>

</objectinfo>

</configuration>

ui/previews.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

<pdf>

<forcelegacy>false</forcelegacy>

</pdf>

</configuration>

ui/urlview.cf<?xml version=“1.0“ encoding=“UTF-8“?>

<configuration>

#todo .. wrong type<adminviews>

<view>

<ty-pes>net.datenwerke.rs.core.client.reportmanager.dto.reports.

ReportDto,xxxnet.datenwerke.rs.core.client.reportmanager.dto.ReportFolderDto</types>

<name>Eine URL</name>

<!--<url>/reportserver/lala/id=${id}&amp;type=${type}</url>-->

<url>http://spiegel.de</url>

</view>

<view>

<types>net.datenwerke.rs.core.client.reportmanager.dto.ReportFolderDto</types>

<name>Eine andere URL</name>

<url>/reportserver/nurFolder/id=${id}&amp;type=${type}</url>

</view>

Page 57: 2013-08-12-reportserver-configguide (1)

57

</adminviews>

<objectinfo>

</objectinfo>

</configuration>

Page 58: 2013-08-12-reportserver-configguide (1)

datenwerke - Jan AlbrechtAdolfsallee 41D-65185 Wiesbaden

www.datenwerke.net