User Tools

Site Tools

:: Latest version ::

latest:admin:itop_configuration_file

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

latest:admin:itop_configuration_file [2019/02/21 17:54] (current)
Line 1: Line 1:
 +====== 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_menu_on_linkset | bool | No | **New in 2.4.0** Display Action menus in view mode on any LinkedSet with ''​edit_mode != none''​ | false |
 +| 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 [[2_6_0:​admin:​user_authentication_options#​logon_types|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 |
 +
 +^ Parameter ​ ^  Type  ^  Visible ?  ^  Description ​ ^  Default Value  ^
 +| 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 | <​nowiki>/​^cn=([^,​]+),/</​nowiki>​ |
 +| 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 |
 +
 +^ Parameter ​ ^  Type  ^  Visible ?  ^  Description ​ ^  Default Value  ^
 +| 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 | No | //new in 2.2.0// - Whether or not to enable the locking mechanism to prevent concurrent interactive modifications | false |
 +| 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 |
 +
 +^ Parameter ​ ^  Type  ^  Visible ?  ^  Description ​ ^  Default Value  ^
 +| 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 | [[2_6_0:​admin:​itop_configuration_file#​date_and_time_format|see below]] |
 +| db_character_set | string | Yes | **Removed in 2.5** : since then iTop uses utf8mb4. Until 2.4 : character set to use for the MySQL database | utf8 |
 +| db_collation | string | Yes | **Removed in 2.5** : since then iTop uses utf8mb4_unicode_ci. Until 2.4 : 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.). Can also contain the port (host:port, for exemple localhost:​3306). Use p: prefix (for exemple p:​localhost:​3306) to use [[http://​php.net/​manual/​en/​mysqli.persistconns.php|persistent connexions]] (not recommended by Combodo, use at your own risks !) |  |
 +| 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_tls.enabled | boolean | No | If enabled then the connection to the MySQL server will be encrypted using TLS. See [[2_6_0:​install:​php_and_mysql_tls|Connect to MySQL using TLS]] | false |
 +| db_tls.ca | string | No | Path to certificate authority file for SSL. If present then connection to MySQL will be made using the flag MYSQLI_CLIENT_SSL,​ otherwise it will use MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT |  |
 +
 +^ Parameter ​ ^  Type  ^  Visible ?  ^  Description ​ ^  Default Value  ^
 +| 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_attachments_download_legacy_portal | bool | No | **New in 2.4.1** Disable attachments downloads from the legacy portal in order to fix a security hole | true |
 +| disable_mandatory_ext_keys | bool | No | //New in 2.0.3// - For developpers:​ allow every external keys to be undefined | false |
 +
 +^ Parameter ​ ^  Type  ^  Visible ?  ^  Description ​ ^  Default Value  ^
 +| draft_attachments_lifetime | integer | No | **New in 2.5.0** Lifetime (in seconds) of drafts'​ attachments and inline images: after this duration, the garbage collector will delete them. //Use 3600 or above// | 3600 |
 +| 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_default_sender_address | string | Yes | **New in 2.5.0** Email used as the sender, when none specified. eg. Test notification,​ Forgotten password, synchro error,... are sending emails using this default. | empty |
 +| email_default_sender_label | string | Yes | **New in 2.5.0** Label used for sender, when none specified. | empty |
 +| 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,​} |
 +| email_decoration_class | string | No | **New in 2.5.0** CSS class(es) to use as decoration for the HTML rendering of the attribute. eg. "fa fa-envelope"​ will put a mail icon | fa fa-envelope |
 +| encryption_key | string | Yes | An encryption key used for encrypting secured fields. (see [[2_6_0:​feature:​encrypt_data|encrypt data]]) | @iT0pEncr1pti0n! |
 +| encryption_library | string | Yes | **New in 2.6.0** Library name that will be used to [[2_6_0:​feature:​encrypt_data|encrypt data]] | Sodium |
 +
 +^ Parameter ​ ^  Type  ^  Visible ?  ^  Description ​ ^  Default Value  ^
 +| 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 |
 +| high_cardinality_classes | array | No | **New in 2.5.0** classes which have a lot of objects, automated search is disabled for them | //empty// |
 +| 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 |
 +| <​del>​legacy_search_drawer_open</​del>​ | bool | No | **Removed in 2.5.0** ​ Added 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 | : |
 +
 +^ Parameter ​ ^  Type  ^  Visible ?  ^  Description ​ ^  Default Value  ^
 +| 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). To see the results: SELECT EventLoginUsage| 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 |
 +
 +^ Parameter ​ ^  Type  ^  Visible ?  ^  Description ​ ^  Default Value  ^
 +| 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 | 2 |
 +| 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 |  |
 +| newsroom_enabled| bool | No| **New in 2.6.0** Set this parameter to //false// to completely disable the Newsroom feature for all users. ​ | true |
 +
 +^ Parameter ​ ^  Type  ^  Visible ?  ^  Description ​ ^  Default Value  ^
 +| online_help | string | Yes | Hyperlink to the online-help web page | http://​www.combodo.com/​itop-help |
 +| phone_number_validation_pattern | string | No | **New in 2.5.0** Regular expression to validate/​detect the format of a phone number | [0-9.\-\ \+\(\)]+ |
 +| phone_number_url_pattern | string | No | **New in 2.5.0** Format for phone number url, use %1$s as a placeholder for the value. eg. "​tel:​%1$s"​ for regular phone applications or "​callto:​%1$s"​ for Skype. Default is "​tel:​%1$s"​ | tel:%1$s |
 +| phone_number_decoration_class | string | No | **New in 2.5.0** CSS class(es) to use as decoration for the HTML rendering of the attribute. eg. "fa fa-phone"​ will put a phone icon | fa fa-phone |
 +| php_path | string | Yes | Path to the php executable in CLI mode | php |
 +| portal_tickets | string | Yes | **Deprecated in 2.6.0** CSV list of classes supported in the old 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 |
 +
 +
 +^ Parameter ​ ^  Type  ^  Visible ?  ^  Description ​ ^  Default Value  ^
 +| search_manual_submit | bool | No | **NEW in 2.5** Define if search is executed automatically on criteria setting (//​default//​) or manually with Magnifier icon. If you want to defined this behavior by class, use parameter ''​high_cardinality_classes''​ | false |
 +| secure_connection_required | bool | Yes | Whether or not the application is allowed to run on a non-secure (i.e. non HTTPS) connection | false |
 +| secure_rest_services | bool | No | **New in 2.5.0** When set to '​true',​ the access to the REST web services is limited to user accounts having the profile ''​REST Services User''​. Any other value will disable this verification and let any valid user access the REST web services, as in pre-2.5.0 versions of iTop. | true |
 +| 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 |
 +| show_obsolete_data | bool | No | Default value for the user preference "Show obsolete data" | false|
 +| 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 |
 +| tag_set_item_separator | string | Yes | **New in 2.6.0** Tag set from string: tag separator | %%|%% |
 +| 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. //Since iTop 2.6// the default value has changed, before it was ''​Session''​ | File |
 +
 +^ Parameter ​ ^  Type  ^  Visible ?  ^  Description ​ ^  Default Value  ^
 +| url_validation_pattern | string | Yes | Regular expression to validate/​detect the format of an URL (URL attributes and Wiki formatting for Text attributes) | <​nowiki>​(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+\$_.-]*)?</​nowiki>​ |
 +| 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:
 +<​code>​
 +'​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'​),​
 +  ),
 +),
 +</​code>​
 +
 +For a given **non-abstract** 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
 +
 +==== 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 is ''​Y-m-d''​ (MySQL format),
 +  * The ''​time''​ entry specified the format for times. The fallback value is ''​H:​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:
 +
 +<code php>
 +'​date_and_time_format'​ => array(
 +    '​default|language_code'​ => array(
 +        '​date'​ => '​date_format',​
 +        '​time'​ => '​time_format',​
 +        '​date_time'​ => '​combination_of_date_time_values',​
 +    ),
 +)
 +</​code>​
 +
 +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''​
 +
 +<code php>
 +'​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',​
 +    ),
 +)
 +</​code>​
 +
 +
 +==== Impact Analyses ====
 +
 +When displaying the //Impact Analyses// tab of a Ticket, or when displaying from a Functional CI the actions //​Impacts...//​ and //Depends on...//, the **Changes and Incidents displayed** are calculated based on OQL queries configured in XML. As such they can be overwritten by a extension. ​
 +
 +<code XML datamodels/​2.x/​itop-request-mgmt/​datamodel.itop-request-mgmt.xml>​
 +  <​parameters id="​itop-config-mgmt"><​relation_context><​FunctionalCI><​impacts>​
 +    <​down><​items type="​array"><​item id="​open_incidents"​ _delta="​define">​
 +      <​oql><​![CDATA[SELECT FCI, R FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id ​
 +      JOIN UserRequest AS R ON L.ticket_id = R.id WHERE (R.status NOT IN ('​closed',​ '​resolved'​)) ​
 +      AND (R.request_type='​incident'​) AND (L.impact_code != '​not_impacted'​)]]></​oql>​
 +      <​dict>​Tickets:​Related:​OpenIncidents</​dict>​
 +      <​icon>​itop-request-mgmt/​images/​incident-red.png</​icon>​
 +      <​default>​yes</​default>​
 +    </​item></​items></​down>​
 +    <​up><​items type="​array"><​item id="​open_incidents"​ _delta="​define">​
 +      <​oql><​![CDATA[SELECT FCI, R FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id ​
 +      JOIN UserRequest AS R ON L.ticket_id = R.id WHERE (R.status NOT IN ('​closed',​ '​resolved'​)) ​
 +      AND (R.request_type='​incident'​) AND (L.impact_code != '​not_impacted'​)]]></​oql>​
 +      <​dict>​Tickets:​Related:​OpenIncidents</​dict>​
 +      <​icon>​itop-request-mgmt/​images/​incident-red.png</​icon>​
 +      <​default>​yes</​default>​
 +    </​item></​items></​up>​
 +    </​impacts></​FunctionalCI></​relation_context>​
 +  </​parameters>​
 +</​code>​
 +
 +But they can also be overwritten through parameters in the Configuration file, if you have customized lifecycles of your tickets.
 +
 +The default ''​module_parameters''​ if nothing is defined in the Configuration file, are available under ''/​core/​main.php''​
 +Here is an example of a full itil iTop:
 +
 +<code php core/​main.php>​
 +  '​itop-tickets'​ =>        array (
 +    '​relation_context'​ =>  array (
 +      '​UserRequest'​ =>     array (
 +        '​impacts'​ =>       array (
 +          '​down'​ =>        array (
 +            '​items'​ =>     array (
 +              0 =>         array (
 +                '​oql'​ => '​SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = \'​yes\'​) AND (C.status NOT IN (\'​closed\',​ \'​rejected\'​)) AND (L.impact_code != \'​not_impacted\'​) AND (C.id != :​this->​id)',​
 +                '​dict'​ => '​Tickets:​Related:​OpenChanges',​
 +                '​icon'​ => '​itop-change-mgmt-itil/​images/​change-ongoing.png',​
 +              ),
 +              1 =>         array (
 +                '​oql'​ => '​SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = \'​yes\'​) AND (C.status NOT IN (\'​closed\'​)) AND (L.impact_code != \'​not_impacted\'​) AND (C.id != :​this->​id) AND (DATE_ADD(C.end_date,​ INTERVAL 3 DAY) < NOW())',​
 +                '​dict'​ => '​Tickets:​Related:​RecentChanges',​
 +                '​icon'​ => '​itop-change-mgmt-itil/​images/​change-done.png',​
 +              ),
 +              2 =>         array (
 +                '​oql'​ => '​SELECT FCI, I FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Incident AS I ON L.ticket_id = I.id WHERE (I.status NOT IN (\'​closed\',​ \'​resolved\'​)) AND (L.impact_code != \'​not_impacted\'​) AND (I.id != :​this->​id)',​
 +                '​dict'​ => '​Tickets:​Related:​OpenIncidents',​
 +                '​icon'​ => '​itop-incident-mgmt-itil/​images/​incident-red.png',​
 +                '​default'​ => '​yes',​
 +              ),
 +            ),
 +          ),
 +        ),
 +      ),
 +      '​Incident'​ =>        array (
 +        '​impacts'​ =>       array (
 +          '​down'​ =>        array (
 +            '​items'​ =>     array (
 +              0 =>         array (
 +                '​oql'​ => '​SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = \'​yes\'​) AND (C.status NOT IN (\'​closed\',​ \'​rejected\'​)) AND (L.impact_code != \'​not_impacted\'​) AND (C.id != :​this->​id)',​
 +                '​dict'​ => '​Tickets:​Related:​OpenChanges',​
 +                '​icon'​ => '​itop-change-mgmt-itil/​images/​change-ongoing.png',​
 +              ),
 +              1 =>         array (
 +                '​oql'​ => '​SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = \'​yes\'​) AND (C.status NOT IN (\'​closed\'​)) AND (L.impact_code != \'​not_impacted\'​) AND (C.id != :​this->​id) AND (DATE_ADD(C.end_date,​ INTERVAL 3 DAY) < NOW())',​
 +                '​dict'​ => '​Tickets:​Related:​RecentChanges',​
 +                '​icon'​ => '​itop-change-mgmt-itil/​images/​change-done.png',​
 +              ),
 +              2 =>         array (
 +                '​oql'​ => '​SELECT FCI, I FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Incident AS I ON L.ticket_id = I.id WHERE (I.status NOT IN (\'​closed\',​ \'​resolved\'​)) AND (L.impact_code != \'​not_impacted\'​) AND (I.id != :​this->​id)',​
 +                '​dict'​ => '​Tickets:​Related:​OpenIncidents',​
 +                '​icon'​ => '​itop-incident-mgmt-itil/​images/​incident-red.png',​
 +                '​default'​ => '​yes',​
 +              ),
 +            ),
 +          ),
 +        ),
 +      ),
 +      '​Change'​ =>          array (
 +        '​impacts'​ =>       array (
 +          '​down'​ =>        array (
 +            '​items'​ =>     array (
 +              0 =>         array (
 +                '​oql'​ => '​SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = \'​yes\'​) AND (C.status NOT IN (\'​closed\',​ \'​rejected\'​)) AND (L.impact_code != \'​not_impacted\'​) AND (C.id != :​this->​id)',​
 +                '​dict'​ => '​Tickets:​Related:​OpenChanges',​
 +                '​icon'​ => '​itop-change-mgmt-itil/​images/​change-ongoing.png',​
 +              ),
 +              1 =>         array (
 +                '​oql'​ => '​SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = \'​yes\'​) AND (C.status NOT IN (\'​closed\'​)) AND (L.impact_code != \'​not_impacted\'​) AND (C.id != :​this->​id) AND (DATE_ADD(C.end_date,​ INTERVAL 3 DAY) < NOW())',​
 +                '​dict'​ => '​Tickets:​Related:​RecentChanges',​
 +                '​icon'​ => '​itop-change-mgmt-itil/​images/​change-done.png',​
 +              ),
 +              2 =>         array (
 +                '​oql'​ => '​SELECT FCI, I FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Incident AS I ON L.ticket_id = I.id WHERE (I.status NOT IN (\'​closed\',​ \'​resolved\'​)) AND (L.impact_code != \'​not_impacted\'​) AND (I.id != :​this->​id)',​
 +                '​dict'​ => '​Tickets:​Related:​OpenIncidents',​
 +                '​icon'​ => '​itop-incident-mgmt-itil/​images/​incident-red.png',​
 +                '​default'​ => '​yes',​
 +              ),
 +            ),
 +          ),
 +        ),
 +      ),
 +    ),
 +  ),
 +</​code>​
 +<code php>
 +  '​itop-config-mgmt'​ =>    array (
 +    '​relation_context'​ =>  array (
 +      '​FunctionalCI'​ =>    array (
 +        '​impacts'​ =>       array (
 +          '​down'​ =>        array (
 +            '​items'​ =>     array (
 +              0 =>         array (
 +                '​oql'​ => '​SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = \'​yes\'​) AND (C.status NOT IN (\'​closed\',​ \'​rejected\'​)) AND (L.impact_code != \'​not_impacted\'​)',​
 +                '​dict'​ => '​Tickets:​Related:​OpenChanges',​
 +                '​icon'​ => '​itop-change-mgmt-itil/​images/​change-ongoing.png',​
 +              ),
 +              1 =>         array (
 +                '​oql'​ => '​SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = \'​yes\'​) AND (C.status IN (\'​closed\'​)) AND (L.impact_code != \'​not_impacted\'​) AND (DATE_ADD(C.end_date,​ INTERVAL 3 DAY) < NOW())',​
 +                '​dict'​ => '​Tickets:​Related:​RecentChanges',​
 +                '​icon'​ => '​itop-change-mgmt-itil/​images/​change-done.png',​
 +              ),
 +              2 =>         array (
 +                '​oql'​ => '​SELECT FCI, I FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Incident AS I ON L.ticket_id = I.id WHERE (I.status NOT IN (\'​closed\',​ \'​resolved\'​)) AND (L.impact_code != \'​not_impacted\'​)',​
 +                '​dict'​ => '​Tickets:​Related:​OpenIncidents',​
 +                '​icon'​ => '​itop-incident-mgmt-itil/​images/​incident-red.png',​
 +                '​default'​ => '​yes',​
 +              ),
 +            ),
 +          ),
 +          '​up'​ =>          array (
 +            '​items'​ =>     array (
 +              0 =>         array (
 +                '​oql'​ => '​SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = \'​yes\'​) AND (C.status NOT IN (\'​closed\',​ \'​rejected\'​)) AND (L.impact_code != \'​not_impacted\'​)',​
 +                '​dict'​ => '​Tickets:​Related:​OpenChanges',​
 +                '​icon'​ => '​itop-change-mgmt-itil/​images/​change-ongoing.png',​
 +              ),
 +              1 =>         array (
 +                '​oql'​ => '​SELECT FCI, C FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Change AS C ON L.ticket_id = C.id WHERE (C.outage = \'​yes\'​) AND (C.status IN (\'​closed\'​)) AND (L.impact_code != \'​not_impacted\'​) AND (DATE_ADD(C.end_date,​ INTERVAL 3 DAY) < NOW())',​
 +                '​dict'​ => '​Tickets:​Related:​RecentChanges',​
 +                '​icon'​ => '​itop-change-mgmt-itil/​images/​change-done.png',​
 +              ),
 +              2 =>         array (
 +                '​oql'​ => '​SELECT FCI, I FROM FunctionalCI AS FCI JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id JOIN Incident AS I ON L.ticket_id = I.id WHERE (I.status NOT IN (\'​closed\',​ \'​resolved\'​)) AND (L.impact_code != \'​not_impacted\'​)',​
 +                '​dict'​ => '​Tickets:​Related:​OpenIncidents',​
 +                '​icon'​ => '​itop-incident-mgmt-itil/​images/​incident-red.png',​
 +                '​default'​ => '​yes',​
 +              ),
 +            ),
 +          ),
 +        ),
 +      ),
 +    ),
 +  ),
 +</​code>​
 +
 +==== Attachment ====
 +
 +Define the classes of objects which can have attachment, how those attachments are displayed and previewed\\
 +**//New in 2.4//**: ''​readonly_states''​ defines under which **environment**,​ which object **classes** in what **status**, will prevent adding and deletion of attachments.
 +
 +^ environment values ^ meaning ^
 +|  all  | The following parameters will be applied to the **Console and all portals** |
 +|  backoffice ​ | The following parameters will be applied to the **Console only** |
 +|  portals ​ | The following parameters will be applied to all **portals only** so not on the Console |
 +
 +<code php>
 +'​itop-attachments'​ => array(
 +    '​allowed_classes'​ => array(
 +        0 => '​Ticket',​
 +        1 => '​Contact',​
 +    ),
 +    '​readonly_states'​ => array(
 +        '​all'​ => array(
 +            '​UserRequest'​ => array('​closed',​),​
 +            '​Change'​ => array('​rejected','​closed',​)
 +        ),
 +        '​portals'​ => array(
 +            '​UserRequest'​ => array('​resolved',​),​
 +        ),
 +    ),
 +    '​position'​ => '​relations',​
 +    '​preview_max_width'​ => 290,
 +),
 +</​code>​
 +
 +==== Search ====
 +
 +**New in 2.4.2**: ​
 +  * the standard search is executed as soon as a search criteria is defined. ​
 +  * when using the magnifier icon on an ExternalKey attribute, the search is executed.
 +  * when searching objects to be added on a LinkedSetIndirect attribute (n:n relationship),​ the search is executed.
 +On classes with high volume of data and if filtering is not defined, it might be better to force the user to decide when he has entered enough criterion to make the search effective.
 +
 +This can be done in the Configuration file by defining the classes for which you want this behavior to be applied.
 +
 +<code php Configuration>​
 +    '​high_cardinality_classes'​ => array (
 +      0 => '​Contact',​
 +      1 => '​Person',​
 +      2 => '​UserRequest',​
 +    ),
 +</​code>​
 +
 +You can also instead, force this behavior for all classes at once, using this:
 +<code php Configuration>​
 + '​search_manual_submit'​ => true,
 + ),
 +</​code>​
 +
 +
 +In this example, for UserRequest,​ users must explicitly press the search icon to get the resulting list aligned with the set criterion.
 +There is a warning message to remind users about this different behavior.
 +{{ :​2_6_0:​install:​searchmanual.png?​nolink |}}
 +
 +=== Default criterion per class ===
 +
 +Unless you customize your iTop Datamodel, this are the default criterion defined. \\
 +Default criterion is optional. They are inherited from parent classes if not defined.
 +
 +We have chosen those criterion because they are the most used for single object search, which is what simple users would do. Advanced users will know how to add/remove criteria.
 +
 +Predefined requests such as menus and shortcuts, will not use those defaults as soon as they come with their own criterion.
 +
 +| Class | Criterions |
 +| Contract | Name, Customer, Provider |
 +| Contact | Full Name, Email, Organization |
 +| Database Schema | Full Name, DB server, Organization |
 +| Datacenter Device | Full Name, Management ip, Organization |
 +| Document | Name, Description,​ Organization |
 +| Functional CI | Full Name, Organization |
 +| Group | Name, Type, Organization |
 +| IP Interface | Full Name, IP address, MAC address |
 +| Licence | Name, Description,​ Key |
 +| Middleware Instance | Full Name, Middleware, Organization |
 +| Network Interface | Name |
 +| Patch | Name, Description |
 +| Physical CI | Full Name, Location, Organization |
 +| Organization | Name |
 +| Location | Name, Country, Organization |
 +| Service | Name, Provider, Service Family |
 +| Service Family | Name |
 +| Service Subcategory | Name, Service, Service<​nowiki>​-></​nowiki>​Provider |
 +| Software | Name, Vendor, Type |
 +| Software Instance | Full Name, System, Organization |
 +| Subnet | IP, Name, Organization |
 +| Ticket | Ref, Title, Caller, Organization |
 +| Typology | Name |
 +| User | Login, Contact, Organization |
 +| VLAN | VLAN Tag, Organization |
 +| Web Application | Full Name, Web server, Organization |
  
latest/admin/itop_configuration_file.txt · Last modified: 2019/02/21 17:54 (external edit)

";