User Tools

Site Tools

:: Version 2.7.0 ::

2_7_0:release:2_7_whats_new

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
2_7_0:release:2_7_whats_new [2019/12/20 09:41]
vdumas
2_7_0:release:2_7_whats_new [2020/04/15 15:23] (current)
Line 7: Line 7:
   * List of changes across iTop history: [[2_7_0:​release:​change_log|Cumulative Change Log]]   * List of changes across iTop history: [[2_7_0:​release:​change_log|Cumulative Change Log]]
  
 +====== What's new in iTop Community ======
  
 +===== Ergonomics =====
  
-====== What's new in iTop Community 2.7 ====== +==== New display for Attachment ====
- +
-===== New display for Attachment ​=====+
  
 We have reworked the attachment display, with new ordering capabilities and additional information displayed such as  We have reworked the attachment display, with new ordering capabilities and additional information displayed such as 
Line 18: Line 18:
   * what is the size and type of the file.   * what is the size and type of the file.
  
-{{:2_6_0:​release:​attachment-write-short.png?​|}}+{{:2_7_0:​release:​attachment-write-short.png?​|}}
  
 <note tip>As before, you can drag and drop a file directly on an object. In the console, it works even if not on the ''​Attachment''​ tab.</​note>​ <note tip>As before, you can drag and drop a file directly on an object. In the console, it works even if not on the ''​Attachment''​ tab.</​note>​
  
-{{:2_6_0:​release:​attachment-write-portal.png?​|}}+{{:2_7_0:​release:​attachment-write-portal.png?​|}}
  
-===== OQL: NOT IN SELECT ===== 
  
-You've dreamed about it, we made it: You can now perform in a single OQL query, what was only possible through Audit rules.+==== Portal ====
  
-  * Teams without members +  * The legacy portal ​code has been removed from iTop packageiTop portals since version 2.3, should be written based on the enhanced [[2_7_0:​customization:​portal_overview|Portal design]].
-<code SQL>  +
-SELECT Team WHERE id NOT IN (SELECT Team AS t JOIN lnkPersonToTeam AS l ON l.team_id=t.id) +
-</​code>​+
  
-  * Change Tickets without FunctionalCI linked to it +=== New behaviors ===
-  * Users not allowed on their own organization +
-  * //and many more...//+
  
-Check [[2_7_0:​oql:​oql_examples#​oqlnew_in_27|here for more examples]] ​+  * A new icon, allows to copy the url to the displayed object, to provide it to a colleague or the support agent. 
 +  * When a user portal clicks outside of a pop-up window in which he has entered some data, he is asked with a confirmation message, instead of loosing his entries. 
 +  * When the user cancels or submits a Ticket form, it now displays a refreshed version of the ongoing tickets. 
 +  * Contacts linked to a Ticket and displayed within the Ticket form are limited to the contacts that the user is allowed to see. 
 +  * External keys attributes displayed in forms are now clickable as in the Console, to open the related object in his own pop-up above the current form.
  
-===== Password Policy =====+=== New customization possibilities ​===
  
-When creating ​new user password ​or changing an existing user password, ​password policy is now applied\\ +  * Navigation rules allows ​Portal developer to specify where to go, when a Portal ​user cancels ​or submits ​form, in modal or non-modal mode.  
-The password must have at least 8 characters ​with lowercaseuppercasenumber ​and special character\\+  ​* ​The Browse Brick now supports to connect two levels not only with a 1:n relationship but also a n:n. So for exampleyou can define Customer Contracts as the first level, then Service as the second level, and Service Subcategory as the third one. 
 +  * When n:n related objects (''​AttributeLinkedSetIndirect''​) are displayed in a form, a new parameter allows to limit the displayed objects to those allowed to the user, or to display all of them (//as it was done before 2.7//). 
 +  * Number of displayed objects in a page for a Browse and a Managed Brick, can be specified.
  
-You can remove this default policyby adding this in ''​$MyModuleSettings'' ​array of the Configuration file: +More [[2_7_0:​customization:​portal_xml#​xml_version_17|details here]] 
-<​code ​php Configuration>​ + 
- '​authent-local'​ => array ( + 
- 'password_validation.pattern' => ''​+==== Console Look & Feel ==== 
- ),+ 
 +A new theme has been added which just add a top banner to the consoleso you can differentiate your iTop test instance from your production environment 
 +Test theme is called ​'test-red'. iTop comes with a ''​light-grey''​ theme by default.  
 + 
 +<​code ​PHP Configuration>​ 
 +    // This line should be added on the iTop test instance only 
 +    'backoffice_default_theme' => 'test-red',
 </​code>​ </​code>​
  
-You can set a different policy with a regex. More details: ​[[2_7_0:​feature:​password-policy]]+Those new themes also allow you to [[2_7_0:​feature:​markup|change Console colors]] with just XML knowledge.
  
-===== Product updater =====+If you are a Web developper, you can more easily customize iTop Look & Feel thanks to new attributes added to html tags within iTop pages, details [[2_7_0:​feature:​markup#​itop_markup|here]]
  
-With iTop 2.7.0 and above, iTop administrators can upgrade or downgrade their iTop, directly from iTop web interface (console), without having access to the iTop server.\\ +==== Highlighting code ====
-More [[2_7_0:​admin:​core-update|details here]]+
  
-===== Portal =====+You can insert within a description or a caselog a piece of php, xml, sql,... code and display it nicely, using syntaxe highlighting (using [[http://​qbnz.com/​highlighter/​]])
  
-  * The legacy portal code has been removed from iTop package. iTop portals since version 2.3, should be written based on the enhanced [[2_7_0:customization:​portal_overview|Portal design]].+The results will look this way:
  
-=== New behaviors ===+{{:​2_7_0:​release:​syntaxe-highlighting.png?​400|}}
  
-  * A new icon, allow to copy the url to the displayed object, to provide it to a colleague or the support agent. +----
-  * When a user portal click outside of a pop-up window in which he has entered some data, he is asked with a confirmation message, instead of loosing his entries. +
-  * When the user cancel or submit a Ticket form, it now displays a refreshed version of the ongoing tickets. +
-  * Contacts linked to a Ticket and displayed within the Ticket form are limited to the contacts that the user is allowed to see. +
-  * External keys attributes displayed in forms are now clickable as in the Console, to open the related object in his own pop-up above the current form.+
  
-=== New customization possibilities === 
  
-  * Navigation rules allow a Portal developer to specify where to go, when a Portal user cancel or submit a form, in modal or non-modal mode.  +===== Security =====
-  * The Browse Brick now supports to connect two levels not only with a 1:n relationship but also a n:n. So for example, you can define Customer Contracts as the first level, then Service as the second level, and Service Subcategory as the third one. +
-  * When n:n related objects (''​AttributeLinkedSetIndirect''​) are displayed in a form, a new parameter allow to limit the displayed objects to those allowed to the user, or to display all of them (//as it was done before 2.7//). +
-  * Number of displayed objects in a page for a Browse and a Managed Brick, can be specified.+
  
-More [[2_7_0:customization:portal_xml#​xml_version_17|details here]]+  * Security: restrict access over /env-xxx 
 + 
 +==== Password Policy ==== 
 + 
 +When creating a new user password or changing an existing user password, a password policy is now applied. \\ 
 +The password must have at least 8 characters with lowercase, uppercase, number and special character. \\ 
 + 
 +You can remove this default policy, by adding this in ''​$MyModuleSettings''​ array of the Configuration file: 
 +<code php Configuration>​ 
 + '​authent-local'​ => array ( 
 + '​password_validation.pattern'​ => '',​ 
 + ), 
 +</​code>​ 
 + 
 +More details: ​[[2_7_0:admin:password-policy]]
  
-===== Markup HTML =====+There is an API to check passwords used in Local Authentication 
 +  * Password complexity can be controlled with a Regex out of the box. An extension can add/replace it by other controls. 
 +  * ''​Password renewal''​ date was added to the UserLocal object and is automatically computed when the user or an administrator change the user password 
 +  * Password expiration can be coded in an extension, using available fields ''​Password renewal''​ and ''​Password expiration''​ flag to force a change of password.
  
-If you are a Web developper, you can now more easily customize iTop Look & Feel thanks to new attributes added to html tags within iTop pages. 
-See [[2_7_0:​feature:​markup-html|here for more]] 
  
  
-===== API authentication ​=====+==== API authentication ====
  
 If you are a developer, you can write an extension, to: If you are a developer, you can write an extension, to:
Line 106: Line 118:
 Some are new 2.7 possibilities which must be coded using the [[2_7_0:​customization:​authentication|iTop authentication API]]: Some are new 2.7 possibilities which must be coded using the [[2_7_0:​customization:​authentication|iTop authentication API]]:
   * SAML (45 parameters)   * SAML (45 parameters)
-  * HybridAuth ​(Facebook, Twitter, GitHub, Google... +27 existing applications)+  * OAuth/​openID ​(Facebook, Twitter, GitHub, Google... +27 existing applications)
   * Multiserver LDAP   * Multiserver LDAP
- 
  
 === User provisioning === === User provisioning ===
Line 124: Line 135:
   * Request additional information to complete user provisioning for eg.   * Request additional information to complete user provisioning for eg.
  
-Example of screen customization+Example of a possible ​screen customization
  
-=== Password policy ====+{{:​2_7_0:​release:​login-form-customized.png?​400|}}
  
-API to check passwords used in Local Authentication +===== Features =====
-  * Password complexity can be controlled with a Regex out of the box. +
-  * but an extension can add/replace it by other controls.  +
-  * Password expiration can be handled by an extension, using available fields ''​Password expiration''​ flag and ''​Password renewal''​ date.+
  
 +==== OQL: NOT IN SELECT ====
  
-[[2_7_0:​customization:​authentication|All details here]]+You've dreamed about it, we made it: You can now perform in a single OQL query, what was only possible through Audit rules. 
 + 
 +  * Teams without members 
 +<code SQL>  
 +SELECT Team WHERE id NOT IN (SELECT Team AS t JOIN lnkPersonToTeam AS l ON l.team_id=t.id) 
 +</​code>​ 
 + 
 +  * Change Tickets without FunctionalCI linked to it 
 +  * Users not allowed on their own organization 
 +  * //and many more...// 
 + 
 +Check [[2_7_0:​oql:​oql_examples#​oqlnew_in_27|here for more examples]]  
 + 
 +==== Notify based on context ==== 
 + 
 +Create notification that takes into account which application has activated the trigger, if it was the CRON, a REST application,​ someone in the Console, in a Portal, and so on... This information is called ​[[2_7_0:​customization:​context|contexts]]. 
 + 
 +  * If you have different Portals, you can notify different people depending on the Portal used.  
 +  * You can notify people only if a DataSynchro or a REST application has modified a particular field, but not if that modification was done in the Console or on a Portal. 
 + 
 +Check [[2_7_0:​admin:​notifications#​creating_a_trigger|details here]] 
 + 
 + 
 + 
 +==== Application upgrade ==== 
 + 
 +With iTop 2.7.0 and above, iTop administrators can upgrade or downgrade their iTop, directly from iTop web interface (console), without having access to the iTop server.\\ 
 +More [[2_7_0:​admin:​core-update|details here]] 
 + 
 +==== Log Rotation ==== 
 +With iTop 2.7.0, the log management for error.log and setup.log include a rotation system that allows to archive such file by day, week or by month. 
 + 
 +For the corresponding period the system check if the error.log and setup.log file has to rotate. If yes a copy of the file is done with the convention error.<​xxxx>​.log 
 +  * Day: error.2020-02-28.log 
 +  * Week: error.2020-week09.log 
 +  * Month: error.2020-month02.log 
 + 
 +This is as well handle by a cron task : **LogFileRotationProcess** 
 + 
 +The frequency is configure using the parameter **log_filename_builder_impl**. This parameter is set by default to monthly rotation. But it is not visible by default in the Configuration file. 
 + 
 + 
 +==== Variables in Configuration ==== 
 + 
 +The administrator can use variables within the Configuration file. When editing that file using iTop UI, those variables are now preserved when saving the file. This allows to define a Configuration file, applicable regardless of the environment in which you will deploy your iTop. This follows recommendations for deployment on modern cloud platforms: [[https://​12factor.net/​config|Best practice]]. 
 +<code PHP Configuration>​ 
 +    '​db_host'​ => $_ENV['​DB_HOST'​],​ 
 +</​code>​ 
 + 
 + 
 +We have added a parser to prevent an administrator to put active code in the Configuration file (function calls, system commands,​...) within the online editor. If you want to do this, which is not recommended,​ you must edit the file on your system and disable the online edition.
  
  
-===== MySQL8 compatibility ​=====+==== MySQL8 compatibility ====
  
 In order to be compatible with MySQL8, we had to change the way the Ticket reference is generated. ​ In order to be compatible with MySQL8, we had to change the way the Ticket reference is generated. ​
  
-===== Ticket Ref generation ​=====+==== Ticket Ref generation ====
  
-<note warning>​Because of this change, ''​Ticket id''​ is no more used to build the reference and so **can differ** from the number included in the ''​Ticket ref''</​note>​+<note warning>​Because of MySQL8 and compatibility constrains, ''​Ticket id''​ is no more used to build the reference and so **can differ** from the number included in the ''​Ticket ref''</​note>​
  
 ''​MetaModel::​GetNextKey''​ is deprecated it is now an alias to ''​ItopCounter::​IncClass''​. ''​MetaModel::​GetNextKey''​ is deprecated it is now an alias to ''​ItopCounter::​IncClass''​.
Line 173: Line 232:
 } }
 </​code>​ </​code>​
-But not doing it will still work for now. +But not doing itwill still work for now.
- +
- +
  
 +----
  
 +===== For developers =====
  
-===== Miscellaneous =====+==== Get object changes ​====
  
-  * OQL Peformances (egCountsand Transactions +You need to automate some behavior on object modification which depends on the previous value. It's now possible to get access to that previous value using \DBObject::ListChangesUpdated(within those two functions: 
-  Improve customization possibilities by providing a list of changes within ​[[2_7_0:​customization:​api:​extensions:​iapplicationobjectextension#​ondbupdate|API OnDBUpdate]]+    * [[2_7_0:​customization:​api:​extensions:​iapplicationobjectextension#​ondbupdate|\iApplicationObjectExtension::​OnDBUpdate]] 
 +    * \DBObject::​AfterUpdate
  
-  * Security: prevent browsing of /env-xxx 
  
 ==== Logs filtering ===== ==== Logs filtering =====
Line 191: Line 249:
  
 When writing logs you can now pass new parameters :  When writing logs you can now pass new parameters : 
-  * channel: enable log filtering ​(see below). Examples: channel could be an extension, a feature, a class name or a PHP namespace.+  * channel: enable log filtering ​based on an extension, a feature, a class namea PHP namespace,...
     * If not given, the default channel is the class log name (''​IssueLog'',​ ''​SetupLog'',​ ...)     * If not given, the default channel is the class log name (''​IssueLog'',​ ''​SetupLog'',​ ...)
   * context: if given, the context will be written alongside the log.   * context: if given, the context will be written alongside the log.
  
  
-The default ​behavior ​is to all log levels ​except ''​Debug''​.+The default ​log level is all of them except ''​Debug''​.
 This can be tuned using the configuration parameter ''​log_level_min'':​ it leverages the possibility to filter the logs below a given level on a per channel basis. This can be tuned using the configuration parameter ''​log_level_min'':​ it leverages the possibility to filter the logs below a given level on a per channel basis.
  
Line 223: Line 281:
   * \MetaModel::​EnumLinksClasses   * \MetaModel::​EnumLinksClasses
   * \MetaModel::​EnumLinkingClasses   * \MetaModel::​EnumLinkingClasses
 +  * \MetaModel::​GetNextKey : see [[2_7_0:​release:​2_7_whats_new#​ticket_ref_generation]]
  
 === Customer portal === === Customer portal ===
  - Tags <​submit>​ and <​cancel>​ will no longer be supported in action rules, use navigation rules instead.  - Tags <​submit>​ and <​cancel>​ will no longer be supported in action rules, use navigation rules instead.
  
2_7_0/release/2_7_whats_new.1576831274.txt.gz · Last modified: 2019/12/20 09:41 by vdumas

";