Configuration
Introduction
From Jarvis’s point of view, an “application” is a collection of datasets which share some basic attributes in common. Most importantly they share:
- The database connection(s).
- The username/group list.
- The directory containing dataset definition files.
These parameters and many others are defined by the application global configuration file. The following file demonstrates all of the current application config parameters supported by Jarvis.
<?xml version="1.0" encoding="utf-8"?>
<jarvis>
<app format="json" debug="yes" dump="yes" require_https="no">
<habitat>
<install_type>test</install_type>
</habitat>
<page_limit_param>limit</page_limit_param>
<page_start_param>start</page_start_param>
<sort_field_param>sort</sort_field_param>
<sort_dir_param>dir</sort_dir_param>
<method_param>_method</method_param>
<dataset_dir>/usr/share/jarvis/demo/dataset</dataset_dir>
<router>
<route path="/boat_class/:boat_class" dataset="boat_class"/>
<route path="/boat/by-class/:boat_class" dataset="boat"/>
<route path="/boat/:id" dataset="boat" restful="element"/>
</router>
<default_libs>
<lib path="/home/myapp/edit/plugin"/>
</default_libs>
<default_parameters>
<parameter name="max_rows" value="500"/>
</default_parameters>
<login module="Jarvis::Login::Database">
<parameter name="user_table" value="staff"/>
<parameter name="user_id_column" value="id"/>
<parameter name="user_username_column" value="name"/>
<parameter name="user_password_column" value="password"/>
<parameter name="group_table" value="staff_group"/>
<parameter name="group_username_column" value="name"/>
<parameter name="group_group_column" value="group_name"/>
<parameter name="encryption" value="md5"/>
<parameter name="salt_prefix_len" value="2"/>
</login>
<database connect="dbi:Pg:dbname=test" username="" password=""/>
<database name="secondary" connect="dbi:Pg:dbname=test" username="" password=""/>
<sessiondb store="driver:file;serializer:default;id:md5" expiry="+3M" cookie="APP_CGISESSID">
<parameter name="Directory" value="/home/myapp/tmp/sessions"/>
</sessiondb>
<exec dataset="sample" access="*" command="/path/to/program" add_headers="yes" filename_parameter="filename"/>
<plugin dataset="csvexport" access="admin" lib="/path/to/plugin" module="Test::ExportToCsv" add_headers="yes"/>
<plugin dataset="doSomethingUnspecified" access="admin" module="Test::DoSomethingUnspecified" add_headers="yes"/>
<hook module="MyHooks::CustomAudit"/>
</app>
</jarvis>
For further details on the parameters supported by the Jarvis application see Application Configuration for more information.