Web Server

Related Pages

For step-by-step instructions, see the Web Server Installation Instructions.


CLAIMS Direct Web Services (CDWS) are a collection of services built on the Perl Cataylst framework. The application runs as a virtual host and a typical deployment would be in combination with Apache httpd.

On-site installations of CDWS have a very limited set of services available, namely /text and, if the optional Solr index is installed, /search. Citation and family services may be accessed as described in the blog Leveraging On-Site Citation and Family Functionality. All other service interfaces must be called remotely to https://cdws21.ificlaims.com. Please contact support@ificlaims.com for further details.

Hardware Requirements

RequirementRecommended
CPU2-cores
System Memory4GB
System Storage100GB

Software Requirements

RequirementRecommendedNotes
Apache httpdDistribution version
yum -y install httpd
Perl ModulesDistribution version
yum -y install \
# overkill, but saves an incredible amount of time
perl-open \
perl-Catalyst* \
perl-Module-Install \
perl-DBD-Pg \
perl-XML-LibXML \
perl-XML-LibXSLT \
perl-CPAN
CLAIMS Direct LibraryLatest VersionContact support@ificlaims.com for link to latest version
CLAIMS Direct Web Services (CDWS)Latest VersionContact support@ificlaims.com for link to latest version

Configuration

The main configuration files for CDWS reside in /opt/fv/lib/perl5/Alexandria/CDWS and are:

  • alexandria-cdws-apache.conf
    The virtual host definition. Here you can change the Port httpd listens on for the CDWS application.
  • alexandria-cdws.conf
    The main application configuration file.

The main configuration file (alexandria-cdws.conf) is broken into the following sections:

  • Global Parameters
  • Authentication Plugins
  • Database Models

Global Parameters

CLAIMS Direct Web Services

The following table explains the global parameters and values in alexandria-cdws.conf:

ParameterDefault ValueCustom ConfigurableDescription
namealexandria-cdwsNoThe package name
remote1NoThis variable guides code logic depending on the CLAIMS Direct installation being remote (on-site) or Primary
log_statistics_database1YesIf requests should be logged into the admin.t_user_statistics table
log_statistics_error_log1YesIf requests should be logged into the httpd error_log
index_version21YesThe index version. Although this variable is configurable, it shouldn't need to be changed.
enable_ip_authentication1NoThis parameter activates code that allows IP authentication
secure0YesChange this parameter to 1 to broadcast to CDWS application that the web server is running under SSL

CLAIMS Direct Web Interface

The following table explains the global parameters and values in alexandria-cdwi.conf:


ParameterDefault ValueCustom ConfigurableDescription
namealexandria-cdwiNoThe package name
enable_log4js0YesEnable or disable popup javascript logging (very useful for debugging)
remote1NoThis variable guides code logic depending on the CLAIMS Direct installation being remote (on-site) or Primary
cdwi version2.1NoVersion of CLAIMS Direct Web Interface
index_version21YesThe index version. Although this variable is configurable, it shouldn't need to be changed.
enable_ip_authentication0NoThis parameter activates code that allows IP authentication
secure0YesThis is under apache with SSL
location of transient datatransient_data_directory /tmpYesStorage directory for temporary data. This is configurable but /tmp is recommended.
maximum number of results to report / extractresult_set_export_max 30000NoThe maximum number of records which can be reported or extracted

Authentication Plugins

The plugins section contains the directives for authentication. As this uses database model definitions appearing later in the file, this directive should not be modified.

Database Models

The following table lists the database models defined, along with their function. Italic rows are not available with on-site installations:


Database ModelVariablesFunctionNotes
Model::DBIx::ConnectornoneMain PostgreSQL interface
Model::CustomhostInterface into the reporting databaseThis interface enables CSV reporting. This reporting module is superseded by Model::Report defined below.
Model::WebhostDeprecated (was earlier web sessions interface)
Model::CDWSserver addressServer URL
Model::UsershostInterface into the users database supporting the authentication plugin
Model::Reporthost
solrurl
storage 
Interface into the users databaseThis interface supports v2.x reporting for both XML and CSV. To use this interface effectively, the optional Solr component must be installed locally.
Model::SessionhostInterface into the users databaseThis interface supports the Sessions web services (experimental)
Model::DWH::Standard
Model::DWH::Premium
Model::DWH::Premium::Plus 
hostInterface into the main alexandria XML data warehouseThis interface supports a variety of web services, including /text
Model::Attachments
Interface into the attachments databaseUnavailable with on-site installations
Model::Inventory
Interface into the raw data warehouseUnavailable with on-site installations
Model::MSSQL
Interface into the level I data warehouseUnavailable with on-site installations
Model::Solr::Standard
Model::Solr::Premium
Model::Solr::Premium::Plus 
base
server
collection
params 
Main interfaces into the Solr indexAvailable only with optional Solr installation
Model::Solr::Attachments
Interface into attachments indexUnavailable with on-site installations
Model::Solr::PITR
Interface into PITR reporting indexUnavailable with on-site installations
Model::Zabbix
Interface into systems monitoringUnavailable with on-site installations

Apache httpd Integration

alexandria-cdws-apache.conf Installation

To enable CDWS to run under httpd, the virtual host definition file alexandria-cdws-apache.conf must be either copied or linked into /etc/httpd/conf.d.

# link (recommended)
cd /etc/httpd/conf.d && ln -s /opt/fv/lib/perl5/Alexandria/CDWS/alexandria-cdws-apache.conf z01.conf
# or copy
sudo cp /opt/fv/lib/perl5/Alexandria/CDWS/alexandria-cdws-apache.conf /etc/httpd/conf.d/z01.conf

Apache httpd Directory Permissions

Depending on distribution, you may also need to adjust the permissions to the root Directory in httpd.conf.

<Directory />
    AllowOverride none
    Require all granted
</Directory>

Enable, Start, and Stop httpd

sudo systemctl enable httpd.service
sudo systemctl start httpd.service
# stop
# sudo systemctl stop httpd.service