readme.txt 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402
  1. iTop - version 2.0.0 - 14-Dec-2012
  2. Readme file
  3. 1. ABOUT THIS RELEASE
  4. 2. INSTALLATION
  5. 2.1. Requirements
  6. 2.2. Install procedure
  7. 2.3. CRON
  8. 2.4. Migration from previous version
  9. 3. FEATURES
  10. 3.1. Changes since 1.2.1
  11. 3.2. Known limitations
  12. 3.3. Known issues
  13. 1. ABOUT THIS RELEASE
  14. ==================
  15. Thank you for downloading the 14th packaged release of iTop.
  16. This version is a major release, with a new datamodel, editable dashboards, user customizable lists and user shortcuts.
  17. The documentation is available as a Wiki: http://www.combodo.com/wiki
  18. iTop is released under the AGPL (v3) license. (Check license.txt in this directory).
  19. The source code of iTop can be found on SourceForge: http://itop.sourceforge.net
  20. 1.1 What's new?
  21. ---------------------------
  22. This version comes with an enhanced data model (but you can keep the existing one,
  23. see the upgrade section hereafter).
  24. - Virtualization, Data Centers, and Storage are now optional modules of the CMDB
  25. - You can choose between fully ITIL-compliant tickets or a simpler model for
  26. managing user requests, incidents and changes
  27. End users can customize the GUI:
  28. - Dashboards become editable
  29. - List of objects are configurable per user (list of columns and sort order)
  30. - Some application settings can be overriden: language, favorite organizations, ...
  31. - Users can create shortcuts to any list of objects
  32. 1.2 Should I upgrade to 2.0.0?
  33. -------------------------------
  34. Yes, we recommend you to upgrade.
  35. Please note that upgrading an installation of iTop 1.x will preserve your original data model and data.
  36. Would you like to benefit from the new modelization of the data, then you have to install 2.0
  37. from scratch and migrate your data between the two applications by exporting and importing them back.
  38. This version fixes a significant number of issues (see the list below).
  39. It also comes with significant improvements to the end-user experience:
  40. - editable dashboards
  41. - customize lists
  42. - user preferences
  43. - personal shortcuts
  44. Moreover, the performance has been improved. The gain is much more visible
  45. if you manage thousands of CIs and tickets in iTop.
  46. 1.3 Special Thanks To:
  47. -----------------
  48. Bruno Bonfils for his guidance about LDAP and authentication.
  49. Randall Badilla Castro and Miguel Turrubiates for the Spanish translation.
  50. Jonathan Lucas, Stephan Rosenke and David Gümbel from ITOMIG GmbH, for the German translation.
  51. Christian Lempereur and Olivier Fouquet for their feedbacks.
  52. Everaldo Coelho and the Oxygen Team for their wonderful icons.
  53. The JQuery team and all the jQuery plugins authors for developing such a powerful library.
  54. Phil Eddies for the numerous feedbacks provided, and the first implementation of CKEdit
  55. Marco Tulio and Bruno Cassaro for the Portuguese (Brazilian) translation
  56. Vladimir Shilov and Shamil Khamit for the Russian translation
  57. Izzet Sirin for the Turkish translation
  58. Deng Lixin for the Chinese translation
  59. Marialaura Colantoni for the Italian translation
  60. Schlobinux for the fix of the setup temporary file verification.
  61. Gabor Kiss for the Hungarian translation
  62. Tadashi Kaneda, Shoji Seki and Hirofumi Kosaka for the Japanese translation
  63. Antoine Coetsier for the CAS support and tests
  64. Vincenzo Todisco for his contribution to the enhancement of the webservices
  65. Stephan Rickauer, Tobias Glemser and Sabri Saleh for their consulting about iTop security
  66. Claudio Cesar Sanchez Tejeda for his contribution to bug fixes on the export and data synchronization
  67. 2. INSTALLATION
  68. ============
  69. 2.1. Requirements
  70. ------------
  71. Server configuration:
  72. iTop is based on the AMP (Apache / MySQL / PHP) platform and requires PHP 5.2 and
  73. MySQL 5. The installation of iTop does not require any command line access to the
  74. server. The only operations required to install iTop are: copying the files to the
  75. server and browsing web pages. iTop can be installed on Apache and IIS.
  76. End-user configuration:
  77. Although iTop should work with most modern web browsers, the application has been
  78. tested mostly with Firefox 3, IE8, IE9, Safari 5 and Chrome. iTop was designed for
  79. at least a 1024x768 screen resolution. For the graphical view of the impact analysis,
  80. Flash version 8 or higher is required.
  81. 2.2. Install procedure
  82. -----------------
  83. 1) Make sure that you have a properly configured instance of Apache/PHP/MySQL running
  84. 2) Unpack the files contained in the zipped package, and copy the content of the "web"
  85. directory in a directory served by your web server.
  86. 3) Check the access rights on the files/folders: the setup needs to have write access
  87. either to the directory where iTop is installed or to the following subdirectories
  88. (create them if needed)
  89. - conf
  90. - data
  91. - env-production
  92. - log
  93. 3) Point your web browser to the URL corresponding to the directory where the files
  94. have been unzipped and follow the indications on the screen.
  95. If you wish to re-launch the installation process (for example in order to install
  96. more modules), just make sure that the configuration file (located at <itop>/conf/production/config-itop.php)
  97. is writable by the web server (on Windows: remove the "read-only" flag, on Linux
  98. adjust the rights of the file) and point your browser to <itop>/setup/.
  99. 2.3. CRON.PHP
  100. --------
  101. The following features will require the activation of CRON.PHP:
  102. - asynchronous emails. By default, this option is disabled. To enable it, set 'email_asynchronous' to 1 in the configuration file.
  103. - check ticket SLA. Tickets reaching the limits will be passed into Escalation TTO/TTR states.
  104. More information into the Wiki: https://sourceforge.net/apps/mediawiki/itop/index.php?title=Cron.php
  105. 2.4. Migrating from 1.x versions
  106. ---------------------------
  107. The setup is designed to upgrade existing 1.x instances of iTop automatically. In case the instance was
  108. customized (for example by altering its data model), the installation process will detect the modifications
  109. (by scanning the source files and comparing them with the manifest) and will prompt either to keep the
  110. modifications or to discard them.
  111. If the location of mysql binaries is in the "path", the installation proposes to perform a full backup
  112. of iTop (database + configuration file) using mysqldump.
  113. Here is how to upgrade, step by step, a 1.x instance of iTop.
  114. 1) Do NOT overwrite the files from the previous version. Expand the content of the "web" directory of
  115. the new package into a new directory on the web server.
  116. 2) Check the access rights on the files/folders: the setup needs to have write access either to the
  117. directory where iTop is installed or to the following subdirectories (create them if needed)
  118. - conf
  119. - data
  120. - env-production
  121. - log
  122. 3) Point your web browser to the URL corresponding to the new location. You should see the setup screen.
  123. 4) When prompted (At step 2 of the installation), choose "Upgrade an existing instance"
  124. 5) Enter the needed credentials. It is not mandatory to supply the location (on the disk of the server)
  125. where the previous instance was installed but, by doing so, you let the installation find the credentials
  126. (by looking at the previous configuration file) and also perform additional checks, for instance, to
  127. detect any customization that you may have made to iTop.
  128. 6) Run the setup to completion. Once this is done you can connect to your upgraded iTop.
  129. 7) To replace the old instance of iTop with the newly installed one:
  130. Rename the directories to switch the locations
  131. Edit the new configuration file (now located at <itop>/conf/production/config-itop.php) and change the
  132. value of the "application_url" parameter.
  133. That's it.
  134. 3. FEATURES
  135. ========
  136. 3.1. Changes since 1.2.1
  137. -------------------
  138. Version 2.0.0 brings a few major improvements.
  139. Major changes
  140. -------------
  141. - Editable dashboards: end-users can edit a dashboard by the mean of a WYSIWYG GUI. They can share
  142. their tuned dashboards with other users by the mean of an export/import capability. They can also
  143. leave their custom dashboard and get back to the original dashboard.
  144. The "Preference" page now allows a user to:
  145. - change her/his favorite language
  146. - set a global default for the length of all lists, overriding the system-wide configuration.
  147. - change her/his favorite organizations
  148. - The list of objects have been improved:
  149. - the end-user can change list of displayed columns, and the sort order
  150. - sorting issues have been fixed
  151. - almost every list can be exported
  152. - Users can create a shortcut to any list displayed:
  153. - the search criteria are saved, including the current organization if it was set
  154. - the list of shortcuts can be edited in the user "Preferences" page
  155. - a shortcut is strictly private to a given user
  156. Localization
  157. ------------
  158. No big changes in localization for this release.
  159. The portuguese localization is 90% complete for the data model 1.3, but it is rather incomplete if you use the brand new data model 2.0.
  160. More information on the localization (completion progress, how to contribute) here:
  161. http://www.combodo.com/itop-localization/
  162. Minor changes
  163. -------------
  164. The license has been changed to AGPL (replacing GPL/LPGL)
  165. #421 Sort IP addresses on INET_ATON (API only, see #520 to have this as the default sort order for NW Interfaces)
  166. #520 Capability to define a default sort order (PHP/XML)
  167. #439 Record and display changes in the link sets (ex: Members of a team)
  168. #569 Mandatory date (and time) fields are prefilled with the current date (and time).
  169. Implemented the "multiple choices" in search forms for Enums and External keys.
  170. Added a refresh button (and creation /modification messages) on the details of an object
  171. Friendly names: improved the behavior. Now fully compliant with end users expectations (e.g. a list of contacts shows the friendly name of the persons and team, not only the attribute 'name', the search can be performed on the friendly name as well)
  172. The date picker fills the "time" part of the field with 00:00:00 when picking a DateTime instead of just a Date.
  173. Allow more than 64K for the email content (including attachments)
  174. Distinguish between creation and modification user rights
  175. Updated schema.php to add web link to link class on linked set attributes
  176. Reload the impact/depends on graph only on demand for better performance, via the new Refresh button
  177. Move the "favorites" organization at the bottom of the page.
  178. Do NOT grab cursor hotkeys (CTRL + left arrow) to hide/show the menu pane.
  179. Enhancement: prevent reloading a list while the configuration dialog is open.
  180. Pretty print of the configuration file (parameters ordered alphabetically + comments added)
  181. Allow utilization of place holder in from and reply_to fields for action emails
  182. Config: use app_icon_url to change the hyperlink used when clicking on the main icon
  183. Added a new favicon
  184. Cosmetic enhancements to ease the search for a class in the schema.
  185. Integration of the latest version of CKEditor: version 3.6.4, released on 17 July 2012
  186. error.log moved into the log directory
  187. Display an empty string for the friendlyname of a NULL external key
  188. New developer tool: set log_queries=1 to enable query logging into data/queries.log. The accumulative log data/queries.log can be replayed with test/replay_query_log.php which produces a result file (to check the stability of the results) and a benchmark file (to see the efficiency in CSV)
  189. Debugging: run_query now produces the debug output (log_kpi_duration)
  190. Optimization of SQL queries: reduce the number of JOINS, assuming that data are consistent. Can be disabled with config setting query_optimization_enabled => 0.
  191. New parameter to tweak the display of Impact anaysis: which tab to display first? list or graphics?
  192. Performance enhancement for impact analysis: avoid looping in the recursion.
  193. When iTop is in read only mode, then the portal displays a banner and prevent the user from accessing the modification forms
  194. Added some checks around the configuration of PHP sessions since it seems to cause a lot of troubles.
  195. CSV import/export
  196. -----------------
  197. #283 Import.php localized by default, option no_localize to disable
  198. #175 When moving backward in the CSV import wizard, some settings may be reset (e.g column mapping)
  199. #174 CSV import not displaying the labels of enums
  200. #585 Error in CSV export (from a search result)
  201. #265 Add reconciliations keys into CSV template
  202. #554 Export.php localized by default, option no_localize to disable
  203. #555 Friendlyname abusively used as a reconciliation key
  204. Default charset is ISO-8859-1 to be compatible with Excel (See config parameter csv_file_default_charset)
  205. CSV export in UTF-8 with BOM to help Excel in getting it right (not all versions)
  206. Fixed reporting issues (wrong class, exceptions, changed external key)
  207. Fixed settings lost when navigating in the import wizard
  208. Fixed issues when some html entities were found in the data (reporting + export)
  209. Added a link to download the CSV export.php
  210. CSV import: added flag 'csv_import_history_display' to disable the history tab (too long to display, when the feature is heavily used)
  211. CSV Import: when using cut&paste, the character set is de facto utf-8 (no user choice)
  212. Do not allow changing read-only attributes by CSV import.
  213. Data Synchronization
  214. --------------------
  215. #540 Data synchro: the option "write if empty" was not implemented
  216. #582 "stable name" for synchro_data_xxx tables.
  217. Make sure that the creation of the data_synchro_xxx tables uses the utf8 charset and collation and the same DB Engine as the rest of the database.
  218. Added detecting of missing columns in the synchro_data_xxx tables (in case of duplicate SQL column names in the orignal data model). See Trac #503.
  219. Bug fix: to do not try to access a DataSource while it's being deleted
  220. Enhancement: added a new (hidden) configuration setting 'synchro_prevent_delete_all' (default to true) to deactivate the "safety belt" and allow the deletion of all replicas of a synchro task in one go.
  221. CAS integration
  222. ---------------
  223. - regression fix: support patterns for the MemberOf groups filtering
  224. - activate/de-activate the profiles synchronization using the 'cas_update_profiles' configuration flag
  225. - provide default profile(s) when creating a new user from CAS, only if no match is found for assigning profiles from the CAS MemberOf group(s).
  226. - properly log-off (and report the issue in the log) in case we fail to create a user during the CAS Synchro
  227. Bugs fixed
  228. ----------
  229. The complete list of active tickets can be reviewed at http://sourceforge.net/apps/trac/itop/report/1
  230. #583 Losing attachments when performing massive change
  231. #528 Typo: criticALity
  232. #527 Typo: license get an S in the US
  233. #467 Friendly names not up to date when sending notifications
  234. #411, #421, #520 Sorting of lists: sort is now always executed server-side.
  235. #541 Fixed bug in the export for spreadsheet (time format)
  236. #556 Reworked the caching of user rights data
  237. #558 properly parse OQL strings containing hexadecimal sequences (i.e. 'QWERTY0xCUIOP'). Note that for now hexadecimal numbers are parsed but not interpreted properly...
  238. #559 ldap user can login with blank password
  239. #439 Make sure that changes made by a plugin get recorded
  240. #565 Fixed security issues (XSS)
  241. #614 Fixed regression on multi column queries (could not display Null objects)
  242. #615 Fixed bug on multi column queries - wrong count resulting in strange effects in the display of results
  243. #602 Description not shown in portal
  244. #631 Impossible to assign a routine or emergency change.
  245. #584 Documentation of needed piviledges
  246. #625 CSV export of boolean attributes was broken (false => "")
  247. #624 Corrupted display of the log when updating from the portal.
  248. #589 Do not use ExchangeException here
  249. #627 Do not log the parameters in the call stack in case of exception to protect sensitive data.
  250. #619 Added the option -- single-transaction to the mysqldump command to avoid locking issues with non-existing definer accounts.
  251. #497 Allow bulk modification of "duration" fields.
  252. - Proper display of the modifications on the SynchroAttributes in the History of a SynchroDataSource
  253. - Better display of the history of Boolean atrtibutes (false is no longer displayed as an empty string)
  254. #628 Fix for "undefined property"
  255. #608 Install broken on PHP < 5.2.17
  256. #640 Portal: Resolved requests shown in both lists (opened and resolved)
  257. #628 Sort order and configurable tables
  258. #647 iTop says "ticket updated" but nothing has been changed
  259. #398 Import CSV: Unchanged attributes marked as "modified"
  260. #645 Incorrect URL for downloading attachments, that nobody really to noticed before since it is working fine on most of the web servers
  261. #560 typo for german translation of "Metric"
  262. #629 Nested object creation (button plus) does not work with PHP 5.4 + notification sent on object creation + PHP error level allows NOTICE
  263. #597 IE9: Black border around icons
  264. #441 /doc redirects to Apache documentation! Directory renamed into "/documentation"
  265. Other bug fixes not listed in Trac:
  266. Patch to add the support of indexOf for IE8.
  267. Do not perform time consuming computations for building the menus if there are too many objects in a list (limit is configurable).
  268. Portal fixes (relative URLs and parameter validation)...
  269. Restore the previous URLMaker in case the sending of a notification is not the last action of a page... (e.g. if the page displays the details of an object after sending the notifications...)
  270. Protect against a non-existent "MapContextParams" function
  271. Protects against too long string when logging web services events
  272. XML Export: do not export "unimplemented" link sets, so that the resulting output can be used as sample data in the setup
  273. Bug fix: properly export boolean attributes to XML (a value of false was creating an empty XML tag)
  274. - HTML attributes > 64 Kb
  275. - Log of notification displayed as HTML
  276. Bug fix for queries where the selected class is not the first one in the list
  277. Some changes to the application layout: logs now go to the ./log folder ./data should be used to store application's data.
  278. Fixed an issue revealed by fix [2201], occurring when filtering on organization (context) - the fix is not complete (see Trac #588)
  279. Bug fix: prevent 'assertion failed' when a block auto reloads: '0' is indeed a valid ID for a display block !!
  280. Properly parse accentuated characters inside the "autocomplete" widget.
  281. Protects the dialog resizing against some JS errors
  282. Fixed issues with accentuated characters in the graphs (bars or pie)
  283. Fixed issue in the portal: the list of opened requests and closed request where messed up when pagination was activated on both lists
  284. Bug fix: preserve the previous settings in the configuration file in case of upgrade.
  285. Fixed the "Reset(APC)Cache" at the end of the installation.
  286. Fixed two bugs revealed with specific constraints (query expression like 'SELECT b FROM a JOIN b', AND the organization context is set)
  287. Make sure that GetFilter returns a usable filter (i.e. with the parameters)
  288. Incorrect handling of "negative" selections in bulk delete
  289. Renamed the SQl table from priv_Userinternal to priv_userinternal, and added a check for table names (lowercase is the rule!)
  290. Bug fix:
  291. - Correct initial sort order of a table if the default sort column is not an "alphabetical" column (i.e. IP Address)
  292. - Properly sort on the first column (name) when the name is made of a column with a different sort algorithm (i.e. IP Address).
  293. Protects the display of the history against renamed/removed attributes.
  294. Fixed a bit the portal's stylesheet and prevent calling OnFormCancel on a true submit
  295. Make sure that CSV files end with a proper carriage return
  296. Prevent a undefined variable when logging directly to a details page (bookmarked page)
  297. Fixed caching issue (hard to reproduce)
  298. Notifications: Support multiple recipients in To: Cc: and Bcc:
  299. Protect against empty email addresses
  300. Web Server crashes when using together APC cache and Mcrypt
  301. Fixed issue in CSV export: null enums rendered as 'undefined' whereas '' is the value expected in the import (See an export of Organization/status)
  302. Improved the format for DateTimes (don't let 2012-12-05 1900:00 pass through since it turns into 0000-00-00 00:00:00 in MySQL) but allow to omit the seconds (i.e. 2012-12-05 18:45 will become 2012-12-05 18:45:00 in MySQL)
  303. Make auto_reload work on OQL menus
  304. Do not send a notification if nothing has been changed from the portal web page
  305. Typo causing a bug in IE8 when removing an element from a n:n linkset.
  306. Prevent a crash when not authorized to see an object of a derived class.
  307. Extension capabilities
  308. ----------------------
  309. When there is still no dictionary available, the menus / classes / attributes have a default label based on their raw names (replacing _ by a blank)
  310. Named tab containers instead of non-unique numbering !
  311. Make GetConfig independent of the MetaModel
  312. In the 'context', pass menus by ID and no longer by index.
  313. Use the 'style' of the MenuBlock (inherited from DisplayBlock) to distinguish between a list of one object and the details of the same object.
  314. Datamodel/Menus/Dashboards/Profiles are now defined in XML
  315. Protect the download of documents against spurious blank lines coming from nowhere !!
  316. Implementation of a new extension "iPopupMenuExtension" to allow a module to add menu items almost anywhere inside iTop.
  317. Handling of "pure PHP" classes inside the data model
  318. Don't perform computations inside GetAsHTML because this may cause an infinite recursion since GetAsHTML is called by ToArgs
  319. Simplified the change tracking. Simply call DBObject::DBInsert (resp. Update and Delete) and the change will be recorded for the current page. This is compatible with the old (not mandatory anymore) way that was requiring DBInsertTracked APIs (resp. Update, Delete).
  320. "extensions" is now the offical place for storing extension modules
  321. Portal: enable adding dependent attributes in the request creation form
  322. Objects always recorded before the notifications are sent
  323. Capability to add 'attachments' => array of ormDocument to the context of a trigger, the attachments will be added to the email sent
  324. Added the ability to Find then Remove a tab inside a page
  325. Support edition of the "latest modified" entry of a case log
  326. The hierarchical key in Organizations is not always named 'parent_id'
  327. New extension API: iPageUIExtension to alter the display of *each* iTopWebPage.
  328. 3.2. Known limitations (https://sourceforge.net/apps/trac/itop/report/3)
  329. -----------------
  330. #71 The same MySQL credentials are used during the setup and for running the application.
  331. Suhosin can interfere with iTop. More information can be found here: https://sourceforge.net/apps/mediawiki/itop/index.php?title=ITop_and_Suhosin
  332. Internet Explorer 6 is not supported (neither IE7 nor IE8 in compatibility mode)
  333. Tested with IE8 and IE9, Firefox 3.6 up to Firefox 16 and Chrome. Be aware that there are certain limitations when using IE8 in "security mode" (when running IE on a Windows 2008 Server for example)
  334. 3.3. Known issues (https://sourceforge.net/apps/trac/itop/report/3)
  335. ------------
  336. #259 Not instantaneously logged off when the administrator deletes a user account
  337. #273 The administrator can delete his/her own user account
  338. #372 APC Cache not efficient (multi org usage, global search)
  339. #382 Search form / base class lost after a search
  340. #377 Case log: exclude the index from the views
  341. #388 IE9: edition fields not resizable
  342. #443 Objects remain in the database after de-installing some modules
  343. #442 Useless profiles installed (1.x legacy data model only)
  344. #438 The selection of Organizations using the hierarchy does not work on IE8 in security mode
  345. #436 Cannot type "All Organizations"
  346. #381 Deletion of dependencies could fail in a multi-org environment
  347. #241 "status" is a free-text field when configuring a Trigger
  348. #358 Multi-column queries sometimes returning an empty set
  349. #383 OQL: negative integers not allowed (workaround: 0 - 1)
  350. #399 Copy/paste from iTop's CaseLog looses tabs
  351. #343 CKEditor (HTML Editor) not compatible with direct object creation on ExtKeys
  352. #350 Object edition form: validation does not tell which field has a problem
  353. #317 Edition of a Document - opens the second tab