Introduction
FAS 8.2 does not introduce any breaking changes. Still, some changes can be expected in a major release. Here are the most important ones.
- The Query API got extended but remains backwards compatible.
- Space Management has been moved to the core product, although its configuration (if used) should not be altered.
- Some default system properties were changed, so it is worth evaluating the impact before upgrading every customer.
- Finally, the Business Manager has removed rarely used features to de-clutter its user interface.
View the details below.
Changes in response
JSON Response
FAS Query API still generates XML responses by default. To request a response in JSON format, the following HTTP request header should be specified:
Accept: application/json
The structure of the response remains the same. In other words, the response can be converted into the same Java object structure by using a JSON parser.
Response backwards compatibility
In FAS 8.2.0 and FAS 8.2.1, slight changes have been introduced in the response compared to FAS 8.1 (see the table below). Since FAS 8.2.2, it is possible to make a response fully backwards compatible with FAS 8.1. To achieve this, one needs to add the 'x-81-compatible' header with any value to an HTTP request.
| Path | Baseline (before FAS 8.1.16) | Format | Change | Resolution |
|---|---|---|---|---|
| Name tag for all breadcrumbs and links | The XML element has a localised value and a non-localised value in an attribute called 'value'. | JSON | Non-localised attribute is named 'non-ml'. | This change is necessary, as the "value" attribute name is ambiguous for JSON. |
| page/universes/universe/link | fh_secondid | JSON | fh-secondid | Fixed since FAS 8.2.2 if HTTP header 'x-81-compatible' is included in the request. |
| page/universes/universe/facetmap/filter | show_number_values | JSON | show-number-values | Fixed since FAS 8.2.2 if HTTP header 'x-81-compatible' is included in the request. |
| page/universes/universe/items-section/results | view_size view_set_size total_items start_index view_size_param start_index_param current_set |
JSON | view-size view-set-size total-items start-index view-size-param start-index-param current-set |
Fixed since FAS 8.2.2 if HTTP header 'x-81-compatible' is included in the request. |
| page/universes/universe/themes/theme/static-content/content/content-value | Rendered when empty | XML | Not rendered if empty | Fixed since FAS 8.2.2 if HTTP header 'x-81-compatible' is included in the request. |
fh_suppress parameter
It is now possible to exclude certain parts of a response. This feature can save a lot in response size and calculating the response. View Fredhopper Query Language for more details.
It is important to note that adding the fh_suppress parameter to a request is always a client's responsibility. FAS will never propagate this parameter to the response.
Suppressed response elements get noted in the log-args section of a response. Example:
<log-args> id=unknown&proctime=0.066&view=lister&paths=...&facets=...&items=&themes=&location=...=&itemsinselection=...&usertype=unknown&qid=4&querystring=...&suppressed=items,redirect </log-args>
The behaviour of fh_suppress=facets:url-params has changed compared to FAS 8.1.15: it was propagated into URL parameters (facets base URLs, campaign URLs and item URLs) in the former version, but it is not propagated in FAS 8.2!
Business Manager
UX/UI improvements
Along with the colour schema and the font change, there are some layout changes worth mentioning:
- Rule list pages: The Copy, Move, and Archive buttons are now under the 'More actions' button.
- Rule list pages: if a rule has too many triggers or actions, they get hidden by default to ensure a reasonable rule height. A user can click a special button to view the full list of triggers or actions.
- Rule editing page: The 'Create copy' and Archive buttons are now under the 'More actions' button.
- Rule editing page: The left side panel is now hidden when the page is opened.
- Rule editing page: The rule id, information about rule creation and publishing dates, rule editor, rule URL, and a link to view the rule's XML are available if a user clicks the 'Advanced view' link.
Cleaning up entity history
With every re-index, the system now deletes versions of a rule older than 365 days. The latest version of a rule never gets deleted, so all the rules have at least one version stored.
The system also keeps ten recent versions of the same rule, i.e., if a rule has 15 versions which are younger than one year, the five oldest will be deleted with the upgrade to 8.2 or any subsequent re-index. One corner case is when the versions are younger than 30 days because a publication restore will restore them. So, the system will keep all the rule versions that are not older than 30 days, even if there are more than ten.
Both the maximum version age (365 days by default) and versions depths (10 by default) can be adjusted via system.xml by changing
com/fedhopper/config/ShadowingCopy@max-version-age-days and com/fedhopper/config/@max-version-count, respectively.
Removed functionality
Here is the list of features removed from FAS 8.2. Please note they were disabled in FAS 8.1 by default, so this should not be a new experience for the customers.
The reason is that these features were rarely used and were cluttering both UI and codebase (we needed to support them).
- Printing rules table
- Saving a rule to favourites
- Saving a search
Extensions
Space management
Space management has been moved to the FAS core. If a customer uses this functionality, the extension is no longer needed and needs to be cleaned up:
- the extension file spacemanagement-VERSION.jar should be removed from the custom directory;
- the filter should be removed from config/ws-extensions.xml:
<filter factory-class="com.fredhopper.webservice.spacemanagement.factory.SpaceManagementFilterFactory" />
Please note that the settings file config/space-management.xml is still in use, so no action is required.
Space management works the same both for XML and JSON response formats.
Campaign filters
The following campaign filter extensions (and related jars) have been upgraded to work with FAS 8.2:
| Extension | New version |
|---|---|
| compatibility-util | 1.2 |
| attribute-select-campaign-filter | 1.3 |
| query-based-attribute-campaign-filter | 1.3 |
| white-list-id-campaign-filter | 1.0.10 |
Default Settings
Some default settings have changed values or renamed them. It might impact the system's behaviour after the upgrade. Please check the list below.
Setting: com/fredhopper/browserl/ister/ItemLister@detail-show-prev-next-links
Change: true -> false
Impact: Prev-next links for detail pages will be disabled by default.
Action: Please check if a customer uses pre/next links. If so, please enable them in system.xml before the upgrade.
Setting: com/fredhopper/browserl/ister/ItemLister@query-max-view-size
Change: 2000 -> 500
Impact: FAS will never render more than 500 items, even if fh_view_size is bigger than that number or specifies 'all items'. Please note this change does not impact campaign items.
Action: Notifying a customer about this change can be considered.
Setting: com/fredhopper/bm@visual-merchandising-enabled
Change: false -> true
Impact: Visual Merchandising is enabled by default.
Action: For customers who do not want Visual Merchandising, please disable this feature via system.xml. For all other customers, please ensure secondid attribute is visible on all types of pages.
Setting: bizusermanagement@hash-passwords
Change: false -> true
Impact: passwords of BM users for every customer upgrading to FAS 8.2 will be hashed. This change is irreversible.
Action: It is beneficial to install the LDAP plugin for every customer upgrading to FAS 8.2.
Setting: com/fredhopper/rest@security-enabled
Change: true -> false
Impact: REST API for the cloud installations of the FAS indexer works by default.
Action: None.
Setting: com/fredhopper/config/ShadowingCopy@max-publication-age-days
Change: renamed from MaxPublicationAge days for consistency reasons.
Impact: FAS 8.2 supports backwards compatibility, so the old property will still be read if it exists. FAS 8.3 will remove this compatibility mechanism.
Action: Check if a customer has the old property in its system.xml. If it is the case - rename the property before the upgrade.
Comments
0 comments
Please sign in to leave a comment.