Configuration Parameters
Overview
Located in the the conf/production
directory, the
file itop-config.php contains all the configuration parameters of
iTop.
This file is created during the setup, and updated upon upgrade.
If you have done some modifications to the settings, please backup this file prior to executing an upgrade, because the file will be generated again by the upgrade program. For example, comments will be lost.
The configuration file contains the following sections:
-
MySettings: contains iTop settings. Some settings are not visible in the file generated by the installation program. These are settings for troubleshooting or disabling some features (workaround for complex integrations).
-
MyModuleSettings: contains module settings.
-
MyModules: lists the PHP files to include. It is a way to disable -temporarily- an installed feature. Depending on your need for language support, you might comment out some lines. This can speedup significantly the execution of every single iTop page. Please note that those changes will be lost when upgrading iTop.
Settings
Parameter | Type | Visible ? | Description | Default Value |
---|---|---|---|---|
access_message | string | Yes | Message displayed to the users when there is any access restriction | iTop is temporarily frozen, please wait… (the admin team) |
access_mode | integer | Yes | Flags (ACCESS_READONLY =0 , ACCESS_ADMIN_WRITE =2 or ACCESS_FULL =3) | 3 |
addon_list | array | Yes | Automatically populated by the installation process | |
allow_target_creation | bool | No | Displays the + button on external keys to create target objects | true |
allowed_login_types | string | Yes | The list (and in which order) of authentication methods that the application allows. The value is a combination of form,cas,basic,external,url | form,basic,external |
apc_cache.enabled | bool | Yes | If set, the APC cache is allowed (the PHP extension must also be active) | true |
apc_cache.query_ttl | integer | Yes | Time to live set in APC for the prepared queries (seconds - 0 means no timeout) | 3600 |
app_env_label | string | No | Label displayed to describe the current application environnment, defaults to the environment name (e.g. “production”) | |
app_icon_url | string | No | Hyperlink to redirect the user when clicking on the application icon (in the main window, or login/logoff pages) | http://www.combodo.com/itop |
app_root_url | string | Yes | Root URL used for navigating within the application, or from an email to the application (you can put $SERVER_NAME$ as a placeholder for the server's name) | |
application_list | array | Yes | Automatically populated by the installation process | |
async_task_retries | array | No | New in 2.0.3 Automatic retries of asynchronous tasks in case of failure (per class) | Array |
buttons_position | string | Yes | Position of the forms buttons: bottom , top , both | both |
breadcrumb.max_count | integer | No | Maximum number of items kept in the history breadcrumb. Set it to 0 to entirely disable the breadcrumb. | 8 |
cas_context | string | No | The CAS context | |
cas_debug | bool | No | Activate the CAS debug | false |
cas_default_profiles | string | No | A semi-colon separated list of iTop Profiles to use when creating a new user if no profile is retrieved from CAS | Portal user |
cas_host | string | No | The name of the CAS host | |
cas_include_path | string | Yes | The path where to find the phpCAS library | /usr/share/php |
cas_logout_redirect_service | string | No | The redirect service (URL) to use when logging-out with CAS | |
cas_memberof | string | No | A semicolon separated list of group names that the user must be member of (works only with SAML - e.g. cas_version⇒ “S1”) | |
cas_port | integer | No | The port used by the CAS server | 443 |
cas_profile_pattern | string | No | A regular expression pattern to extract the name of the iTop profile from the name of an LDAP/CAS group | /^cn=([^,]+),/ |
cas_server_ca_cert_path | string | No | The path where to find the certificate of the CA for validating the certificate of the CAS server | |
cas_update_profiles | bool | No | Whether or not to update the profiles of an existing user from the CAS information | false |
cas_user_synchro | bool | No | Whether or not to synchronize users with CAS/LDAP | false |
cas_version | string | No | The CAS protocol version to use: “1.0” (CAS v1), “2.0” (CAS v2) or “S1” (SAML V1) ) | 2.0 |
complex_actions_limit | integer | No | Display the “actions” menu items that require long computation only if the list of objects is contains less objects than this number (0 means no limit) | 50 |
concurrent_lock_enabled | bool | Yes | new in 2.2.0 Whether or not to enable the locking mechanism to prevent concurrent interactive modifications | true |
concurrent_lock_expiration_delay | int | No | new in 2.2.0 The delay (in seconds) for a lock to expire (in case of a crash of the web browser or a loss of connection). While editing an object, the browser will call the server twice during this interval. Minimum value is 15s. Lower values provide a more responsive user interface but increase the load on the server and the network traffic. | 120 |
concurrent_lock_override_profiles | array | No | new in 2.2.0 The list of profiles which are allowed to “kill” a lock. The value is an array of profile names | array('Administrator') |
cron_max_execution_time | integer | Yes | Duration (seconds) of the page cron.php, must be shorter than php setting max_execution_time and shorter than the web server response timeout | 600 |
cron_sleep | integer | No | Duration (seconds) before cron.php checks again if something must be done | 2 |
csv_file_default_charset | string | Yes | Character set used by default for downloading and uploading data as a CSV file. Warning: it is case sensitive (uppercase is preferable). | ISO-8859-1 |
csv_import_charsets | array | Yes | An array of character sets names to be added to the ones offered by the CSVImport menu item. Add your own charsets definitions here if the standard list does not fit your needs. | |
csv_import_creations_percentage | integer | No | Percentage of creations that trigger a confirmation in the CSV import | 50 |
csv_import_errors_percentage | integer | No | Percentage of errors that trigger a confirmation in the CSV import | 50 |
csv_import_history_display | bool | Yes | Display the history tab in the import wizard | false |
csv_import_min_object_confirmation | integer | No | Minimum number of objects to check for the confirmation percentages | 3 |
csv_import_modifications_percentage | integer | No | Percentage of modifications that trigger a confirmation in the CSV import | 50 |
datamodel_list | array | Yes | Automatically populated by the installation process | |
date_and_time_format | array | Yes | New in 2.3.0 The date/time format to use when displaying date and times in iTop | see below |
db_character_set | string | Yes | Character set to use for the MySQL database | utf8 |
db_collation | string | Yes | Collation (i.e sort mechanism) to use for the MySQL database | utf8_unicode_ci |
db_host | string | Yes | Name of the host for the MySQL database server. (e.g. localhost, 192.168.10.234, mydbserver.demo.com, etc.) | |
db_name | string | Yes | Name of the MySQL database | |
db_pwd | string | Yes | Password to connect to the MySQL server | |
db_subname | string | Yes | Prefix of the tables in the MySQL database | |
db_user | string | Yes | user name to connect to the MySQL server | |
deadline_format | string | Yes | The format used for displaying “deadline” attributes: any string with the following placeholders: $date$, $difference$ | $difference$ |
debug_report_spurious_chars | bool | No | Report, in the error log, the characters found in the output buffer, echoed by mistake in the loaded modules, and potentially corrupting the output | false |
default_language | string | Yes | The default language for the application, used for the login/logout pages. (Selected during the installation) | EN US |
demo_mode | bool | No | Set to true to prevent users from changing passwords/languages | false |
dictionary_list | array | Yes | Automatically populated by the installation process | |
disable_mandatory_ext_keys | bool | No | New in 2.0.3 For developpers: allow every external keys to be undefined | false |
email_asynchronous | bool | Yes | If set, the emails are sent off line, which requires cron.php to be activated. Exception: some features like the email test utility will force the serialized mode | false |
email_css | string | No | CSS that will be applied to the contents of the email. See lib/email.css for an example (optional) | .caselog_header {color: red;} |
email_transport | string | Yes | Mean to send emails: PHPMail (uses the function mail()) or SMTP (implements the client protocole) | PHPMail |
email_transport_smtp.encryption | string | No | tls or ssl (optional) | |
email_transport_smtp.host | string | No | host name or IP address (optional) | localhost |
email_transport_smtp.password | string | No | Authentication password (optional) | |
email_transport_smtp.port | integer | No | port number (optional) | 25 |
email_transport_smtp.username | string | No | Authentication user (optional) | |
email_validation_pattern | string | Yes | New in 2.0.3 Regular expression for validating email addresses | [a-zA-Z0-9._&'-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,} |
encryption_key | string | Yes | A “salt” key used for encrypting secured fields in the application. | @iT0pEncr1pti0n! |
fast_reload_interval | integer | Yes | The duration (in seconds) between two reloads of a list, if the reload interval is “fast” | 60 |
forgot_password | bool | No | Enable the “Forgot password” feature | true |
forgot_password_from | string | No | New in 2.0.3 Sender email address for the “forgot password” feature. If empty, defaults to the recipient's email address. | empty |
full_text_accelerators | array | No | New in 2.0.3 Specifies classes to be searched at first (and the subset of data) when running the full text search. | A PHP array, as described in section full_text_accelerators |
full_text_chunk_duration | integer | No | New in 2.0.3 Delay after which the results are displayed. | 2 |
full_text_needle_min | integer | No | New in 2.0.3 Minimum size of the full text needle. | 3 |
graphviz_path | string | Yes | Path to the Graphviz “dot” executable for displaying impact analysis and objects lifecycle | /usr/bin/dot |
impact_analysis_first_tab | string | No | Which tab to display first in the impact analysis view: list or graphics. Graphics are nicer but slower to display when there are many objects | graphics |
inline_image_max_display_width | integer | Yes | New in 2.3.0 The maximum width (in pixels) to display inline images (inside formatted text fields and case logs). Images will be shrinked to this limit when displaying (with a magnifier cursor when moving the mouse over them) | 600 |
inline_image_max_storage_width | integer | Yes | New in 2.3.0 The maximum width (in pixels) for uploaded images inside formatted text fields and case logs. images larger than this limit will be downsampled before being stored in the database. | 1600 |
legacy_search_drawer_open | bool | No | New in 2.3.0 Whether or not to display the “search drawer” displaying the search form open (as in pre 2.3.0 versions) instead of collapsed, at the top of the OQL menu pages, and in the popup dialog boxes when searching for an object | false |
link_set_attribute_qualifier | string | Yes | Link set from string: attribute qualifier (encloses both the attcode and the value) | ' |
link_set_attribute_separator | string | Yes | Link set from string: attribute separator | ; |
link_set_item_separator | string | Yes | Link set from string: line separator | , |
link_set_value_separator | string | Yes | Link set from string: value separator (between the attcode and the value itself | : |
log_global | bool | Yes | If set to true (or 1), then the log is active. Which event is logged and where will depend on the following log_…. settings | true |
log_issue | bool | Yes | If set to true (or 1), then internal errors (or some usage errors) will be traced both into <iTopLog>/error.log (destination file could not be changed) and the DB (OQL: SELECT EventIssue) | true |
log_kpi_duration | integer | No | Level of logging for troubleshooting performance issues (1 to enable, 2 +blame callers starting 2.0.3) | 0 |
log_kpi_memory | integer | No | Level of logging for troubleshooting memory limit issues | 0 |
log_kpi_user_id | string | No | Limit the scope of users to the given
login (* means no limit) |
* |
log_notification | bool | Yes | If set to true (or 1), then notifications sent my the mean of the Trigger/Actions will be recorded into the DB (OQL: SELECT EventNotification) | true |
log_usage | bool | No | Log the usage of the application (i.e. the date/time and the user name of each login) | false |
log_rest_service | bool | No | New in 2.2.0 Log the usage of the REST/JSON service (OQL: SELECT EventRestService) | false |
log_web_service | bool | Yes | If set to true (or 1), then usage of the SOAP service(s) will be recorded into the DB (OQL: SELECT EventWebService) | true |
max_combo_length | integer | No | The maximum number of elements in a drop-down list. If more then an autocomplete will be used | 50 |
max_display_limit | integer | Yes | The maximum number of items that a list can display at once, before changing to a paginated list | 15 |
max_execution_time_per_loop | integer | No | New in 2.0.3 The max_execution_time allocated for each loop when performing bulk operations (bulk import, bulk delete…). Zero means 'no limit'. | 30 |
max_history_length | integer | No | New in 2.0.3 Maximum length of the history table (in the “History” tab on each object) before it gets truncated. Latest modifications are displayed first. | 50 |
max_history_case_log_entry_length | integer | No | New in 2.2.0 The length (in number of characters) at which to truncate the (expandable) display (in the history) of a case log entry. If zero, the display in the history is not truncated. | 60 |
max_linkset_output | integer | Yes | Maximum number of items shown when getting a list of related items in an email, using the form $this→some_list$. 0 means no limit. | 100 |
min_autocomplete_chars | integer | No | The minimum number of characters to type in order to trigger the “autocomplete” behavior | 3 |
min_display_limit | integer | Yes | The number of items to display when a list is bigger than “max_display_limit” | 10 |
min_reload_interval | integer | No | Minimum interval (seconds) than can be specified for the automatic refresh of dashboards, shortcuts, etc. Even if the interval is set programmatically, it is forced to that minimum | 5 |
module_settings | array | Yes | Automatically populated by the installation process | |
online_help | string | Yes | Hyperlink to the online-help web page | http://www.combodo.com/itop-help |
php_path | string | Yes | Path to the php executable in CLI mode | php |
portal_tickets | string | Yes | CSV list of classes supported in the portal | UserRequest |
portal_dispatch_urls | array | No | New in 2.3.0 Associative array of sPortalId ⇒ Home page URL (relatively to the application root) | |
query_indentation_enabled | bool | No | For developpers: format the SQL queries for human analysis | false |
query_optimization_enabled | bool | No | The queries are optimized based on the assumption that the DB integrity has been preserved. By disabling the optimization one can ensure that the fetched data is clean… but this can be really slower or not usable at all (some queries will exceed the allowed number of joins in MySQL: 61!) | true |
relations_max_depth | integer | No | New in 2.1.0 Maximum number of successive levels (depth) to explore when displaying the impact/depends on relations. The default value, used for backward compatibility (20), means a depth of twenty levels, which is huge. For large data sets it may be wise to limit this value to 4/5 levels. | 20 |
secure_connection_required | bool | Yes | Whether or not the application is allowed to run on a non-secure (i.e. non HTTPS) connection | false |
session_name | string | Yes | The name of the cookie used to store the PHP session id | iTop |
shortcut_actions | string | Yes | Actions that are available as direct buttons next to the “Actions” menu | UI:Menu:Modify,UI:Menu:New |
skip_check_ext_keys | bool | No | Disable external key check when checking the value of attributes | false |
skip_check_to_write | bool | No | Disable data format and integrity checks to boost up data load (insert or update) | false |
skip_strong_security | bool | No | Disable strong security - TEMPORY: this flag should be removed when we are more confident in the recent change in security | true |
source_dir | string | Yes | Source directory for the datamodel files. (which gets compiled to env-production). | |
standard_reload_interval | integer | Yes | The duration (in seconds) between two reloads of a list, if the reload interval is “standard” | 300 |
synchro_prevent_delete_all | bool | No | Stop the synchro if all the replicas of a data source become obsolete at the same time. | true |
synchro_trace | string | Yes | Synchronization details: none, display, save (includes 'display') | none |
timezone | string | Yes | Timezone (reference: http://php.net/manual/en/timezones.php). If empty, it will be left unchanged and MUST be explicitely configured in PHP | Europe/Paris |
tracking_level_linked_set_default | integer | No | New in 2.0.3 Default tracking level if not explicitly set at the attribute level, for AttributeLinkedSet (defaults to NONE in case of a fresh install, LIST otherwise - this to preserve backward compatibility while upgrading from a version older than 2.0.3 - see TRAC #936) | 1 |
tracking_level_linked_set_indirect_default | integer | No | New in 2.0.3 Default tracking level if not explicitly set at the attribute level, for AttributeLinkedSetIndirect | 3 |
transaction_storage | string | No | New in 2.2.0 Mechanism for storing the transaction identifiers. Possible values: File or Session. Use File if you are using non locking mechanism like memcache for storing the session information. | Session |
url_validation_pattern | string | Yes | Regular expression to validate/detect the format of an URL (URL attributes and Wiki formatting for Text attributes) | (https?,ftp)\://([a-zA-Z0-9+!*(),;?&=\$_.-]+(\:[a-zA-Z0-9+!*(),;?&=\$_.-]+)?@)?([a-zA-Z0-9-.]{3,})(\:[0-9]{2,5})?(/([a-zA-Z0-9%+\$_-]\.?)+)*/?(\?[a-zA-Z+&\$_.-][a-zA-Z0-9;:[\]@&%=+/\$_.-]*)?(#[a-zA-Z_.-][a-zA-Z0-9+\$_.-]*)? |
user_rights_legacy | bool | No | Set to true to restore the buggy algorithm for the computation of user rights (within the same profile, ALLOW on the class itself has precedence on DENY of a parent class) | false |
webservice_list | array | Yes | Automatically populated by the installation process | |
xlsx_exporter_memory_limit | string | No | New in 2.1.0 Maximum amount of memory allowed when running an interactive Excel export. Exporting 50,000 tickets requires about 1GB of memory | 2048M |
Zooming on...
full_text_accelerators
By default the “global search” feature performs a search on each and every class and attribute defined in iTop. When the database grows, this can become very slow. Using accelerators, an administrator can specify, for a given class, how to search - in less fields - in order to speed up the search. It is also possible to completely exclude a given class from the search.
Example:
'full_text_accelerators' => array ( 'UserRequest' => array ( 'skip' => false, 'needle' => '%$needle$%', 'query' => "SELECT UserRequest WHERE (status != 'closed') AND (ref LIKE :needle OR title LIKE :needle OR description LIKE :needle)", 'attributes' => array('title', 'description'), 'enable_enlarge' => true, ), 'Person' => array ( 'query' => 'SELECT Person WHERE (name LIKE :needle) OR (first_name LIKE :needle) OR (email LIKE :needle)', 'attributes' => array ('name', 'first_name', 'email'), ), ),
For a given class, the parameters are:
-
skip
(optional) if present, and equal totrue
, then the whole class will be skipped from the global search (unless the end-user specifically requires to search in this class by typingNameOfTheClass:string_to_search
in the global search). -
query
determines both the scope of objects to search for, and the columns that will be looked up. The entered search string is represented by the parameter:needle
-
attributes
(optional) must match the attributes used in the query so that the system will optimize its execution time. -
needle
is optional and defaults to “%$needle$%”. It specifies how to make the:needle
parameter out of the user search string. -
enable_enlarge
(optional) if present and equal tofalse
, the buttonEnlarge search
will be hidden. WhenEnlarge Search
is clicked, iTop performs the default complete search (all attributes) for the specified class of objects
date_and_time_format
This configuration parameter specifies the formatting of date
and time fields in the application. The configuration can be
specified by default and overloaded per language. If an entry
(either date
, time
or
date_time
) is omitted in a given language, the
corresponding default
entry will be used. If no value
is specified at all, the system will supply its own fallback
value.
-
The
date
entry specifies the format for dates. The fallback value isY-m-d
(MySQL format), -
The
time
entry specified the format for times. The fallback value isH:i:s
(MySQL format), -
The
date_time
entry specifies how to assemble date and time in order to produce a complete date/time representation.
The syntax is the following:
'date_and_time_format' => array( 'default|language_code' => array( 'date' => 'date_format', 'time' => 'time_format', 'date_time' => 'combination_of_date_time_values', ), )
Values for the date
format:
Placeholder | Meaning |
---|---|
Y | Year, on 4 digits, e.g. 2016 |
y | Year, on 2 digits, e.g. 16. Suitable for dates between 1970 and 2069 |
m | Month, on 2 digits, e.g. 01..12 |
n | Month, on 1 or 2 digits, without leading zero, e.g. 1..12 |
d | Day of the month, on 2 digits, e.g. 01..31 |
j | Day of the month, on 1 or 2 digits, without leading zero, e.g. 1..31 |
Values for the time
format:
Placeholder | Meaning |
---|---|
H | Hours (24 hour clock), on 2 digits, e.g. 00..23 |
h | Hours (12 hour clock), on 2 digits, e.g. 01..12 |
G | Hours (24 hour clock), on 1 or 2 digits without leading zero, e.g. 0..23 |
g | Hours (12 hour clock), on 1 or 2 digits without leading zero, e.g. 1..12 |
i | Minutes, on 2 digits, e.g. 00..59 |
s | Seconds, on 2 digits, e.g. 00..59 |
Values for the date_time
format:
Placeholder | Meaning |
---|---|
$date | The corresponding date format |
$time | The corresponding time format |
The example below produces the following result:
-
For users which language is configured to French (FR FR):
-
the dates are written: <day on two digits>/<month on 2 digits>/<year on 4 digits>, for example:
21/04/2016
-
the times are written: <hours, 24 hour clock, on 2 digits>:<minutes on two digits>, for example:
14:35
-
the date and times are written: <date> <time>, for example:
21/04/2016 14:35
-
-
For users which language is configured to German (DE DE):
-
the dates are written: <day on two digits>.<month on 2 digits>.<year on 4 digits>, for example: '21.04.2016'
-
the times are written: <hours, 24 hour clock, on 2 digits>:<minutes on two digits>, for example:
14:35
-
the date and times are written: <date> <time>, for example:
21.04.2016 14:35
-
-
By default (for all other languages):
-
the dates are written: <year on 4 digits>-<month on 2 digits>-<day on two digits>, for example:
2016-04-21
-
the times are written: <hours, 24 hour clock, on 2 digits>:<minutes on two digits>:<seconds on two digits>, for example:
14:35:09
-
the date and times are written: <date> <time>, for example:
2016-04-12 14:35:09
-
'date_and_time_format' => array( 'default' => array( 'date' => 'Y-m-d', 'time' => 'H:i:s', 'date_time' => '$date $time', ), 'FR FR' => array( 'date' => 'd/m/Y', 'time' => 'H:i', 'date_time' => '$date $time', ), 'DE DE' => array( 'date' => 'd.m.Y', 'time' => 'H:i', 'date_time' => '$date $time', ), )