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:

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.