readme.txt 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. iTop - version 2.3.0 Beta - 26-May-2016
  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.x.x
  9. 2.5. Migration from 1.x versions
  10. 3. FEATURES
  11. 3.1. Changes since 2.2.1
  12. 3.2. Known limitations
  13. 3.3. Known issues
  14. 1. ABOUT THIS RELEASE
  15. ==================
  16. Thank you for downloading the 24th packaged release of iTop.
  17. This version is a major release, with quite a few bug fixes.
  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 is a major release.
  24. It brings the following new features (details in chapter 3.1):
  25. - Enhanced customer portal
  26. - Navigation breadcrumb
  27. - Rich text formatting
  28. - Date and time formats
  29. 1.2 Should I upgrade to 2.3.0?
  30. --------------------------
  31. This version is a beta quality version and, as such, is NOT suitable for running in production.
  32. 1.3 Special Thanks To:
  33. -----------------
  34. Bruno Bonfils for his guidance about LDAP and authentication.
  35. Randall Badilla Castro and Miguel Turrubiates for the Spanish translation.
  36. Jonathan Lucas, Stephan Rosenke and David Gümbel from ITOMIG GmbH, for the German translation.
  37. Christian Lempereur and Olivier Fouquet for their feedbacks.
  38. Everaldo Coelho and the Oxygen Team for their wonderful icons.
  39. The JQuery team and all the jQuery plugins authors for developing such a powerful library.
  40. Phil Eddies for the numerous feedbacks provided, and the first implementation of CKEdit
  41. Marco Tulio and Bruno Cassaro for the Portuguese (Brazilian) translation
  42. Vladimir Kunin, Vladimir Shilov and Shamil Khamit for the Russian translation
  43. Izzet Sirin for the Turkish translation
  44. Deng Lixin for the Chinese translation
  45. Marialaura Colantoni for the Italian translation
  46. Schlobinux for the fix of the setup temporary file verification.
  47. Gabor Kiss for the Hungarian translation
  48. Tadashi Kaneda, Shoji Seki and Hirofumi Kosaka for the Japanese translation
  49. Antoine Coetsier for the CAS support and tests
  50. Vincenzo Todisco for his contribution to the enhancement of the webservices
  51. Stephan Rickauer, Tobias Glemser and Sabri Saleh for their consulting about iTop security
  52. Claudio Cesar Sanchez Tejeda for his contribution to bug fixes on the export and data synchronization
  53. Bruno Cornec for his support and contribution to the Linux packaging of iTop
  54. Jean-François Bilger for providing a fix for an unsuspected SQL bug
  55. Remie Malik from Linprofs for the Dutch translation
  56. Erik Bøg for the Danish translation
  57. Lukáš Dvořák and Daniel Rokos for the Czech translation
  58. 2. INSTALLATION
  59. ============
  60. 2.1. Requirements
  61. ------------
  62. Server configuration:
  63. iTop is based on the AMP (Apache / MySQL / PHP) platform and requires PHP 5.3 and
  64. MySQL 5. The installation of iTop does not require any command line access to the
  65. server. The only operations required to install iTop are: copying the files to the
  66. server and browsing web pages. iTop can be installed on any web server supporting
  67. PHP 5.3: Apache, IIS, nginx...
  68. End-user configuration:
  69. Although iTop should work with most modern web browsers, the application has been
  70. tested mostly with Firefox 36+, IE9+, Safari 5 and Chrome. iTop was designed for
  71. at least a 1024x768 screen resolution.
  72. 2.2. Install procedure
  73. -----------------
  74. 1) Make sure that you have a properly configured instance of Apache/PHP/MySQL running
  75. 2) Unpack the files contained in the zipped package, and copy the content of the "web"
  76. directory in a directory served by your web server.
  77. 3) Check the access rights on the files/folders: the setup needs to have write access
  78. either to the directory where iTop is installed or to the following subdirectories
  79. (create them if needed)
  80. - conf
  81. - data
  82. - env-production
  83. - log
  84. 4) Point your web browser to the URL corresponding to the directory where the files
  85. have been unzipped and follow the indications on the screen.
  86. If you wish to re-launch the installation process (for example in order to install
  87. more modules), just make sure that the configuration file (located at <itop>/conf/production/config-itop.php)
  88. is writable by the web server (on Windows: remove the "read-only" flag, on Linux
  89. adjust the rights of the file) and point your browser to <itop>/setup/.
  90. 2.3. cron.php
  91. --------
  92. The following features will require the activation of CRON.PHP:
  93. - asynchronous emails. By default, this option is disabled. To enable it, set 'email_asynchronous' to 1 in the configuration file.
  94. - check ticket SLA. Tickets reaching the limits will be passed into Escalation TTO/TTR states.
  95. More information into the Wiki: https://wiki.openitop.org/doku.php?id=2_0_3:admin:cron
  96. You can get a status of the cron "tasks" with the command:
  97. php cron.php --auth_user=admin_login --auth_pwd=admin_pwd --status_only=1
  98. The output will look as shown below:
  99. +---------------------------+---------+---------------------+---------------------+--------+-----------+
  100. | Task Class | Status | Last Run | Next Run | Nb Run | Avg. Dur. |
  101. +---------------------------+---------+---------------------+---------------------+--------+-----------+
  102. | CheckStopWatchThresholds | active | 2013-03-28 10:32:27 | 2013-03-28 10:32:37 | 51 | 0.317 s |
  103. | EmailBackgroundProcess | active | 2013-03-28 10:32:27 | 2013-03-28 10:32:57 | 12 | 7.089 s |
  104. | ExecAsyncTask | active | 2013-03-28 10:32:27 | 2013-03-28 10:32:29 | 51 | 0.032 s |
  105. +---------------------------+---------+---------------------+---------------------+--------+-----------+
  106. 2.4. Upgrading from 2.x.x
  107. --------------------
  108. The version 2.3.0 if fully compatible with 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.1.0, 2.2.0 and 2.2.1.
  109. Due to few database changes and new modules/files that have to be installed, you
  110. must run the setup when upgrading (whatever the original version).
  111. If the location of mysql binaries is in the "path", the setup proposes to perform a full backup
  112. of iTop (database + configuration file) using mysqldump.
  113. Here is how to upgrade, step by step, a 2.x.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. whole 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) Either enter the path (on the disk) to the previous instance, or supply the needed credentials.
  125. 6) Run the setup to completion. Once this is done you can connect to your upgraded iTop.
  126. 7) To replace the old instance of iTop with the newly installed one:
  127. Rename the directories to switch the locations
  128. Edit the new configuration file (now located at <itop>/conf/production/config-itop.php) and change the
  129. value of the "application_url" parameter.
  130. 2.5. Migrating from 1.x versions
  131. ---------------------------
  132. The setup is designed to upgrade existing 1.x instances of iTop automatically. In case the instance was
  133. customized (for example by altering its data model), the installation process will detect the modifications
  134. (by scanning the source files and comparing them with the manifest) and will prompt either to keep the
  135. modifications or to discard them.
  136. If the location of mysql binaries is in the "path", the installation proposes to perform a full backup
  137. of iTop (database + configuration file) using mysqldump.
  138. Here is how to upgrade, step by step, a 1.x instance of iTop.
  139. 1) Do NOT overwrite the files from the previous version. Expand the content of the "web" directory of
  140. the new package into a new directory on the web server.
  141. 2) Check the access rights on the files/folders: the setup needs to have write access either to the
  142. directory where iTop is installed or to the following subdirectories (create them if needed)
  143. - conf
  144. - data
  145. - env-production
  146. - log
  147. 3) Point your web browser to the URL corresponding to the new location. You should see the setup screen.
  148. 4) When prompted (At step 2 of the installation), choose "Upgrade an existing instance"
  149. 5) Enter the needed credentials. It is not mandatory to supply the location (on the disk of the server)
  150. where the previous instance was installed but, by doing so, you let the installation find the credentials
  151. (by looking at the previous configuration file) and also perform additional checks, for instance, to
  152. detect any customization that you may have made to iTop.
  153. 6) Run the setup to completion. Once this is done you can connect to your upgraded iTop.
  154. 7) To replace the old instance of iTop with the newly installed one:
  155. Rename the directories to switch the locations
  156. Edit the new configuration file (now located at <itop>/conf/production/config-itop.php) and change the
  157. value of the "application_url" parameter.
  158. That's it.
  159. 3. FEATURES
  160. ========
  161. 3.1. New features
  162. ------------
  163. 1) Enhanced customer portal
  164. Completely new and responsive user interface: support of mobile phone, tablets, etc.
  165. Highly customizable via XML
  166. FAQs integrated by default
  167. 2) Navigation breadcrumb
  168. Based on Most Recently visited pages
  169. New shorcuts buttons when the navigation menu is hidden
  170. 3) Rich text fields
  171. Case log and ticket description can now be formatted
  172. Fullscreen edition
  173. Copy/Paste and Drag-and-Drop of images
  174. 4) Date and time format
  175. Configurable per language (new setting date_and_time_format in the configuration file)
  176. Custom formats are supported for import/export
  177. For backward compatibility, the default setting is the MySQL format
  178. 3.2. Changes since 2.2.1
  179. -------------------
  180. 1) Browser compatibility
  181. IE8 is not supported anymore: the minimum version for Internet Explorer is 9
  182. No need for Flash players anymore
  183. 2) Data model (2.x)
  184. Added attribute Ticket::operational_status: depending on the status of the ticket, this attribute will take on of the following values: ongoing, resolved or closed
  185. Added Person/picture: optionally add the picture and visualize it in the details or in the enhanced portal
  186. User Request (all-in-one): the end-user can leave the request type undefined, in such a case, she can select any type of services and the request type gets computed when the requests is written to the DB. Still, this is possible to select a request type and the list of services is filled with the corresponding services. This behavior was necessary for the new user portal to work fine.
  187. Tickets description and case logs are now in HTML
  188. 3) Data corruption
  189. #1213 Losing SLA data when changing any attribute of an SLA.
  190. 4) Security
  191. #1202: Fix for a security vulnerability in the Configuration Editor.
  192. Fix for potential XSS vulnerability on uploaded file names.
  193. XSS: Correctly escape the name of an object when it is displayed within an hyperlink
  194. "Forgotten password" feature: the temporary token could be hacked by the mean of a hand-made HTTP request
  195. 4) Customizations (via XML deltas)
  196. Switching to XML version 1.3.
  197. - new attribute MetaEnum
  198. - new attribute AttributeCustomFields (experimental!)
  199. - new attribute AttributeImage (experimental!)
  200. - new flag _delta="if_exists". Use this flag to ignore a branch if the corresponding node does not exist in the data model being hacked. This is to reduce the burden of developping separate modules depending on the installation options.
  201. - new flag to open/collapse the search form at the top of a page in an OQLMenuNode: search_form_open
  202. ResetStopWatch could not be used as a lifecycle action: the symptom is "The action has failed".
  203. Label of the final class attribute could only be defined on the root class (overriding it in derived classes had no effect)
  204. Improved the error reporting when assembling data model XML files (full path and line number of the faulty node)
  205. A module can have its own design defined in XML (/itop_design/modules_designs/module_design) and accessed at run time via the class ModuleDesign.
  206. The images specified in the branding or in module_designs can be given as a fileref or a path relative to the env-production directory
  207. 5) Module development (PHP API)
  208. No need for bridge (auto-select) modules to be listed as installed modules in the about box. Still, they are listed in the "support information".
  209. Improved the module ordering algorithm. If a module has several dependencies (inclusive OR), it must be installed after each and every of its dependency that has been selected for installation.
  210. Support for objects to go "out of the silo" during a transition by making sure that we can reload an object we've just saved.
  211. If you have developped specific pages, and want them to appear in the breadcrumb, call iTopWebPage::AddBreadCrumbEntry.
  212. Added verbs to the User Rights management API:
  213. - HasProfile
  214. - ListProfiles
  215. - GetAllowedPortals
  216. Added a mean to cache data that will be reset upon compilation. To be used in conjunction with ModuleDesign.
  217. 6) Queries (OQL)
  218. Magic query arguments:
  219. - In addition to current_contact_id, the following arguments can be used in any OQL query (provided that the page running the query requires a login): current_contact->attcode and current_user->attcode
  220. - The "Run queries" page is now taking into account those magic arguments (do not prompt the end-user with these arguments!)
  221. 7) Optimizations
  222. Do not load all columns when checking if a CI is part of the "context" of a given ticket.
  223. Optimization/bug (!): Never use the whole object as a placeholder in ApplyParams !!
  224. Cleanup and optimization of the handling/loading of the dictionary files.
  225. Optimization: load "pdftage" (and thus tcpdf) only when needed.
  226. Adding an extra index to speed-up data synchronization for large volumes of data.
  227. Improved the User Rights management API:
  228. Doing less queries for user rights: caching the user profiles into the SESSION cookie
  229. 8) Other fixes
  230. #1210 Dependant field not reset (servicesubcategory not reset when service is reset)
  231. Modified the "List" tab of the Impact Analysis to display only the actually impacted objects. The content of this tab is now refreshed every time the graph is rebuilt to take into account the "context" changes which causes the actual impact to change, or the filtering.
  232. Initial feedback while loading the 'list' tab of the impact analysis, useful when this tab is displayed first.
  233. Fixed a typo in German translation files ("Deails für Benutzeranfrage" => "Details für Benutzeranfrage")
  234. When a date/time format is specified, don't try to process columns named 'id' since obviously these are neither date/times nor a genuine attribute code.
  235. #1209 Setup or Backup failing with french error message 'Effacement du fichier ...' Regression introduced in iTop 2.2.1. Occurs when a backup fails and prevents users from seeing the mysql error report.
  236. Attachments : Delete button's label of an attachment was hard-coded. Putted dictionnary entry instead.
  237. Wiki syntax: allow white spaces in the specification of a link to an object (form: [[<class>:<friendlyname>]])
  238. #1215: URL fields can now store up to 2048 characters
  239. #1214: concurrent access lock not properly released when CheckToWrite() reports an error during a transition from one state to another.
  240. Styles fine tuning and nicer display of the main menu (no more animation on initial load).
  241. Suppress "Notice" messages when iconv detects invalid UTF-8 characters, since it breaks the JSON output if display_errors in On...
  242. 9) Internal
  243. Exclude magic parameters when listing query parameters (refactoring from run_query) This enables the use of magic parameters in the exports. The issue was less exposed in iTop 2.2.0 because only one single magic parameter was available.
  244. DBSearch : Allow join between DBUnionSearch by adding the DBUnionSearch::Join verb
  245. #1221 Exclude git folder from the copied folders, during the compilation process
  246. Fixed typo in the reporting of page spurious chars
  247. Installation
  248. - Better handling of 'auto_select' modules
  249. - New way of implementing the "includes" of modules, now completely out of the configuration file !
  250. Implemented DBObject::ExecActions, enables scripting object preset/modifications
  251. Added verb ormCaseLog::GetAsArray()
  252. Query arguments: when the value of a query argument is null, it must be considered as being a valid argument (was reported as missing). Improved the error reporting when the argument is in the form :this->attcode and the attcode is not valid for the class of 'this'.
  253. Query arguments could be array values, making it easier to build dynamic IN() clauses
  254. Added DBObject::RegisterURLMakerClass, to allow for overriding the standard behavior of template placeholders such as $this->org_id->hyperlink(portal)$
  255. When uploading documents, get the mimetype from the file itself (if feasible) rather than relying on the mimetype of the HTTP header. This was already implemented but it was buggy and fell anytime into the fallback method.
  256. Make the login page more mobile friendly.
  257. Add the "filter" attribute into the details form of the TriggerOnThresholdReached class.
  258. Prevent infinite cross-ticket recursion when propagating parent->child resolution in tickets.
  259. The result of CheckToWrite() was not taken into account (action failed silently) when creating an object using the [+] button inside a form.
  260. Programmatically allow to write on any object - if needed - independently of the profiles.
  261. PHP warning issued when the CSS is rebuilt (SASS lib)
  262. Core API: added DBSearch:SetSelectedClasses
  263. #1173 Error during setup on a development system (XML containing unwanted text)
  264. Core : Added CloneWithAlias function to DBSearch class. It creates a new DBObjectSearch from a DBSearch with a new alias.
  265. Compiler: Model alterations not flattened prior to compilation (when using the setup UI)
  266. Model Factory: factorized duplicate code from ApplyChanges + fixed an issue in the error reporting
  267. Fixed the verb DBObjectSearch::IsAny
  268. 3.2. Known limitations (https://sourceforge.net/apps/trac/itop/report/3)
  269. -----------------
  270. #71 The same MySQL credentials are used during the setup and for running the application.
  271. Suhosin can interfere with iTop. More information can be found here: http://www.combodo.com/wiki/doku.php?id=admin:suhosin
  272. Internet Explorer 6 is not supported (neither IE7 nor IE8 in compatibility mode)
  273. 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)
  274. 3.3. Known issues (https://sourceforge.net/apps/trac/itop/report/3)
  275. ------------
  276. #259 Not instantaneously logged off when the administrator deletes a user account
  277. #273 The administrator can delete his/her own user account
  278. #372 APC Cache not efficient (multi org usage, global search)
  279. #382 Search form / base class lost after a search
  280. #377 Case log: exclude the index from the views
  281. #388 IE9: edition fields not resizable
  282. #443 Objects remain in the database after de-installing some modules
  283. #442 Useless profiles installed (1.x legacy data model only)
  284. #438 The selection of Organizations using the hierarchy does not work on IE8 in security mode
  285. #436 Cannot type "All Organizations"
  286. #381 Deletion of dependencies could fail in a multi-org environment
  287. #241 "status" is a free-text field when configuring a Trigger
  288. #358 Multi-column queries sometimes returning an empty set
  289. #399 Copy/paste from iTop's CaseLog looses tabs
  290. #343 CKEditor (HTML Editor) not compatible with direct object creation on ExtKeys
  291. #350 Object edition form: validation does not tell which field has a problem
  292. #730 Leaving temporary files when performing a backup of the data during installation
  293. #1145 Two connections between a connectable CI and a network device must have different ports
  294. #1146 History not reflecting a modification of the connection between a connectable CI and a network device
  295. #1147 Identical links not always modified as expected