readme.txt 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  1. iTop - version 2.2.0 Beta - 15-July-2015
  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. Upgrading from 2.0.x
  9. 2.5. Migration from 1.x versions
  10. 3. FEATURES
  11. 3.1. Changes since 2.1.0
  12. 3.2. Known limitations
  13. 3.3. Known issues
  14. 1. ABOUT THIS RELEASE
  15. ==================
  16. Thank you for downloading the 21st packaged release of iTop.
  17. This version is a major release, with quite a few bug significative enhancements.
  18. The documentation about iTop is available as a Wiki: https://wiki.openitop.org/
  19. iTop is released under the AGPL (v3) license. (Check license.txt in this directory).
  20. The source code of iTop can be found on SourceForge: https://sourceforge.net/p/itop/code/
  21. 1.1 What's new?
  22. ---------------------------
  23. This version brings a number of expected enhancements, namely:
  24. - An new engine to compute and display impact analysis
  25. - A complete rework of the exports
  26. - A lock for objects being modified by an agent
  27. - A few optimizations (APC cache required)
  28. - Enhancements to customizations that can be performed in XML
  29. ... and about 25 bug fixes
  30. 1.2 Should I upgrade to 2.2.0 beta?
  31. -------------------------------
  32. Considering that iTop 2.2.0 is fully compatible with iTop 2.0.x and the number of bugs fixed, we recommend you to upgrade.
  33. Anyhow, prior to taking that decision, we encourage you to have a look at the migration notes:
  34. https://wiki.openitop.org/doku.php?id=2_1_0:admin:210_to_220_migration_notes
  35. 1.3 Special Thanks To:
  36. -----------------
  37. Bruno Bonfils for his guidance about LDAP and authentication.
  38. Randall Badilla Castro and Miguel Turrubiates for the Spanish translation.
  39. Jonathan Lucas, Stephan Rosenke and David Gümbel from ITOMIG GmbH, for the German translation.
  40. Christian Lempereur and Olivier Fouquet for their feedbacks.
  41. Everaldo Coelho and the Oxygen Team for their wonderful icons.
  42. The JQuery team and all the jQuery plugins authors for developing such a powerful library.
  43. Phil Eddies for the numerous feedbacks provided, and the first implementation of CKEdit
  44. Marco Tulio and Bruno Cassaro for the Portuguese (Brazilian) translation
  45. Vladimir Kunin, Vladimir Shilov and Shamil Khamit for the Russian translation
  46. Izzet Sirin for the Turkish translation
  47. Deng Lixin for the Chinese translation
  48. Marialaura Colantoni for the Italian translation
  49. Schlobinux for the fix of the setup temporary file verification.
  50. Gabor Kiss for the Hungarian translation
  51. Tadashi Kaneda, Shoji Seki and Hirofumi Kosaka for the Japanese translation
  52. Antoine Coetsier for the CAS support and tests
  53. Vincenzo Todisco for his contribution to the enhancement of the webservices
  54. Stephan Rickauer, Tobias Glemser and Sabri Saleh for their consulting about iTop security
  55. Claudio Cesar Sanchez Tejeda for his contribution to bug fixes on the export and data synchronization
  56. Bruno Cornec for his support and contribution to the Linux packaging of iTop
  57. Jean-François Bilger for providing a fix for an unsuspected SQL bug
  58. Remie Malik from Linprofs for the Dutch translation
  59. Erik Bøg for the Danish translation
  60. 2. INSTALLATION
  61. ============
  62. 2.1. Requirements
  63. ------------
  64. Server configuration:
  65. iTop is based on the AMP (Apache / MySQL / PHP) platform and requires PHP 5.3 and
  66. MySQL 5. The installation of iTop does not require any command line access to the
  67. server. The only operations required to install iTop are: copying the files to the
  68. server and browsing web pages. iTop can be installed on any web server supporting
  69. PHP 5.3: Apache, IIS, nginx...
  70. End-user configuration:
  71. Although iTop should work with most modern web browsers, the application has been
  72. tested mostly with Firefox 3+, IE8, IE9, Safari 5 and Chrome. iTop was designed for
  73. at least a 1024x768 screen resolution. For the graphical view of the impact analysis,
  74. Flash version 8 or higher is required.
  75. 2.2. Install procedure
  76. -----------------
  77. 1) Make sure that you have a properly configured instance of Apache/PHP/MySQL running
  78. 2) Unpack the files contained in the zipped package, and copy the content of the "web"
  79. directory in a directory served by your web server.
  80. 3) Check the access rights on the files/folders: the setup needs to have write access
  81. either to the directory where iTop is installed or to the following subdirectories
  82. (create them if needed)
  83. - conf
  84. - data
  85. - env-production
  86. - log
  87. 4) Point your web browser to the URL corresponding to the directory where the files
  88. have been unzipped and follow the indications on the screen.
  89. If you wish to re-launch the installation process (for example in order to install
  90. more modules), just make sure that the configuration file (located at <itop>/conf/production/config-itop.php)
  91. is writable by the web server (on Windows: remove the "read-only" flag, on Linux
  92. adjust the rights of the file) and point your browser to <itop>/setup/.
  93. 2.3. cron.php
  94. --------
  95. The following features will require the activation of CRON.PHP:
  96. - asynchronous emails. By default, this option is disabled. To enable it, set 'email_asynchronous' to 1 in the configuration file.
  97. - check ticket SLA. Tickets reaching the limits will be passed into Escalation TTO/TTR states.
  98. More information into the Wiki: https://wiki.openitop.org/doku.php?id=2_0_3:admin:cron
  99. You can get a status of the cron "tasks" with the command:
  100. php cron.php --auth_user=admin_login --auth_pwd=admin_pwd --status_only=1
  101. The output will look as shown below:
  102. +---------------------------+---------+---------------------+---------------------+--------+-----------+
  103. | Task Class | Status | Last Run | Next Run | Nb Run | Avg. Dur. |
  104. +---------------------------+---------+---------------------+---------------------+--------+-----------+
  105. | CheckStopWatchThresholds | active | 2013-03-28 10:32:27 | 2013-03-28 10:32:37 | 51 | 0.317 s |
  106. | EmailBackgroundProcess | active | 2013-03-28 10:32:27 | 2013-03-28 10:32:57 | 12 | 7.089 s |
  107. | ExecAsyncTask | active | 2013-03-28 10:32:27 | 2013-03-28 10:32:29 | 51 | 0.032 s |
  108. +---------------------------+---------+---------------------+---------------------+--------+-----------+
  109. 2.4. Upgrading from 2.x.x
  110. --------------------
  111. The version 2.2.0 if fully compatible with 2.0.0, 2.0.1, 2.0.2, 2.0.3 and 2.1.0. Due to few database changes,
  112. and new modules/files that have to be installed, you must run the setup when upgrading (whatever the original
  113. version).
  114. If the location of mysql binaries is in the "path", the setup proposes to perform a full backup
  115. of iTop (database + configuration file) using mysqldump.
  116. Here is how to upgrade, step by step, a 2.x.x instance of iTop:
  117. 1) Do NOT overwrite the files from the previous version. Expand the content of the "web" directory of
  118. the new package into a new directory on the web server.
  119. 2) Check the access rights on the files/folders: the setup needs to have write access either to the
  120. whole directory where iTop is installed or to the following subdirectories (create them if needed)
  121. - conf
  122. - data
  123. - env-production
  124. - log
  125. 3) Point your web browser to the URL corresponding to the new location. You should see the setup screen.
  126. 4) When prompted (At step 2 of the installation), choose "Upgrade an existing instance"
  127. 5) Either enter the path (on the disk) to the previous instance, or supply the needed credentials.
  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. 2.5. Migrating from 1.x versions
  134. ---------------------------
  135. The setup is designed to upgrade existing 1.x instances of iTop automatically. In case the instance was
  136. customized (for example by altering its data model), the installation process will detect the modifications
  137. (by scanning the source files and comparing them with the manifest) and will prompt either to keep the
  138. modifications or to discard them.
  139. If the location of mysql binaries is in the "path", the installation proposes to perform a full backup
  140. of iTop (database + configuration file) using mysqldump.
  141. Here is how to upgrade, step by step, a 1.x instance of iTop.
  142. 1) Do NOT overwrite the files from the previous version. Expand the content of the "web" directory of
  143. the new package into a new directory on the web server.
  144. 2) Check the access rights on the files/folders: the setup needs to have write access either to the
  145. directory where iTop is installed or to the following subdirectories (create them if needed)
  146. - conf
  147. - data
  148. - env-production
  149. - log
  150. 3) Point your web browser to the URL corresponding to the new location. You should see the setup screen.
  151. 4) When prompted (At step 2 of the installation), choose "Upgrade an existing instance"
  152. 5) Enter the needed credentials. It is not mandatory to supply the location (on the disk of the server)
  153. where the previous instance was installed but, by doing so, you let the installation find the credentials
  154. (by looking at the previous configuration file) and also perform additional checks, for instance, to
  155. detect any customization that you may have made to iTop.
  156. 6) Run the setup to completion. Once this is done you can connect to your upgraded iTop.
  157. 7) To replace the old instance of iTop with the newly installed one:
  158. Rename the directories to switch the locations
  159. Edit the new configuration file (now located at <itop>/conf/production/config-itop.php) and change the
  160. value of the "application_url" parameter.
  161. That's it.
  162. 3. FEATURES
  163. ========
  164. 3.1. Changes since 2.1.0
  165. -------------------
  166. Modernizations
  167. --------------------
  168. New look
  169. The 'zip' extension is now mandatory to install iTop, since the code relies on the ZipArchive class for the Excel export and the scheduled backup.
  170. iTop now requires PH 5.3 or higher.
  171. Impact analysis
  172. -----------------
  173. Takes the redundancy into account (configurable on power sources or on the farms)
  174. View from the ticket
  175. The view from the CI takes into account the active tickets and is exportable in PDF (can be attached to the CI)
  176. The view has been improved and better supports high volumes of data
  177. Can be customized in XML, still backward compatible with definition made by the mean of methods
  178. Exports
  179. -------------
  180. Bulk Export redesign, addressing the tickets:
  181. #1071 Bulk Read access rights
  182. #1034 List of fields for Excel export
  183. #772 Some attributes not exportedvia export.php
  184. Main features:
  185. - list and order of the fields taken into account
  186. - interactive mode to specify all the parameters interactively (including the list and the order of fields)
  187. - same behavior for all the formats: html, CSV, spreadsheet, XML
  188. - new PDF export
  189. Locking
  190. -------------
  191. OQL syntax
  192. --------------------
  193. 1) UNION
  194. SELECT Server WHERE cpu = '...' UNION SELECT PC
  195. Unions support polymorphism and can be used anywhere in the application.
  196. 2) JOIN ... ON objkey = id
  197. Allow JOIN on a objclass/objkey pair of attributes
  198. Enables queries on the synchronized objects (SynchroReplica::dest_id changed into an attribute of type AttributeObjectKey),
  199. or with change tracking logs.
  200. Scalability / Performance
  201. -------------------------
  202. Optimization: improved the OQL cache:
  203. - take benefit of the APC cache (if present)
  204. - memory indexation could fail in case of long queries (query id based on a md5)
  205. - added kpi measure on the OQL parsing
  206. Optimization: when displaying an object details, do not check data synchro for each and every attribute (the cache did exist but was inoperant)
  207. Performance optimization: cache the result of the disk scan looking for icons for dashboards
  208. Optimization of DisplayBlock::FromObjectSet, load only the needed column!
  209. Miscellaneous fixes
  210. -------------------
  211. #714 Localization of the date picker calendar. Get rid of the old jquery.datepicker.js file since iTop now relies on the built-in jQuery UI date picker widget.
  212. #257 Dashlet label hardcoded to "Search for objects of type Server"
  213. #759 Ticket lists in CI: show only active tickets (exclude tickets in states rejected/resolved/closed) and display one list per leaf class so that the status column will be visible. It it not possible anymore to edit the ticket list from the CI.
  214. #1062 bumped the version number of the REST/JSON API to 1.3 to be aligned with the documentation !
  215. #963 For security reasons, "Portal users" are no longer allowed to use the REST/JSON API.
  216. #1078 Properly record the history of LinkedSet(Indirect)
  217. #1079 DBWriteLinks deleting related objects
  218. Bug fix: don't accept attachments (like images) via Chrome's copy/paste since it may duplicate the text content of a normal copy/paste and moreover causes troubles because there is no file name associated with the pasted content.
  219. #788 Whenever a timeout is detected by an ajax request, a popup dialog warns the user to log-in again.
  220. Small enhancement to the display of the meta model: in the list of transitions, display the code of the event as a tooltip.
  221. JSON/REST: When specifying a case log entry (or the whole), it was not possible to set the user name without knowing a valid user id
  222. Bug fix: prevent a crash of the web services when trying to log a non scalar paramater value...
  223. #1092 Caller not preset when creating a ticket from a contact
  224. #1082 Dashlet badge: do not display search results everytime.
  225. #1088 Support of HTMLEditor in the PortalWebPage, for example if the description of a ticket is in HTML.
  226. Bug fix: properly compute the URLs/URIs for the soap server (and its extensions)
  227. #1083 HTML export: show a scroll bar when needed.
  228. #1059 fix for the Spanish localization first_name and last_name were swaped.
  229. #1054 increase max_execution_time during the setup.
  230. #1052 Fix for the German localization.
  231. #1050 Properly support the 'list' display style for external keys - as stated in the documentation!
  232. #1047 Fix for the FindTab method.
  233. #1045 Fix in the German localization.
  234. #594 Properly display attachments inside "properties" by closing the span and the fieldset in non-edit mode.
  235. Extending the data model
  236. ------------------------
  237. New lifecycle action SetCurrentPerson. Also improved the existing lifecycle action SetCurrentUser to prevent from calling it on an external key that is not pointing to users (!= contact), and if the target attribute is a string, then store the friendlyname there.
  238. #1069 Fix to add a new hierarchical key when there are already some records in the DB
  239. Modules implementing a lifecycle written in PHP (and having actions executed on transitions) do not work until 2.1.0. The compatibility patch had been implemented but it was not working.
  240. XML Enhancement: support injection of new modules treated as data.
  241. XML 1.2: handle the XML transformation. Added APIs to report the functionality loss when downgrading (snippets, portal, module parameters, relations and object key)
  242. XML Enhancement: PHP snippets inside the XML.
  243. XML Enhancement: the default value for a module's parameter can now be specified (and altered) via the XML and will no longer reside in the configuration file.
  244. API Enhancement: allow the API to create Case Log entries with a specified user_login.
  245. Modularization of the portal. The entry points for portals is now defined in XML, and thus can be altered by an extension.
  246. #1053 XML comments breaking the setup with message "Notice: Undefined property: DOMComment::$wholeText in ...modelfactory.class.inc.php on line 1280". Now, the XML comments are allowed.
  247. Internals
  248. ----------------------
  249. Code cleanup: deprecated the unused (and empty) class CMDBSearchFilter, replaced by DBSearch or DBObjectSearch depending on the usage.
  250. Added an alternate implementation for storing "transaction" identifiers on disk instead of inside the $_SESSION variable.
  251. Mutex instrumentation for troubleshooting...
  252. Make sure that the SQL mutexes are specific to the current iTop instance, but still preserving the capability for the setup to detect an already running cron job with or without a valid config file.
  253. Integrated the lexer/parser build tools (Lexer=0.4.0, Parser=0.1.7)
  254. Implemented GetForJSON and FromJSONToValue for AttributeLinkedSet (though this is not used for the Rest/JSON services which are doing much more) -retrofit from branch 2.1.0
  255. Make it possible to overload RestUtils (static methods called with static:: instead of self::) - iTop NOW REQUIRES PHP 5.3: we have verified, there are very installations of iTop made on PHP 5.2. It is worth to note that PHP 5.3 is already end of life (5.4 will become end of life in 8 months)
  256. Improved the symptom when an error occurs in the "apply stimulus form". The symptom used to be: Object could not be written; unknown error. Now it will give the error message (e.g. Missing query arguments) so as to help in determining what's going on.
  257. ormStopWatch::GetElapsedTime not working in case of queries containing :this-> parameters (the prototype of GetElapsedTime has changed and is NOT compatible with the previous one)
  258. Fixed a typo on the default document mimetype: application/x-octet-stream
  259. Meta information on lifecycle actions arguments: added type restrictions, and added the method ResetStopWatch
  260. Additional markup for JQuery scripts...
  261. Forms Enhancement: do not retrieve disabled fields.
  262. Forms : Support several sets of forbidden values (with a specific "reason" message) per field.
  263. - Read-only "long text" fields no longer appear as editable
  264. - Combo and FormSelector fields are now sorted by default (but sorting can be disabled if needed)
  265. Protect against JS errors when the form is in read-only mode.
  266. Properly handle property_sheets with nested selector fields...
  267. #803 template placeholders are now built on demand.
  268. #1060 Internal: improved the symptoms when calling MetaModel::GetAttributeDef with an invalid attribute code (feedback on the class name and no more FATAL errors)
  269. Internal: fixed the caching of DBObject::ToArgs()
  270. 1) Wasn't reset when the object was written the DB (thus having its ID set)
  271. 2) Wasn't taking the argument name into account (the list of placeholders was defined by the first caller)
  272. Change of the QueryReflection API to support DesignTime.
  273. ModelFactory: Re-creating a class into another location in the class hierarchy it equivalent to moving that class => the delta must be a "redefine" for the class (improved the comment from the previous commit)
  274. ModelFactory: Re-creating a class into another location in the class hierarchy it equivalent to moving that class => the delta must be a "redefine" for the class
  275. 3.2. Known limitations (https://sourceforge.net/apps/trac/itop/report/3)
  276. -----------------
  277. #71 The same MySQL credentials are used during the setup and for running the application.
  278. Suhosin can interfere with iTop. More information can be found here: http://www.combodo.com/wiki/doku.php?id=admin:suhosin
  279. Internet Explorer 6 is not supported (neither IE7 nor IE8 in compatibility mode)
  280. Tested with IE8 and IE9, Firefox 3.6 up to Firefox 24 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)
  281. 3.3. Known issues (https://sourceforge.net/apps/trac/itop/report/3)
  282. ------------
  283. #259 Not instantaneously logged off when the administrator deletes a user account
  284. #273 The administrator can delete his/her own user account
  285. #372 APC Cache not efficient (multi org usage, global search)
  286. #382 Search form / base class lost after a search
  287. #377 Case log: exclude the index from the views
  288. #388 IE9: edition fields not resizable
  289. #443 Objects remain in the database after de-installing some modules
  290. #442 Useless profiles installed (1.x legacy data model only)
  291. #438 The selection of Organizations using the hierarchy does not work on IE8 in security mode
  292. #436 Cannot type "All Organizations"
  293. #381 Deletion of dependencies could fail in a multi-org environment
  294. #241 "status" is a free-text field when configuring a Trigger
  295. #358 Multi-column queries sometimes returning an empty set
  296. #399 Copy/paste from iTop's CaseLog looses tabs
  297. #343 CKEditor (HTML Editor) not compatible with direct object creation on ExtKeys
  298. #350 Object edition form: validation does not tell which field has a problem
  299. #730 Leaving temporary files when performing a backup of the data during installation
  300. #1034 Excel export on the command-line ignoring the list of fields