Exago recommends installing at least three, entirely separate environments: development, testing, and production. As such, architecting an implementation strategy to move an Exago configuration from system to system is an inevitable and important process. As a highly-configurable environment, Exago consists of many components. This article will describe these components, where they are located, why they need to be part of the implementation strategy, and how they should be propagated from system to system.
For the sake of being all-encompassing, this article will assume that all components of Exago have been installed and are part of your deployment strategy. If you choose not to use one or more of these components, the respective sections may be ignored.
Important: Many of the files listed below are impacted by the installer when updating to a new version of Exago. Please see the Updating Recommendations and Updating to the Latest Version articles regarding any files that need to be updated or recreated.
An Exago installation could include the following components:
- Web Application
- Web Service API
- Customization DLLs (Folder Management, Server Events, Action Events, Custom Functions, Scheduler Queue)
The primary configuration for any Exago system is done via the Admin Console. There are countless configurations made with the Admin Console that are saved, redundantly, to two separate files. One of these files, defaulted to WebReports.xml, is a clear-text, standards-based xml file. It is appropriate for source control repositories given its consistent and clear-text nature. The other file, WebReports.xml.enc (derived from the name of the associated xml file), is an encrypted version of the aforementioned WebReports.xml file.
The encrypted version of the xml file should be considered to be the deployable version of the configuration. As such, it would be passed to Configuration Management as part of the deployment process. It is not necessary to deploy both the clear-text and the encrypted versions of the configuration created with the Admin Console. All configuration files created by the Admin Console are saved in the Config directory of Exago’s web application installation.
Note: When your config settings have been finalized, it is recommended that the Admin Console is disabled the plain-text config file be removed from the Config folder and saved in a secure location. For more information on security recommendations, please see the Security Checklist article.
Due to the fact that the configuration should progress from development to testing environments, and eventually to production, via controlled processes, the Admin Console should only exist in development for reasons similar to other development tools, such as an IDE. While the Admin Console is installed as part of Exago’s base installation (Admin.aspx), under most circumstances, it should be removed from any system outside of development.
In addition to the primary Exago configuration created using the Admin Console, there are numerous additional configuration files that may be relevant here. All of these are optional, created or edited manually via a text editor on an as-needed basis, and override existing features or provide additional functionality. These files are saved as clear-text and are appropriate for source control repositories.
All language files are saved as clear-text, standards-based xml files in the Config/Languages directory of Exago's web application installation.
Data Source Customizations
Data Source customizations are saved as clear-text, standards-based json in the Config/Other directory of the web application installation.
Application-level theme files include CSS, fonts, and images, typically replicated from the Exago Basic theme, which are saved in the ApplicationThemes directory of the web application installation.
Element-level theme files are saved as clear-text, proprietary-format files, and are created using a Theme Maker tool. These files are used for the styling of Charts, CrossTab Reports, Express Reports, and GeoCharts, and are saved in the Themes directory of the web application installation.
Folder Management and Monitoring Configuration
A separate config file used for providing configurations for Folder Management or Monitoring, this file is located in the root directory of the web application installation.
Web Application Server Configuration
A separate config file used for providing configuration details to the web application server and/or Exago itself, this file is frequently modified. Common Exago configurations are used to set cookieless sessions, activate state servers, set connection strings, and add custom headers. This file is located in the root directory of the web application installation.
Database Drivers and Fonts
Database drivers may also be added to the system, assuming that the system doesn’t ship with the appropriate divers already. These drivers would be saved as DLLs in the Drivers directory of the web application installation.
Similarly, custom fonts may be included in the system. These would be saved in the Fonts directory of the web application installation.
Due to the fact that these files are compiled components and are likely provided by third parties, drivers and fonts are likely not source code repository friendly, and would also need to be propagated from development through to production.
Web Service API
The Web Service API is an optional component and may or may not be installed or used. If applicable, like the Scheduler, the Web Service API requires some configurable components similar to those listed as components of the web application itself. The following pertain to the Web Service API exactly as they pertain to the web application:
- Data Source customizations
In addition to the above, there are two clear-text configuration files that can be customized, based on the needs of the Web Service API itself:
The Web Service API xml file, defaulted as WebReportsApi.xml, is a clear-text, standards-based xml file, and is used to configure the connection between the Web Service API and the web application installation. It is located in the Config directory of the Web Service API installation.
The configuration file is a clear-text, standards-based xml file, and is used to activate the Web Service API. It is located in the root directory of the Web Service API installation.
The Scheduler is an optional component and may or may not be installed or used. If applicable, the Scheduler executes reports and, as such, requires configurable components similar to those listed as components of Exago’s web application itself. The following pertain to the Scheduler exactly as they pertain the web application:
- Language files
- Data Source customizations
In addition to the above, there are two clear-text configuration files that can be customized based on the needs of the Scheduler itself:
The Scheduler xml file, defaulted to eWebReportsScheduler.xml, is a standards-based xml file that includes configurations such as SMTP server connectivity configurations, communication channel and port information for connection to Exago itself, and many other configuration specific to the Scheduler. This file is located in the root directory of the Scheduler installation.
The Scheduler xml configuration file, defaulted to eWebReportsScheduler.exe.config, is a standards-based xml file and is analogous to Exago’s web application web.config file and may include configurations described previously. This file is located in the bin directory of the Scheduler installation.
Other than the monitoring configuration mentioned in the Web Application section, additional configurations can be made in the Monitoring.exe.config file. This file is formatted similar to the web application web.config file and saved in the root directory of the Monitoring installation.
Additionally, the current Monitoring implementation produces an SQLite database that is saved in the root directory of the Monitoring installation. While this database is not configurable, if Monitoring is configured, its maintenance should be taken under consideration by Configuration Management.
While these are entirely optional components, Exago is frequently and extensively customized via custom code compiled to DLLs. While these DLLs are configured via the aforementioned Admin Console, they need only be accessible via file system, meaning that they do not need to be deployed as part of Exago’s configuration. However, typical implementations of custom DLLs require components of Exago DLLs to be referenced, and, as such, require the maintenance of these custom implementations to be taken into consideration by Configuration Management.