Upgrading to 2022.2

Breaking Changes on Analytics

Previously, an image that was displayed, in a list, a search results, a zoom… was counted as an impression.

Starting with 2022.2

  • if the image is displayed on a BO dataview, BO fileview, Portal detailed view, or Portal preview popup it is counted as “viewed”

  • if the image is displayed outside of the BO or Portal, with DXM, it is counted as “impression”, whatever resolution, size, context it has been displayed.

Breaking changes on portal

In order to simplify the configuration of the portal, we have decided to change the way configuration of the build is loaded.

  • script build from package.json has been changed to rely on .wediaportalrc configuration (instead of .env files). The .wediaportalrc file can be automatically generated by running
    npm run wediaportal -- restore

  • You will also need to reconfigure the configs path:
    within the generated .wediaportalrc file, add in $environments.default[''] a new entry appConfigs which should contain the content of your previously used aliases file. Example for DCW:

    "appConfigs": { "portal": "_portal@club-wed@next", "portal@$mobile_device": "_portal@club-wed@$mobile_device", "portal@picker": "_portal@club-wed@$_picker@$club-wed-picker", "portal@picker@$mobile_device": "_portal@club-wed@$_picker@$club-wed-picker@$mobile_device", "portal@picker@office": "_portal@club-wed@$_picker@$_officepicker@$club-wed-picker@$_officepicker", "portal@picker@office@$mobile_device": "_portal@club-wed@$_picker@$_officepicker@$club-wed-picker@$_officepicker@$mobile_device", "portal@picker@office_outlook": "_portal@club-wed@$_picker@$_officepicker@$_outlookpicker@$club-wed-picker@$_officepicker@$_outlookpicker", "_postProcessors": [ ["", "mobile_device"] ] }
  • script build-plugin no longer exist. The script build will generate the plugin.

  • script build-plugin-deploy no longer exist. Instead, you can run npm run build -- -d to deploy a built plugin.

Default NAR changes

Created structures

wxmanalyticstabs

This structure needs to be created to enable the “Create your dashboard” feature in the analytics screen.

Updated structures

massimportitem

Those changes are delivered in the 2022.2 default NAR file but should not be applied before portal 2022.2.1 is delivered

massimportitem

  • phavg: removed tag asset/hashimageaverage

  • phdiff:

    • removed tag asset/hashimagedifference

    • added tag rest_api_mass_import_field

  • status: added tag rest_api_mass_import_agg

massimportjob

Structure changes

Added tags:

  • not_delete_if_used

  • rest_api_create_not_required

  • rest_api_update_not_required

Fields changes

  • activated:

    • marked inlist

    • marked editable

    • added tag rest_api_mass_import_include

resolution

  • shortname: added tag usernested

  • description: added tag usernested

  • variation: added tag usernested

  • nature: added tags rest_api_dam_data/@usernested and usernested

role

  • resolutions: added tags rest_api_dam_data/@usernested and usernested

user

  • role: added tag rest_api_dam_data/@usernested

userregistration

Added tags:

  • rest_api_dam_create

  • rest_api_include

Plugins default configuration changes

PACKAGED_DAM_Utils

As tags asset/hashimageaverage and asset/hashimagedifference were removed from massimportitem structures, you need to configure PACKAGED_DAM_Utils to handle the filling of properties. Change the PACKAGED_DAM_Utils configuration to include transformation on fields.

The group computing average hash and difference hash should be done before the group containing the duplicates finder

{ "aliases":{ ... "asyncTransformations":[ { "objectSelector":"massimportitem", "propertiesTransforms": [ { "fieldSelector":"phavg", "transformers":[ { "classAlias": "ifElse", "input": [ { "classAlias": "negate", "input": { "classAlias": "stringEquals", "init": "image", "input": { "preset": "getRootNatureCode" } } }, { "classAlias": "staticVal", "init": "0" }, { "classAlias": "resourceProperty", "init": "phavg", "input": { "preset": "getBinary" } } ] } ] }, { "fieldSelector":"phdiff", "transformers":[ { "classAlias": "ifElse", "input": [ { "classAlias": "negate", "input": { "classAlias": "stringEquals", "init": "image", "input": { "preset": "getRootNatureCode" } } }, { "classAlias": "staticVal", "init": "0" }, { "classAlias": "resourceProperty", "init": "phdiff", "input": { "preset": "getBinary" } } ] } ] } ] }, ... }] }

In order to fasten the analysis of items within mass import, we have excluded ai related analysis from the group common to all items, and added it only to #damobject:

"asyncTransformations":[ { "objectSelector":"#damobject", "propertiesTransforms": [ { "fieldSelector":"ai_caption", "transformers":[ { "classAlias":"aiAttributeFromReport", "init":"caption", "input":{ "preset":"getAiReport" } } ] }, { "fieldSelector":"ai_concepts", "transformers":[ { "classAlias":"asChild", "init":"name", "input":{ "classAlias":"aiAttributeFromReport", "init":"tags", "input":{ "preset":"getAiReport" } } } ] }, { "fieldSelector":"ai_celebrities", "transformers":[ { "classAlias":"asChild", "init":"name", "input":{ "classAlias":"aiAttributeFromReport", "init":"celebrities", "input":{ "preset":"getAiReport" } } } ] }, { "fieldSelector":"ai_landmarks", "transformers":[ { "classAlias":"asChild", "init":"name", "input":{ "classAlias":"aiAttributeFromReport", "init":"landmarks", "input":{ "preset":"getAiReport" } } } ] }, { "fieldSelector":"ai_mainfg", "transformers":[ { "classAlias":"asChild", "init":"name", "input":{ "classAlias":"aiAttributeFromReport", "init":"dominantColorForeground", "input":{ "preset":"getAiReport" } } } ] }, { "fieldSelector":"ai_mainbg", "transformers":[ { "classAlias":"asChild", "init":"name", "input":{ "classAlias":"aiAttributeFromReport", "init":"dominantColorBackground", "input":{ "preset":"getAiReport" } } } ] }, { "fieldSelector":"ai_avgage", "transformers":[ { "classAlias":"aiAttributeFromReport", "init":"avgAge", "input":{ "preset":"getAiReport" } } ] }, { "fieldSelector":"ai_nbfaces", "transformers":[ { "classAlias":"aiAttributeFromReport", "init":"nbFaces", "input":{ "preset":"getAiReport" } } ] }, { "fieldSelector":"ai_nbfaces_baby", "transformers":[ { "classAlias":"aiAttributeFromReport", "init":"nbFacesOfAge0_3", "input":{ "preset":"getAiReport" } } ] }, { "fieldSelector":"ai_nbfaces_children", "transformers":[ { "classAlias":"aiAttributeFromReport", "init":"nbFacesOfAge3_17", "input":{ "preset":"getAiReport" } } ] }, { "fieldSelector":"ai_nbfaces_adult", "transformers":[ { "classAlias":"aiAttributeFromReport", "init":"nbFacesOfAge17_60", "input":{ "preset":"getAiReport" } } ] }, { "fieldSelector":"ai_nbfaces_senior", "transformers":[ { "classAlias":"aiAttributeFromReport", "init":"nbFacesOfAge60_999", "input":{ "preset":"getAiReport" } } ] }, { "fieldSelector":"ai_faces", "transformers":[ { "classAlias":"aiAttributeFromReport", "init":"namedFaces", "input":{ "preset":"getAiReport" } } ] }, { "fieldSelector": "resorttheme", "transformers": [ { "classAlias": "prediction", "input": { "classAlias": "aiAttributeFromReport", "init": "mappers", "input": { "preset": "getAiReport" } } } ] }, { "fieldSelector": "resortthemesuggest", "transformers": [ { "classAlias": "prediction", "init": { "property": "resorttheme", "minConfidence": 0, "maxConfidence": 0.9 }, "input": { "classAlias": "aiAttributeFromReport", "init": "mappers", "input": { "preset": "getAiReport" } } } ] } ] }, // ... ]