You are browsing the documentation for iTop 2.1 which is not the current version.

Consider browsing to iTop 3.2 documentation

Configuration Parameters


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.


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 Combination of flags (ACCESS_USER_WRITE , ACCESS_ADMIN_WRITE, or ACCESS_FULL) 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 1
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) 1
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)
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
cas_context string No The CAS context
cas_debug bool No Activate the CAS debug 0
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 0
cas_user_synchro bool No Whether or not to synchronize users with CAS/LDAP 0
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
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 0
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
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,,, 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 0
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 0
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 0
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 0
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) 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 1
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 No Path to the Graphviz “dot” executable for graphing 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
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 1, then the log is active. Which event is logged and where will depend on the following log_…. settings 1
log_issue bool Yes If set to 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) 1
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 1, then notifications sent my the mean of the Trigger/Actions will be recorded into the DB (OQL: SELECT EventNotification) 1
log_usage bool No Log the usage of the application (i.e. the date/time and the user name of each login) 0
log_web_service bool Yes If set to 1, then usage of the SOAP service(s) will be recorded into the DB (OQL: SELECT EventWebService) 1
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_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
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
query_indentation_enabled bool No For developpers: format the SQL queries for human analysis 0
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!) 1
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 0
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 0
skip_check_to_write bool No Disable data format and integrity checks to boost up data load (insert or update) 0
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 1
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. 1
synchro_trace string Yes Synchronization details: none, display, save (includes 'display') none
timezone string Yes Timezone (reference: 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 explicitely 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 explicitely set at the attribute level, for AttributeLinkedSetIndirect 3
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_cleanup_old_files_delay int No New in 2.1.0 Delay (in seconds) for which to keep the temporary exported Excel files on the server, so that the user who launched the interactive export can download them 86400
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...


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.


'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 to true, then the whole class will be skipped from the global search (unless the end-user specifically requires to search in this class by typing NameOfTheClass: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 to false, the button Enlarge search will be hidden. When Enlarge Search is clicked, iTop performs the default complete search (all attributes) for the specified class of objects
2_1_0/admin/itop_configuration_file.txt · Last modified: 2023/03/15 11:31 (external edit)
Back to top
Contact us