Releases: oroinc/platform
Release Notes
List of fixed issues and improvements
- Added Enable or disable threaded view in My Emails
Release Notes
List of fixed issues and improvements
- Fixed Impossible to send email via System Email Box
- Fixed Send email autocomplete does not work
- Fixed Show the fresh entity change history
- Fixed Invalid check of target fields in add*InverseRelation
- Fixed Several data audit grids on the same page
- Fixed Process linked entity during the import, if the value is Null
- Removed unexpected order by ID from entities' grids
- Fixed Report/Segment builder add unexpected Order by to final query
2.0.0
New Oro namespace
We have regrouped all OroPlatform bundles into new Oro namespace to reduce possibility of BC break in case when platform features will be used by different applications.
Oro configuration files
In order to improve development experience we have also relocated and restructured all Oro configuration files, and provided the set of rules for naming of config files and folders.
Platform decoupling
CalendarBundle
has been moved to a separate package.
Workflow engine capabilities
In addition to user-oriented features, we have also added a few more technical capabilities to workflow engine, allowing developers to create more flexible and capable workflows.
Run workflow transitions from data views
If necessary, workflow transitions can be included into row or card actions, allowing you to run them straight from the data view without having to open the record first.
Run workflow transitions from unrelated entities
The workflow transition button can now appear anywhere in the system, not just on the view of a record of an entity tied to the workflow.
Event and time triggers for workflow transitions
Similarly to Actions, workflow transitions can now be executed at a given time of the day, or after a certain delay after an event trigger.
Pre-actions for workflow transitions
Similarly to Operation definition, the workflow transition definition can now include a set of pre-actions that will prepare data before transition execution.
Disable or override operations by workflow
This feature allows workflow developer to override standard CRUD operations with workflow transitions, or simply hide them from the user if the workflow is active.
Full list of actions & conditions for easier debug
Console commands such as debug:router
can now provide a list of all actions & conditions with their comprehensive description: purpose, arguments (required/optional), additional information, etc.
MessageQueue engine
In order to keep up with the growing demands for multiple jobs being executed in parallel, we decided to switch our job queue engine from JMS JobQueue to Rabbit MessageQueue. This engine allows far better scalability and improves performance of job execution & parallelization, allowing Oro applications to run smoothly even with the heavy background load.
All existing jobs in both OroPlatform and OroCRM have been moved to MessageQueue already.
Toggle features
Developers can now define features—a set of entities, menu items, workflows, actions, dashboard widgets and other objects that share the common functional purpose. Features can then be toggled on and off by system administrators, greatly simplifying and improving the experience of application configuration.
Features can be nested, and also can be dependent on each other.
Web API
We continue to develop and expand capabilities of our new Web API introduced in the previous release.
Manipulate extended associations via API
Extended associations, or activity contexts, can now be managed via API. You can add records to context of an email or calendar event; get the list of contexts of a recorded call; or strip a task from all its contexts.
This works for both many-to-one and many-to-many associations.
Create related records along with the primary record
POST
method can now create records related to the entity record that is actually being POSTed. It is useful when a relation is mandatory, but the necessary record doesn’t exist yet—such as when you want to create a new Opportunity with a new Account. It is also useful if you want to add entity attributes that are stored as related entities, such as create a Contact record with multiple addresses in a single API call.
Phones and emails are treated as attributes instead of relations
Emails and phones will be exposed in API as entity attributes (which they effectively are) instead of relations. This should simplify most API references to them and make the calls clearer.
Autogenerated API documentation
You will now receive full documentation on REST and SOAP API resources for all Oro applications so you will be able to discover available integration points and their parameters.
Other features and improvements
Application cache clear and warmup performance
We greatly improved performance of cache:clear
command and application cache warmup, so it now takes seconds in most of the cases.
Search index query can return indexed data
Indexed data is now returned from search engine in addition to SearchBundle/Query/Result/Item
objects, so you don’t need to perform additional DB request to retrieve it.
Caching of built layouts
Layouts that are already built are cached to increase performance. The cache key depends on the layout context and the last modification date of all layout update files.
Recursive import of YML configuration files
YML config files can now be imported using the standard Symfony notation for imports in yaml. An imported file can recursively trigger import of another file, which also enables import of a single config within multiple files.
Advanced application security
Password strength configuration
This feature allows administrators to impose mandatory complexity demands to users’ passwords. It is possible to configure the following restrictions:
- Minimum length (8 characters by default)
- Require password to contain a number
- Require a lowercase letter
- Require an uppercase letter
- Require a special character
User statuses
As part of this feature we’ve introduced two sets of user statuses to better reflect the current state of the user’s account.
Status for state of the user account. This is a system status that determines general validity of the user’s account and usually corresponds to state of user’s employment within an organization. It has two options: Enabled (used to be Active) and Disabled (formerly Inactive) and can be manipulated directly at User edit page or via Enable User/Disable User actions.
Authentication status provides information of the validity and applicability of user’s login credentials. In Community Edition it has two options: Active and Password reset, and in Enterprise Edition a third Locked option is added. This status cannot be manipulated directly and is changed as a result of administrator’s or user’s own actions, such as resetting the password or getting locked after unsuccessful logins.
Impersonate a user
This feature allows external developers or administrators to log into system under someone else’s account using oro:user:impersonate
console command. Impersonation is the best way to examine the system behavior when you’re trying to reproduce an issue reported by the user.
All changes made by impersonated users are marked accordingly in the Data audit, allowing you to clearly identify possible abuse of this feature.
Workflow capabilities
Workflows got a major revision in this version of Oro Platform.
Multiple active workflows for an entity
We have lifted one of the most basic restrictions for our workflows, allowing you to have multiple active workflows for the same entity at the same time. The use cases for multiple workflows are endless: alternative sales workflows that the sales representative can choose when they decide how to deal with an opportunity; parallel sales follow-up and order fulfillment workflows for a placed order; you name it.
New design for workflow widget at record views
As it is now possible to have multiple active workflows on the same record, we had to redesign the workflow widget, so it can display states and let you run transitions of multiple workflows at once.
Mark workflows as exclusive
Two or more workflows can be marked as mutually exclusive so once one workflow from the exclusive group is started, others can no longer be run. This feature serves the use case of multiple alternative flows, e.g. sales flows: You have many to choose from, but once you’ve made your choice, you no longer need the alternatives.
Please note: so far, this feature can only be utilized by developers.
Manage user permissions to run individual workflows
Multiple active workflows for different tasks is a great function, but it brings additional complexity which many of the system users won’t really need. For example, if you have a sales follow-up flow and a support flow for your Magento order, chances are, the support representative don’t even need to know about the sales rep’s work, and the sales rep could be aware about the state of problem resolution, but should not intervene into it.
In order to fine-tune user’s access to workflows we have added workflow permissions to Role management interface, allowing you to configure:
- Visibility of the entire workflow and its steps/current step
- Ability to run workflow transactions
- Ability to run every individual workflow transaction
Workflow translations
All workflow labels are now translatable to other languages similarly to other system interface, allowing you to create even better localizations for your users from different countries.Other workflow engine capabilities
Please check OroPlatform release notes to learn more, as these capabilities are more technical and developer-oriented, and cannot be managed from the UI at the moment.Translations and localizations
This feature allows system administrators to manage Oro Platform translations to different languages from within the system interfaces.Define localizations
Define custom localizations which can then be applied to Oro Platform in the system, organization, or even personal configuration. The localization is a combination of language and formatting rules (locale).Upload your own language packs
Language management has been moved from system configuration to separate interface under System > Localization > Languages....
Release Notes
List of fixed issues and improvements
- Fixed Incorrect internationalization setup of moment.js
- Fixed comments widget is not loaded on the Activity widget when Activity widget loaded for the first time
- Fixed After click on Filter Results popup with filter won't closed on mobile devices
- Fixed Incorrect oro:translation:pack work with dump option
- Changed log level to Warning for forbidden errors
- Fixed Filter with select breaks grid page loading
- Fixed "HAS ROLE" column should be excluded from Users grid related to the Role entity
- Fixed There are all users displayed under particular Role in view mode
- Fixed incorrect deletion of the Excepted Events from Event Grid in OroCRM by Mass Action
- Removed unexpected Delete mass action from Integration
- Fixed Datagrid filters hidden after filter reset (with pagination disabled)
- Improved My Emails page performance
2.0.0 RC1
New Oro namespace
We have regrouped all OroPlatform bundles into new Oro namespace to reduce possibility of BC break in case when platform features will be used by different applications.
Oro configuration files
In order to improve development experience we have also relocated and restructured all Oro configuration files, and provided the set of rules for naming of config files and folders.
Platform decoupling
CalendarBundle
has been moved to a separate package.
Workflow engine capabilities
In addition to user-oriented features, we have also added a few more technical capabilities to workflow engine, allowing developers to create more flexible and capable workflows.
Run workflow transitions from data views
If necessary, workflow transitions can be included into row or card actions, allowing you to run them straight from the data view without having to open the record first.
Run workflow transitions from unrelated entities
The workflow transition button can now appear anywhere in the system, not just on the view of a record of an entity tied to the workflow.
Event and time triggers for workflow transitions
Similarly to Actions, workflow transitions can now be executed at a given time of the day, or after a certain delay after an event trigger.
Pre-actions for workflow transitions
Similarly to Operation definition, the workflow transition definition can now include a set of pre-actions that will prepare data before transition execution.
Disable or override operations by workflow
This feature allows workflow developer to override standard CRUD operations with workflow transitions, or simply hide them from the user if the workflow is active.
Full list of actions & conditions for easier debug
Console commands such as debug:router
can now provide a list of all actions & conditions with their comprehensive description: purpose, arguments (required/optional), additional information, etc.
MessageQueue engine
In order to keep up with the growing demands for multiple jobs being executed in parallel, we decided to switch our job queue engine from JMS JobQueue to Rabbit MessageQueue. This engine allows far better scalability and improves performance of job execution & parallelization, allowing Oro applications to run smoothly even with the heavy background load.
All existing jobs in both OroPlatform and OroCRM have been moved to MessageQueue already.
Toggle features
Developers can now define features—a set of entities, menu items, workflows, actions, dashboard widgets and other objects that share the common functional purpose. Features can then be toggled on and off by system administrators, greatly simplifying and improving the experience of application configuration.
Features can be nested, and also can be dependent on each other.
Web API
We continue to develop and expand capabilities of our new Web API introduced in the previous release.
Manipulate extended associations via API
Extended associations, or activity contexts, can now be managed via API. You can add records to context of an email or calendar event; get the list of contexts of a recorded call; or strip a task from all its contexts.
This works for both many-to-one and many-to-many associations.
Create related records along with the primary record
POST
method can now create records related to the entity record that is actually being POSTed. It is useful when a relation is mandatory, but the necessary record doesn’t exist yet—such as when you want to create a new Opportunity with a new Account. It is also useful if you want to add entity attributes that are stored as related entities, such as create a Contact record with multiple addresses in a single API call.
Phones and emails are treated as attributes instead of relations
Emails and phones will be exposed in API as entity attributes (which they effectively are) instead of relations. This should simplify most API references to them and make the calls clearer.
Autogenerated API documentation
You will now receive full documentation on REST and SOAP API resources for all Oro applications so you will be able to discover available integration points and their parameters.
Other features and improvements
Application cache clear and warmup performance
We greatly improved performance of cache:clear
command and application cache warmup, so it now takes seconds in most of the cases.
Search index query can return indexed data
Indexed data is now returned from search engine in addition to SearchBundle/Query/Result/Item
objects, so you don’t need to perform additional DB request to retrieve it.
Caching of built layouts
Layouts that are already built are cached to increase performance. The cache key depends on the layout context and the last modification date of all layout update files.
Recursive import of YML configuration files
YML config files can now be imported using the standard Symfony notation for imports in yaml. An imported file can recursively trigger import of another file, which also enables import of a single config within multiple files.
We would like to thank our community members Fabio Piro (@dewos) and Sufijen Bani (@sbani) for their contribution of this feature to OroPlatform.
Direct @service qb support in datagrids configuration
This is another feature provided by Fabio Piro (@dewos). Hooray to the Oro Community!
Release Notes
List of fixed issues and improvements
- Added command to update email contact / user / customer associations
- Added SwiftMailer SMTP transport error logging
- Fixed Query Exception during rendering of a Template
- Fixed incorrect showing of Emails in Activities tree
Release Notes
List of fixed issues and improvements
- Added command to associate email - contacts / users / customers
- Fixed errors from tracking data loading from log files
- Fixed Email attachment without email body is not loaded
- Fixed Incorrect showing of Emails in Activities tree
- Fixed fatal error when sending email without sync folders
Release Notes
List of improvements and fixes
- Fixed slow Recent Emails dashboard widget
- Added ability to configure imap socket timeout
- Fixed 'Created At' data grid filter doesn't work properly under German and Danish locale
- Fixed impossible to upload file during sales flow process
- Fixed incorrect signature display while replying in email thread
- Fixed impossible to view emails in Activities Tree
- Fixed incorrect length of encrypted email password column in database
- Fixed slow My Email grid
- Fixed incorrect CSV report export if there are duplicated columns Labels
Release Notes
List of improvements and fixes
- Fixed performance issue within autocomplete functionality
- Moved oro:cron output to verbosity level
- Fixed fatal error when sending email without sync folders
- Fixed Embedded forms VS 3rd party website cookies and data
- Added truncate email body to SQL instead of do it on php side
- Fixed Email XSS vulnerabilities
- Optimized email body cleanup process
Release Notes
List of fixes and improvements
- Fixed error on 'My email' page for specific user
- Added common progress bar for search reindex command
- Fixed embedded forms VS 3rd party website cookies and data
- Fixed XSS vulnerability in the enum grid column
- Optimized email body cleanup process