Server

Seal Report includes a Web Report Server to publish and edit your reports and dashboards on the Web.
The server must have Internet Information Server (IIS) installed with the option Application Development/ASP.Net 4.5 or greater.

Web Server Publication Wizard

To publish the Web Report Server, run the Server Manager and select the menu Configuration->Publish Web Site on IIS... to execute the Web Server Publisher wizard.
If the site was previously published, use the button Publish only files to update the current site.

Server Configuration

Use the Configuration->Configure Server... menu of the Server Manager to configure global parameters for the product.
The server configuration has various properties (e.g. you can configure your default culture, formats and CSV separator using the Format properties.).

Server Scripts

Use the Report Creation Script to change the default report object when it is created (e.g. adding a specific view or changing a default view parameter), or Report Execution Init Script to modify the report before the execution (e.g. changing a default format).
Common Scripts collection can be used to share functions amongst all scripts used in the product.
Be sure that the Server is local (No internet) property equals true if your server has no access to the internet.
In this case all the Java Scripts and CSS files used in the report result will be loaded from the server.

PDF and Excel Converter Configurations

If you are using the PDF and Excel converter component, the server configuration contains the Default PDF Configuration and the Default Excel Configuration that are used by default when a conversion is done.

Server Tools

The Server Manager has also Tools menu to check the server Data Sources and Reports.

  • Check Data Sources checks the current Data Source amongst the database (tables, joins and enumerated lists).
  • Check Report Executions executes all the reports of the repository. During the execution, tasks are skipped and all models are loaded with the restriction 1=0.
  • List Widgets published in the repository browses all the reports in the repository and shows all the Widget published with their location.
  • Refresh Enumerated Lists updates all the values of dynamic enumerated lists. The Data Source must then be saved.
  • Synchronize Report Schedules checks all the schedule of the reports in the repository and synchronize them in the Windows Task Scheduler. The schedule is defined with SYSTEM user.
  • Synchronize Report Schedules with the logged user performs the same but the schedule is defined with the user running the Server Manager.

Dashboards

The Web Report Server allows the publication and the management of Dashboards.
A Dashboard contains several Widget Items that references a published Widget.
A Widget Item has its own configuration to override the Widget properties (e.g. to change the size, the color, the icons, etc.).

A Widget is a report view published for Dashboard.
Check Widget Publication for Dashboards for more information on Widget.

Dashboards are defined in files (*.sdax) located in the /Dashboards Repository sub-folder.
Using the Dashboard Manager, a user can also create and manage Personal Dashboards, in this case the Dashboards files are located in his personal folder under the /SpecialFolders/Personal Repository sub-folder.

Dashboard Objects

Web Report Designer and Dashboard Manager

The Web Report Designer that includes the Dashboard Manager is a commercial component available at https://ariacom.com and is not part of the Open Source version.
If you are interested in using the designer, please contact Ariacom to request a demonstration login.

Web Security

The Web Security defines the login process to the Web Report Server through Security Provider and all the user rights through the Security Groups.

Security Provider

The Security Provider defines how the authentication is done when a user wants to login.
All the default Security Providers are defined in *.cshtml files in the /Security/Providers Repository sub-folder.
A Security Script is executed to define the name and the groups of the user. If the user has no group, the authentication has failed.
Depending on his type, a security provider may have parameters (e.g. to configure the LDAP Server name for the LDAP Authentication Provider).

The following Security Providers are available and can be easily modified.
Check the Security Script to have more information.
  • Basic Authentication shows a simple user/password authentication from the user name and password of the login window.
  • Basic Windows Authentication use Windows authentication to validate the user name and password, and define the groups: Windows group names must match group names defined in the security.
  • Database Authentication shows a sample of querying the database to authenticate and get the groups.
  • Integrated Windows Authentication is the same as Basic Windows Authentication but relies on the integrated authentication provided by IIS.
  • LDAP Authentication shows a sample of using the LdapConnection object to authenticate and get the groups.
  • No Security just adds a security group to the user.
Script sample for the Basic Authentication Provider, the security group is added to the logged user at line 15:
@using Seal.Model
@using Seal.Helpers
@{
    SecurityUser user = Model;
	//Basic authentication script: use the user name and password to authenticate the user and set his name and security groups...
	//user.WebUserName -> user name from the login screen
	//user.WebPassword -> password from the login screen

	user.Name = user.WebUserName; //Display name
	//user.PersonalFolderName -> may be set to defined the personal folder name
	
    //security check can be hardcoded
	if (user.WebUserName == "userName" && user.WebPassword == "password")
	{
		user.AddDefaultSecurityGroup();
		//user.AddSecurityGroup("aGroupName");
	}
	else {
		throw new Exception("Invalid user name or password");
	}
}
                            

Test your security provider

Once your Security Provider configured, user the helper Test a login to fully test a login process with given name and password.

Security Group

After a successful authentication process, the user belongs to one or several Security Groups.

A Security Group allows to configure:
- which repository folders are published for the user,
- if the user can view reports and/or dashboards,
- if the user has personal folders,
- which columns, data sources, connections or devices can be selected with the Web Report Designer,
- which dashboards folders are published,
- if the user has a personal folder for dashboards,
- which widgets can be selected from the Dashboard Manager.

A Security Group has a collection of repository Folders, each folder has a given relative path and right (from No Right to Edit Reports) and a collection of Dashboard Folders, with a given name and right (from No Right to Edit Dashboards).

If a user belongs to several groups, the following rules are applied:

For the Reports folders
  • Folders: the highest right is used (No right, Execute reports / View files, Execute reports and outputs / View files, Edit schedules / View files, Edit reports / Manage files).
  • Personal folder: the highest right is used (No personal folder, Personal folder for files only, Personal folder for reports and files).
  • View type: the union of the views (Reports, Dashboards).
For Web Report Designer security
  • SQL Models: Is true if one group has the right to create SQL Models.
  • Devices, Sources, Connections, Columns: Cannot be selected if it is specified in one group.
For the Dashboards publication
  • Dashboards Folders: the union of the Dashboards folders published with their highest right.
  • Manage Dashboards View: Is true if one group has the right to Manage Dashboards View.
  • Personal Dashboard Folder: Is true if one group has a personal Dashboard Folder.
For the Dashboard Manager security
  • Widgets: Cannot be selected if it is specified in one group.

A Meta Column or a Widget may have a Security Tag property. This text can be used to define rights for the designers.

List the current right definitions

Use the View security groups summary top left button to have a summary of the groups and rights defined.
Security Objects

Seal Web Interface

Once installed, the Web Report Server offers a simple interface to ease the integration of Seal Report into existing web sites.

Check the API Description and Samples at https://sealreport.org/demo/WebInterfaceAPI.html.

Contribute to Seal Report

Enhance the documentation and samples

Want to share your experience or to add a new topic ? Something is not clear in the documentation ? Do you have an interesting recipe ?
As the site for the documentation is part of the solution, you are welcome to Pull a Request at GitHub.

Add translation files

Do you have a translation files not yet supported by Seal Report ?
Check first the recipe Adding translation files.
As the translations are part of the project, feel free to Pull a Request at GitHub.

And more...

You are also welcome to help us in several different areas:
  • Beta testing.
  • Libraries of Data Sources and Reports on standard databases.
  • Additional View templates.
  • New features development.
Please feel free to contact us at Ariacom or use GitHub if you are interested in contributing to Seal Report.