<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://sugarclub.sugarai.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Sugar 12.2 (Q4 2022) Customization Guide</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/751/sugar-12-2-q4-2022-customization-guide</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Sugar 12.2 (Q4 2022) Customization Guide</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/751/sugar-12-2-q4-2022-customization-guide</link><pubDate>Mon, 10 Jul 2023 12:54:28 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:6c63d38e-2fa8-47dc-b85c-1278d17ec0a6</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/751/sugar-12-2-q4-2022-customization-guide#comments</comments><description>Current Revision posted to Dev Tutorials by Rafael Fernandes on 7/10/2023 12:54:28 PM&lt;br /&gt;
&lt;p&gt;The purpose of this document is to provide insight to Sugar Developers for upgrading custom Sugar code, extensions, and integrations to the Sugar 12.2 (Q4 2022) release. This guide focuses on changes in Sugar 12.2 (Q4 2022) that could cause an immediate impact on Sugar customizations and integrations built for earlier Sugar versions.&lt;/p&gt;
&lt;p&gt;Please check out the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="/dev-club/m/event-recaps/2170"&gt;Q4 2022 Developer Webinar recording&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;for more developer highlights.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;For Admin and End User release notes, please visit the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Release_Notes/12.2.0_Release_Notes/"&gt;Sugar 12.2.0 Release Notes&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ff80k9i20"&gt;User Experience Updates&lt;/h2&gt;
&lt;h3 id="mcetoc_1gb30ctl10"&gt;&lt;strong&gt;Extend Focus Drawer functionality to Report Drill Down results&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Added Focus Drawers to Reports. When a user drills into a report&amp;#39;s chart, sidecar links will display a focus drawer icon to the right of these. When a focus drawer (side drawer) is open from a top-bottom drawer, the focus drawer will stack on top of the top-bottom drawer. Closing a focus drawer opened from a top-bottom drawer lands the user in the initial top-bottom drawer. Focus drawer will follow regular bread-crumbing behavior. Clicking on a link from a top-bottom or focus drawer navigates the user to the link and kills all drawers.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl11"&gt;&lt;strong&gt;Introducing Metrics Tab to Consoles&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;In this release&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;span class="TextRun SCXW246294291 BCX0" lang="EN"&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;we are introducing a new feature called &amp;ldquo;Metrics&amp;rdquo; in this release&amp;nbsp;enabling Metr&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;ic ribbons for consoles that provide a holistic view of the metrics that matter the most.&amp;nbsp;&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;Each metric ribbon contains a number of Metric tabs each providing snapshot information that focuses on the points where the agents are regularly monitoring and taking action.&amp;nbsp;&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;The new metric ribbon is enabled for both Service Console as well as Renewal Console.&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;This would completely change the way a Service or a Sales agent works in Sugar consoles.&lt;/span&gt;&lt;/span&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;This new Module provides a list view with all the available metrics where you can manage its settings, filters and define the layout, admins can also delete a metric if they need to.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;We are also releasing some out-of-the-box metric tabs as follows:&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;User can see the following OOTB Metric tabs for Cases for Service Console&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Cases&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria : All Cases assigned to me and not Closed/Rejected/Duplicate ( Current filter criteria for the Cases tab for Service Console)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Team&amp;rsquo;s Cases&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria: All Cases assigned to me and anyone in my team and not Closed/Rejected/Duplicate&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;All Unassigned&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria: All Unassigned Cases and not Closed/Rejected/Duplicate&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;All Escalated&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria: All Escalated Cases assigned to me and anyone in my team and not Closed/Rejected/Duplicate&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;User can see the following OOTB Metric tabs for Accounts for Renewal Console&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Accounts&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria : Current filter criteria for the Accounts tab for Renewal Console)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;User can see the following OOTB Metric tabs for Opportunities tab for Renewal Console&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Opportunities&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria : Current filter criteria for the Opportunities tab for Renewal Console)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: On upgrade, If no customization is done only OOTB metrics would be available after upgrade, if admins have customized,&amp;nbsp;&lt;span&gt;new customized metric tab&amp;nbsp;will be the default one and should be shown as first tab.&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl12"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;Align&amp;nbsp;Forecasting metrics UX&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;We are modifying forecasting KPI/metrics user experience with the new Metrics modules which is a change in the visualization of the Opportunity count in the metric boxes. These will now be displayed as a gray badge to match Serve views..&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl13"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;Embed report results directly in email body&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;In this release, we are embedding report results for scheduled reports directly in the email body&amp;nbsp;rather than as attachments.&lt;/p&gt;
&lt;p&gt;The report chart and data table are included directly in the email body. Can be scrolled. No pagination. Very large reports (~200 rows) are sent only in attachments.&lt;/p&gt;
&lt;h2 id="mcetoc_1ff80k9i33"&gt;Sugar REST API updates&lt;/h2&gt;
&lt;p&gt;This Sugar release introduces REST v11_18.&lt;/p&gt;
&lt;h3&gt;Nearby search with distance filter Rest API endpoints&lt;/h3&gt;
&lt;p&gt;Added a new endpoint which returns geocoded records based on radius, latitude and longitude&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;GET &amp;lt;sugar instance&amp;gt;/rest/v11_18/maps/nearby&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;h2 id="mcetoc_1ftl03hrg6"&gt;&lt;span style="font-size:inherit;"&gt;PHP Library Upgrades&lt;/span&gt;&lt;/h2&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Symfony&amp;nbsp;Components&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://symfony.com/"&gt;Symfony&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is a leading PHP framework&amp;nbsp;that provides a set of common components. For example, the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://symfony.com/doc/current/components/security.html"&gt;Symfony Security Component&lt;/a&gt;&amp;nbsp;is used&amp;nbsp;by Sugar for&amp;nbsp;input validation. We&amp;#39;ve updated these libraries to latest&amp;nbsp;stable version&amp;nbsp;and removed some transitive dependencies.&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;&amp;quot;symfony/cache&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/console&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/event-dispatcher&amp;quot;: &amp;quot;^v5.4.9&amp;quot;&lt;br /&gt;&amp;quot;symfony/expression-language&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/intl&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/polyfill-intl-idn&amp;quot;: &amp;quot;^v1.26.0&amp;quot;&lt;br /&gt;&amp;quot;symfony/security-core&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/security-csrf&amp;quot;: &amp;quot;^v5.4.9&amp;quot;&lt;br /&gt;&amp;quot;symfony/validator&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/process&amp;quot;: &amp;quot;^v5.4.8&amp;quot;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 id="mcetoc_1gb30ctl15"&gt;&lt;strong&gt;Smarty (smarty/smarty)&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Sugar utilizes a&amp;nbsp;PHP library called&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.smarty.net/"&gt;Smarty&lt;/a&gt;&lt;span&gt;&amp;nbsp;In this release, w&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;e are bumping up Smarty&amp;nbsp;to v3.1.45. This is a minor upgrade&amp;nbsp;with no impact to Sugar code.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ff80k9i33"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;JS Library Upgrades&lt;/h2&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;jQuery UI&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;In this release, we are upgrading&amp;nbsp;jQuery UI to v1.13. jQuery team has put together an&amp;nbsp;&lt;a href="https://jqueryui.com/upgrade-guide/1.13/"&gt;upgrade guide&lt;/a&gt;&amp;nbsp;per component as a reference.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;In case you use any of the affected components, please make sure to review and upgrade accordingly.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl17"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;SugarCRM Ventana&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://github.com/sugarcrm/ventana"&gt;Ventana&lt;/a&gt;&amp;nbsp;is being bumped up to 1.1.13 and it has been upgraded in Sugar 12.2 as well.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id="mcetoc_1ff80k9i33"&gt;&lt;code&gt;&lt;/code&gt;&lt;/h3&gt;
&lt;h2 id="mcetoc_1ftl03hrg6"&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;Supported Platforms Update&lt;/h2&gt;
&lt;h3 id="mcetoc_1f7c87abe2"&gt;DocMerge Deployed on Supported Regions&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;DocMerge services have been deployed in EU, APAC, and CAC regions for better performance and compliance.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ff80k9i33"&gt;Configurability&amp;nbsp;updates&lt;/h2&gt;
&lt;h3 id="mcetoc_1f7c87abe2"&gt;Sugar&amp;nbsp;API Platforms&lt;/h3&gt;
&lt;p&gt;Developers use the platform parameter to distinguish their custom platform from other clients when using the Sugar API.&lt;/p&gt;
&lt;p&gt;We have added&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;sugarlambda&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;to the core platform APIs.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Sugar Config Settings&lt;/h3&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Setting Name&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Default&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Override Example&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;symfony_deprecation_log&lt;/td&gt;
&lt;td&gt;false&lt;/td&gt;
&lt;td&gt;&lt;span&gt;$sugar_config['symfony_deprecation_log'] = true;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;enable logging of deprecation warnings, triggered by Symfony components&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="mcetoc_1f77psegvb"&gt;Data Changes&lt;/h2&gt;
&lt;h3 id="mcetoc_1gb30ctl1a"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Opportunities Module&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;We are adding the following fields to&amp;nbsp;the Opportunities module&amp;nbsp;for faster and better integrate with Sugar Predict.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_opp_conv_score_absolute labeled &amp;ldquo;Prediction Value&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_opp_conv_bin_accuracy labeled &amp;ldquo;Prediction Bin Accuracy&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_opp_conv_multiplier labeled &amp;ldquo;Prediction Multiplier&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mcetoc_1gb30ctl1b"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Leads&amp;nbsp;Module&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;We are adding the following fields to&amp;nbsp;the&amp;nbsp;Leads module&amp;nbsp;for faster and better integrate with Sugar Predict.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_conv_score_absolute labeled &amp;ldquo;Prediction Value&amp;rdquo;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_conv_bin_accuracy labeled &amp;ldquo;Prediction Bin Accuracy&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_conv_multiplier labeled &amp;ldquo;Prediction Multiplier&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_icp_fit_score_absolute labeled &amp;ldquo;ICP Value&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_icp_fit_bin_accuracy labeled &amp;ldquo;ICP Bin Accuracy&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_icp_fit_multiplier labeled &amp;ldquo;ICP Multiplier&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1f77psegvl"&gt;Platform Updates&lt;/h2&gt;
&lt;h3 id="mcetoc_1gb30ctl1c"&gt;&lt;strong&gt;Improvements to&amp;nbsp;ExternalResourceClient&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;We heard you and our ExternalResourceClient now accepts IPs on HTTP (non-secure) URLs,&amp;nbsp;&lt;/span&gt;e.g http://999.999.999.999/api/get/1&amp;nbsp;now is allowed as before it would throw an exception.&lt;/li&gt;
&lt;li&gt;We are also improving ExternalResourceClient to be compatible with PSRs 7,17,18 by adding&lt;span&gt;&amp;nbsp;a new method&amp;nbsp;&lt;/span&gt;&lt;code class="code css-9z42f9"&gt;sendRequest()&lt;/code&gt;&lt;span&gt;&amp;nbsp;to make our class compatible with PSR standards.&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;When using&amp;nbsp;&lt;code&gt;sendRequest()&amp;nbsp;&lt;/code&gt;in the output should be values of&amp;nbsp;&lt;/span&gt;&lt;code class="code css-9z42f9"&gt;&amp;quot;X-Amzn-Trace-Id&amp;quot;&lt;/code&gt;&lt;span&gt;&amp;nbsp;key (they are unique for each request/response).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;We are improving DNS lookups&amp;nbsp;over HTTPS (a.k.a.&amp;nbsp;&lt;a href="https://groups.google.com/forum/#!topic/public-dns-announce/p2iYauFuzIg"&gt;DoH&lt;/a&gt;), it won&amp;#39;t&amp;nbsp;impact you or your code, it&amp;#39;s an under-the-hood improvement.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Few bugs were fixed related to multiple redirects and URL changes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;span&gt;curl_*, socket_*, and stream_* functions checks enabled&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;As announced in the previous release, 12.2 enables Sugar&amp;#39;s package scanner to block those functions on MLP uploads.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;As a reminder, t&lt;/span&gt;he following plan has been put in place to ease the transition:&lt;/p&gt;
&lt;div class="content"&gt;
&lt;div class="code-block sc-ezYOhE gBYPJJ"&gt;
&lt;ul class="ak-ul"&gt;
&lt;li&gt;
&lt;p&gt;For the Sugar_12.1.0 release, the config parameter (&lt;code&gt;&lt;span&gt;enableEnhancedModuleChecks&lt;/span&gt;&lt;/code&gt;) will be disabled by&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;default&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;allowing MLPs with HTTP clients like curl, socket, and streams to be updated/installed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For Sugar_12.2.0 and Sugar_12.3.0 we will&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;enable&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;the config so that MLPs with the above functions will be blocked however Cloud Support has the ability to turn this off.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For Sugar_13.0.0 we will be removing the config, by this time we will have given everyone 4 releases times as per our deprecation policy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This client should be backported to all supported sugar versions.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;span&gt;DocMerge Performance Improvement&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;In this release, we have improved the performance of DocMerge functionality by introducing caching in different layers while dealing with metadata and merging.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;span&gt;Deprecations warnings to its own log file&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;Developers may want to add also the following to collect deprecation warnings into a separate deprecations.log file,&amp;nbsp;&lt;span&gt;keeping in sugarcrm.log only important messages&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;$sugar_config[&amp;#39;logger&amp;#39;][&amp;#39;channels&amp;#39;][&amp;#39;deprecation&amp;#39;] = [
&amp;#39;level&amp;#39; =&amp;gt; &amp;#39;warning&amp;#39;,
&amp;#39;handlers&amp;#39; =&amp;gt; [
    [
    &amp;#39;type&amp;#39; =&amp;gt; &amp;#39;File&amp;#39;,
    &amp;#39;name&amp;#39; =&amp;gt; &amp;#39;deprecations&amp;#39;,
    ],
  ],
];&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl1g"&gt;Restricting Module Loader for Sugar Essentials&lt;/h3&gt;
&lt;p&gt;Our Sugar Essentials customers will no longer be able to install nor uninstall packages using Module Loader, they can, however, delete uninstalled packages through the UI.&lt;/p&gt;
&lt;p&gt;UI will present an explanatory text in the UI for those types of customers.&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl1g"&gt;Uploads are encoded jow&lt;/h3&gt;
&lt;p&gt;In this release, we are improving the security of our file uploads (any upload). If there are any PHP type of comand in the file being uploaded, we will encode that to prevent executing while storing at rest and will decode when it&amp;#39;s being read it back.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;code&gt;&lt;/code&gt;&lt;/h3&gt;
&lt;h2 id="mcetoc_1f77psegv7"&gt;Removed&amp;nbsp;Functions /&amp;nbsp;Libraries&lt;/h2&gt;
&lt;h3 id="mcetoc_1gb30ctl1d"&gt;&lt;span&gt;&lt;/span&gt;&lt;strong&gt;PHP stable sort&amp;nbsp;removed&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/vanderlee/PHP-stable-sort-functions"&gt;PHP stable sort functions&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;library (&lt;code&gt;vanderlee/php-stable-sort-functions&lt;/code&gt;) has been removed in Sugar 12.2.&amp;nbsp;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl14"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Symfony&amp;nbsp;Components&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://symfony.com/"&gt;Symfony&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is a leading PHP framework&amp;nbsp;that provides a set of common components, the following components were removed in Sugar 12.2.&lt;/p&gt;
&lt;pre&gt;symfony/translation&lt;br /&gt;&lt;br /&gt;symfony/http-kernel&lt;/pre&gt;
&lt;h3 id="mcetoc_1gb30ctl1e"&gt;&lt;strong&gt;Multiple Dead code removed from Sugar Core&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;As part of our ongoing efforts to keep Sugar clean, fast, reliable, and secure, we are removing dead code from Sugar Core.&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl1f"&gt;&lt;strong&gt;Remove Opens Sans as font&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;We&amp;#39;ve added a new font, Inter as our default and only font. Now it&amp;#39;s time to clean up and remove Open Sans font-family in the core platform.&lt;/p&gt;
&lt;h2 id="mcetoc_1gb30ctl1g"&gt;SugarCloud Insights&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;We are making our SugarCloud insights downloads much better, more reliable and more secure in this release. We are introducing a new API for downloads and deprecating the current API.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Introducing new&amp;nbsp;Downloading Backups API&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;In this release, we are introducing a new Rest API for SugarCloud Insights backups for our SugarCloud customers.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This API follows our Sugar API standards as you need an&amp;nbsp;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Integration/Web_Services/REST_API/#Authentication"&gt;OAuth token&lt;/a&gt;&amp;nbsp;to retrieve data from.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Backups API requires those headers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sugar OAuth-Token provided by your instance&amp;#39;s API OAuth-token call.&lt;/li&gt;
&lt;li&gt;Your Sugar instance&amp;#39;s FQDN, for example: mysugarinstance.sugarondemand.com&lt;/li&gt;
&lt;li&gt;API: this is your&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Documentation/SugarCloud_Services/SugarCloud_Insights/SugarCloud_Insights_Guide/"&gt;SugarCloud Insights URL&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;that can be retrieved when you&amp;#39;re logged in to SCI, for now, it should be one of those
&lt;ul&gt;
&lt;li&gt;Non IDM enabled customers: sugarcloud-insights.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;usw2 customers: sugarcloud-insights-usw2.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;cac1 customers: sugarcloud-insights-cac1.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;apse1 customers: sugarcloud-insights-apse1.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;apse2 customers: sugarcloud-insights-apse2.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;euc1 customers: sugarcloud-insights-euc1.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;euw2 customers: sugarcloud-insights-euw2.service.sugarcrm.com&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;curl -X POST 
  -H Cache-Control:no-cache 
  -H &amp;quot;Content-Type: application/json&amp;quot; 
  -H OAuth-Token: &amp;lt;OAUTH_TOKEN&amp;gt;
  -H X-Sugar-FQDN: &amp;lt;FQDN&amp;gt; 
  https:/&amp;lt;site_url&amp;gt;/api/v1/backups&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Payload return:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="json"&gt;{
  &amp;quot;backups&amp;quot;:[{
     &amp;quot;created_at&amp;quot;:&amp;quot;2022-08-03T07:03:01Z&amp;quot;,
     &amp;quot;expires_at&amp;quot;:&amp;quot;2022-09-02T07:03:01Z&amp;quot;,
     &amp;quot;download_url&amp;quot;:&amp;quot;https://your_backup_archive&amp;quot;,
     &amp;quot;exclude_uploads&amp;quot;:false,
     &amp;quot;compressed_size&amp;quot;:3838288,
     &amp;quot;uncompressed_size&amp;quot;:3845144,
     &amp;quot;md5_checksum&amp;quot;:&amp;quot;25d90b5fb93605d86da0862ec350610f&amp;quot;
  }]
}&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Note&lt;/strong&gt;: The &amp;quot;download_url&amp;quot; link&amp;nbsp;is a temporary URL that will become invalid after a period of time, if that happens, you must make a new request to the API.&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Deprecating Downloading Backups From the Backups Module&lt;/h3&gt;
&lt;p style="font-weight:400;"&gt;We are deprecating the Ops Module Filter API in December 2022, which means it will still work as it is currently (in addition to the new REST API endpoint offered in 12.2).&amp;nbsp;Customizations&amp;nbsp;using the old endpoint should be updated to leverage the new API added in 12.2.&lt;/p&gt;
&lt;p style="font-weight:400;"&gt;Customers should still be able to use the legacy Backups module/API until December 2022. Once the&amp;nbsp;&lt;span&gt;Ops Module filter API&lt;/span&gt; has been removed, downloads can only be retrieved via the new API endpoint so we encourage you to upgrade all customizations or integrations to use the new API before the end of 2022.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Uploads Folder not Included by Default&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Customers have requested to remove uploads_folder from backups due to the size of their backups.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;We heard you and now uploads is not enabled by default and will be excluded on your backups moving forward, reducing the size of your backups focusing only on what matters.&lt;/span&gt;&lt;/p&gt;
&lt;div class="code-block sc-ezYOhE gBYPJJ"&gt;
&lt;p&gt;&lt;span class="prismjs css-1xfvm4v"&gt;&lt;code class="language-php"&gt;&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Sugar 12.2, Sugar Q4 2022&lt;/div&gt;
</description></item><item><title>Sugar 12.2 (Q4 2022) Customization Guide</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/751/sugar-12-2-q4-2022-customization-guide/revision/5</link><pubDate>Thu, 23 Mar 2023 14:10:21 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:6c63d38e-2fa8-47dc-b85c-1278d17ec0a6</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/751/sugar-12-2-q4-2022-customization-guide#comments</comments><description>Revision 5 posted to Dev Tutorials by Rafael Fernandes on 3/23/2023 2:10:21 PM&lt;br /&gt;
&lt;p&gt;The purpose of this document is to provide insight to Sugar Developers for upgrading custom Sugar code, extensions, and integrations to the Sugar 12.2 (Q4 2022) release. This guide focuses on changes in Sugar 12.2 (Q4 2022) that could cause an immediate impact on Sugar customizations and integrations built for earlier Sugar versions.&lt;/p&gt;
&lt;p&gt;Please check out the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="/dev-club/m/event-recaps/2170"&gt;Q4 2022 Developer Webinar recording&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;for more developer highlights.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;For Admin and End User release notes, please visit the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Release_Notes/12.2.0_Release_Notes/"&gt;Sugar 12.2.0 Release Notes&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ff80k9i20"&gt;User Experience Updates&lt;/h2&gt;
&lt;h3 id="mcetoc_1gb30ctl10"&gt;&lt;strong&gt;Extend Focus Drawer functionality to Report Drill Down results&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Added Focus Drawers to Reports. When a user drills into a report&amp;#39;s chart, sidecar links will display a focus drawer icon to the right of these. When a focus drawer (side drawer) is open from a top-bottom drawer, the focus drawer will stack on top of the top-bottom drawer. Closing a focus drawer opened from a top-bottom drawer lands the user in the initial top-bottom drawer. Focus drawer will follow regular bread-crumbing behavior. Clicking on a link from a top-bottom or focus drawer navigates the user to the link and kills all drawers.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl11"&gt;&lt;strong&gt;Introducing Metrics Tab to Consoles&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;In this release&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;span class="TextRun SCXW246294291 BCX0" lang="EN"&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;we are introducing a new feature called &amp;ldquo;Metrics&amp;rdquo; in this release&amp;nbsp;enabling Metr&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;ic ribbons for consoles that provide a holistic view of the metrics that matter the most.&amp;nbsp;&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;Each metric ribbon contains a number of Metric tabs each providing snapshot information that focuses on the points where the agents are regularly monitoring and taking action.&amp;nbsp;&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;The new metric ribbon is enabled for both Service Console as well as Renewal Console.&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;This would completely change the way a Service or a Sales agent works in Sugar consoles.&lt;/span&gt;&lt;/span&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;This new Module provides a list view with all the available metrics where you can manage its settings, filters and define the layout, admins can also delete a metric if they need to.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;We are also releasing some out-of-the-box metric tabs as follows:&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;User can see the following OOTB Metric tabs for Cases for Service Console&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Cases&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria : All Cases assigned to me and not Closed/Rejected/Duplicate ( Current filter criteria for the Cases tab for Service Console)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Team&amp;rsquo;s Cases&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria: All Cases assigned to me and anyone in my team and not Closed/Rejected/Duplicate&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;All Unassigned&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria: All Unassigned Cases and not Closed/Rejected/Duplicate&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;All Escalated&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria: All Escalated Cases assigned to me and anyone in my team and not Closed/Rejected/Duplicate&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;User can see the following OOTB Metric tabs for Accounts for Renewal Console&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Accounts&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria : Current filter criteria for the Accounts tab for Renewal Console)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;User can see the following OOTB Metric tabs for Opportunities tab for Renewal Console&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Opportunities&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria : Current filter criteria for the Opportunities tab for Renewal Console)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: On upgrade, If no customization is done only OOTB metrics would be available after upgrade, if admins have customized,&amp;nbsp;&lt;span&gt;new customized metric tab&amp;nbsp;will be the default one and should be shown as first tab.&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl12"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;Align&amp;nbsp;Forecasting metrics UX&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;We are modifying forecasting KPI/metrics user experience with the new Metrics modules which is a change in the visualization of the Opportunity count in the metric boxes. These will now be displayed as a gray badge to match Serve views..&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl13"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;Embed report results directly in email body&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;In this release, we are embedding report results for scheduled reports directly in the email body&amp;nbsp;rather than as attachments.&lt;/p&gt;
&lt;p&gt;The report chart and data table are included directly in the email body. Can be scrolled. No pagination. Very large reports (~200 rows) are sent only in attachments.&lt;/p&gt;
&lt;h2 id="mcetoc_1ff80k9i33"&gt;Sugar REST API updates&lt;/h2&gt;
&lt;p&gt;This Sugar release introduces REST v11_18.&lt;/p&gt;
&lt;h3&gt;Nearby search with distance filter Rest API endpoints&lt;/h3&gt;
&lt;p&gt;Added a new endpoint which returns geocoded records based on radius, latitude and longitude&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;GET &amp;lt;sugar instance&amp;gt;/rest/v11_18/maps/nearby&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;h2 id="mcetoc_1ftl03hrg6"&gt;&lt;span style="font-size:inherit;"&gt;PHP Library Upgrades&lt;/span&gt;&lt;/h2&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Symfony&amp;nbsp;Components&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://symfony.com/"&gt;Symfony&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is a leading PHP framework&amp;nbsp;that provides a set of common components. For example, the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://symfony.com/doc/current/components/security.html"&gt;Symfony Security Component&lt;/a&gt;&amp;nbsp;is used&amp;nbsp;by Sugar for&amp;nbsp;input validation. We&amp;#39;ve updated these libraries to latest&amp;nbsp;stable version&amp;nbsp;and removed some transitive dependencies.&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;&amp;quot;symfony/cache&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/console&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/event-dispatcher&amp;quot;: &amp;quot;^v5.4.9&amp;quot;&lt;br /&gt;&amp;quot;symfony/expression-language&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/intl&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/polyfill-intl-idn&amp;quot;: &amp;quot;^v1.26.0&amp;quot;&lt;br /&gt;&amp;quot;symfony/security-core&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/security-csrf&amp;quot;: &amp;quot;^v5.4.9&amp;quot;&lt;br /&gt;&amp;quot;symfony/validator&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/process&amp;quot;: &amp;quot;^v5.4.8&amp;quot;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 id="mcetoc_1gb30ctl15"&gt;&lt;strong&gt;Smarty (smarty/smarty)&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Sugar utilizes a&amp;nbsp;PHP library called&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.smarty.net/"&gt;Smarty&lt;/a&gt;&lt;span&gt;&amp;nbsp;In this release, w&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;e are bumping up Smarty&amp;nbsp;to v3.1.45. This is a minor upgrade&amp;nbsp;with no impact to Sugar code.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ff80k9i33"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;JS Library Upgrades&lt;/h2&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;jQuery UI&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;In this release, we are upgrading&amp;nbsp;jQuery UI to v1.13. jQuery team has put together an&amp;nbsp;&lt;a href="https://jqueryui.com/upgrade-guide/1.13/"&gt;upgrade guide&lt;/a&gt;&amp;nbsp;per component as a reference.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;In case you use any of the affected components, please make sure to review and upgrade accordingly.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl17"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;SugarCRM Ventana&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://github.com/sugarcrm/ventana"&gt;Ventana&lt;/a&gt;&amp;nbsp;is being bumped up to 1.1.13 and it has been upgraded in Sugar 12.2 as well.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id="mcetoc_1ff80k9i33"&gt;&lt;code&gt;&lt;/code&gt;&lt;/h3&gt;
&lt;h2 id="mcetoc_1ftl03hrg6"&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;Supported Platforms Update&lt;/h2&gt;
&lt;h3 id="mcetoc_1f7c87abe2"&gt;DocMerge Deployed on Supported Regions&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;DocMerge services have been deployed in EU, APAC, and CAC regions for better performance and compliance.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ff80k9i33"&gt;Configurability&amp;nbsp;updates&lt;/h2&gt;
&lt;h3 id="mcetoc_1f7c87abe2"&gt;Sugar&amp;nbsp;API Platforms&lt;/h3&gt;
&lt;p&gt;Developers use the platform parameter to distinguish their custom platform from other clients when using the Sugar API.&lt;/p&gt;
&lt;p&gt;We have added&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;sugarlambda&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;to the core platform APIs.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Sugar Config Settings&lt;/h3&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Setting Name&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Default&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Override Example&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;symfony_deprecation_log&lt;/td&gt;
&lt;td&gt;false&lt;/td&gt;
&lt;td&gt;&lt;span&gt;$sugar_config['symfony_deprecation_log'] = true;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;enable logging of deprecation warnings, triggered by Symfony components&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="mcetoc_1f77psegvb"&gt;Data Changes&lt;/h2&gt;
&lt;h3 id="mcetoc_1gb30ctl1a"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Opportunities Module&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;We are adding the following fields to&amp;nbsp;the Opportunities module&amp;nbsp;for faster and better integrate with Sugar Predict.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_opp_conv_score_absolute labeled &amp;ldquo;Prediction Value&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_opp_conv_bin_accuracy labeled &amp;ldquo;Prediction Bin Accuracy&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_opp_conv_multiplier labeled &amp;ldquo;Prediction Multiplier&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mcetoc_1gb30ctl1b"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Leads&amp;nbsp;Module&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;We are adding the following fields to&amp;nbsp;the&amp;nbsp;Leads module&amp;nbsp;for faster and better integrate with Sugar Predict.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_conv_score_absolute labeled &amp;ldquo;Prediction Value&amp;rdquo;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_conv_bin_accuracy labeled &amp;ldquo;Prediction Bin Accuracy&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_conv_multiplier labeled &amp;ldquo;Prediction Multiplier&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_icp_fit_score_absolute labeled &amp;ldquo;ICP Value&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_icp_fit_bin_accuracy labeled &amp;ldquo;ICP Bin Accuracy&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_icp_fit_multiplier labeled &amp;ldquo;ICP Multiplier&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1f77psegvl"&gt;Platform Updates&lt;/h2&gt;
&lt;h3 id="mcetoc_1gb30ctl1c"&gt;&lt;strong&gt;Improvements to&amp;nbsp;ExternalResourceClient&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;We heard you and our ExternalResourceClient now accepts IPs on HTTP (non-secure) URLs,&amp;nbsp;&lt;/span&gt;e.g http://999.999.999.999/api/get/1&amp;nbsp;now is allowed as before it would throw an exception.&lt;/li&gt;
&lt;li&gt;We are also improving ExternalResourceClient to be compatible with PSRs 7,17,18 by adding&lt;span&gt;&amp;nbsp;a new method&amp;nbsp;&lt;/span&gt;&lt;code class="code css-9z42f9"&gt;sendRequest()&lt;/code&gt;&lt;span&gt;&amp;nbsp;to make our class compatible with PSR standards.&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;When using&amp;nbsp;&lt;code&gt;sendRequest()&amp;nbsp;&lt;/code&gt;in the output should be values of&amp;nbsp;&lt;/span&gt;&lt;code class="code css-9z42f9"&gt;&amp;quot;X-Amzn-Trace-Id&amp;quot;&lt;/code&gt;&lt;span&gt;&amp;nbsp;key (they are unique for each request/response).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;We are improving DNS lookups&amp;nbsp;over HTTPS (a.k.a.&amp;nbsp;&lt;a href="https://groups.google.com/forum/#!topic/public-dns-announce/p2iYauFuzIg"&gt;DoH&lt;/a&gt;), it won&amp;#39;t&amp;nbsp;impact you or your code, it&amp;#39;s an under-the-hood improvement.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Few bugs were fixed related to multiple redirects and URL changes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;span&gt;curl_*, socket_*, and stream_* functions checks enabled&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;As announced in the previous release, 12.2 enables Sugar&amp;#39;s package scanner to block those functions on MLP uploads.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;As a reminder, t&lt;/span&gt;he following plan has been put in place to ease the transition:&lt;/p&gt;
&lt;div class="content"&gt;
&lt;div class="code-block sc-ezYOhE gBYPJJ"&gt;
&lt;ul class="ak-ul"&gt;
&lt;li&gt;
&lt;p&gt;For the Sugar_12.1.0 release, the config parameter (&lt;code&gt;&lt;span&gt;enableEnhancedModuleChecks&lt;/span&gt;&lt;/code&gt;) will be disabled by&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;default&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;allowing MLPs with HTTP clients like curl, socket, and streams to be updated/installed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For Sugar_12.2.0 and Sugar_12.3.0 we will&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;enable&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;the config so that MLPs with the above functions will be blocked however Cloud Support has the ability to turn this off.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For Sugar_13.0.0 we will be removing the config, by this time we will have given everyone 4 releases times as per our deprecation policy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This client should be backported to all supported sugar versions.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;span&gt;DocMerge Performance Improvement&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;In this release, we have improved the performance of DocMerge functionality by introducing caching in different layers while dealing with metadata and merging.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;span&gt;Deprecations warnings to its own log file&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;Developers may want to add also the following to collect deprecation warnings into a separate deprecations.log file,&amp;nbsp;&lt;span&gt;keeping in sugarcrm.log only important messages&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;$sugar_config[&amp;#39;logger&amp;#39;][&amp;#39;channels&amp;#39;][&amp;#39;deprecation&amp;#39;] = [
&amp;#39;level&amp;#39; =&amp;gt; &amp;#39;warning&amp;#39;,
&amp;#39;handlers&amp;#39; =&amp;gt; [
    [
    &amp;#39;type&amp;#39; =&amp;gt; &amp;#39;File&amp;#39;,
    &amp;#39;name&amp;#39; =&amp;gt; &amp;#39;deprecations&amp;#39;,
    ],
  ],
];&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl1g"&gt;Restricting Module Loader for Sugar Essentials&lt;/h3&gt;
&lt;p&gt;Our Sugar Essentials customers will no longer be able to install nor uninstall packages using Module Loader, they can, however, delete uninstalled packages through the UI.&lt;/p&gt;
&lt;p&gt;UI will present an explanatory text in the UI for those types of customers.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;code&gt;&lt;/code&gt;&lt;/h3&gt;
&lt;h2 id="mcetoc_1f77psegv7"&gt;Removed&amp;nbsp;Functions /&amp;nbsp;Libraries&lt;/h2&gt;
&lt;h3 id="mcetoc_1gb30ctl1d"&gt;&lt;span&gt;&lt;/span&gt;&lt;strong&gt;PHP stable sort&amp;nbsp;removed&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/vanderlee/PHP-stable-sort-functions"&gt;PHP stable sort functions&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;library (&lt;code&gt;vanderlee/php-stable-sort-functions&lt;/code&gt;) has been removed in Sugar 12.2.&amp;nbsp;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl14"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Symfony&amp;nbsp;Components&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://symfony.com/"&gt;Symfony&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is a leading PHP framework&amp;nbsp;that provides a set of common components, the following components were removed in Sugar 12.2.&lt;/p&gt;
&lt;pre&gt;symfony/translation&lt;br /&gt;&lt;br /&gt;symfony/http-kernel&lt;/pre&gt;
&lt;h3 id="mcetoc_1gb30ctl1e"&gt;&lt;strong&gt;Multiple Dead code removed from Sugar Core&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;As part of our ongoing efforts to keep Sugar clean, fast, reliable, and secure, we are removing dead code from Sugar Core.&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl1f"&gt;&lt;strong&gt;Remove Opens Sans as font&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;We&amp;#39;ve added a new font, Inter as our default and only font. Now it&amp;#39;s time to clean up and remove Open Sans font-family in the core platform.&lt;/p&gt;
&lt;h2 id="mcetoc_1gb30ctl1g"&gt;SugarCloud Insights&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;We are making our SugarCloud insights downloads much better, more reliable and more secure in this release. We are introducing a new API for downloads and deprecating the current API.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Introducing new&amp;nbsp;Downloading Backups API&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;In this release, we are introducing a new Rest API for SugarCloud Insights backups for our SugarCloud customers.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This API follows our Sugar API standards as you need an&amp;nbsp;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Integration/Web_Services/REST_API/#Authentication"&gt;OAuth token&lt;/a&gt;&amp;nbsp;to retrieve data from.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Backups API requires those headers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sugar OAuth-Token provided by your instance&amp;#39;s API OAuth-token call.&lt;/li&gt;
&lt;li&gt;Your Sugar instance&amp;#39;s FQDN, for example: mysugarinstance.sugarondemand.com&lt;/li&gt;
&lt;li&gt;API: this is your&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Documentation/SugarCloud_Services/SugarCloud_Insights/SugarCloud_Insights_Guide/"&gt;SugarCloud Insights URL&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;that can be retrieved when you&amp;#39;re logged in to SCI, for now, it should be one of those
&lt;ul&gt;
&lt;li&gt;Non IDM enabled customers: sugarcloud-insights.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;usw2 customers: sugarcloud-insights-usw2.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;cac1 customers: sugarcloud-insights-cac1.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;apse1 customers: sugarcloud-insights-apse1.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;apse2 customers: sugarcloud-insights-apse2.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;euc1 customers: sugarcloud-insights-euc1.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;euw2 customers: sugarcloud-insights-euw2.service.sugarcrm.com&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;curl -X POST 
  -H Cache-Control:no-cache 
  -H &amp;quot;Content-Type: application/json&amp;quot; 
  -H OAuth-Token: &amp;lt;OAUTH_TOKEN&amp;gt;
  -H X-Sugar-FQDN: &amp;lt;FQDN&amp;gt; 
  https:/&amp;lt;site_url&amp;gt;/api/v1/backups&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Payload return:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="json"&gt;{
  &amp;quot;backups&amp;quot;:[{
     &amp;quot;created_at&amp;quot;:&amp;quot;2022-08-03T07:03:01Z&amp;quot;,
     &amp;quot;expires_at&amp;quot;:&amp;quot;2022-09-02T07:03:01Z&amp;quot;,
     &amp;quot;download_url&amp;quot;:&amp;quot;https://your_backup_archive&amp;quot;,
     &amp;quot;exclude_uploads&amp;quot;:false,
     &amp;quot;compressed_size&amp;quot;:3838288,
     &amp;quot;uncompressed_size&amp;quot;:3845144,
     &amp;quot;md5_checksum&amp;quot;:&amp;quot;25d90b5fb93605d86da0862ec350610f&amp;quot;
  }]
}&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Note&lt;/strong&gt;: The &amp;quot;download_url&amp;quot; link&amp;nbsp;is a temporary URL that will become invalid after a period of time, if that happens, you must make a new request to the API.&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Deprecating Downloading Backups From the Backups Module&lt;/h3&gt;
&lt;p style="font-weight:400;"&gt;We are deprecating the Ops Module Filter API in December 2022, which means it will still work as it is currently (in addition to the new REST API endpoint offered in 12.2).&amp;nbsp;Customizations&amp;nbsp;using the old endpoint should be updated to leverage the new API added in 12.2.&lt;/p&gt;
&lt;p style="font-weight:400;"&gt;Customers should still be able to use the legacy Backups module/API until December 2022. Once the&amp;nbsp;&lt;span&gt;Ops Module filter API&lt;/span&gt; has been removed, downloads can only be retrieved via the new API endpoint so we encourage you to upgrade all customizations or integrations to use the new API before the end of 2022.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Uploads Folder not Included by Default&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Customers have requested to remove uploads_folder from backups due to the size of their backups.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;We heard you and now uploads is not enabled by default and will be excluded on your backups moving forward, reducing the size of your backups focusing only on what matters.&lt;/span&gt;&lt;/p&gt;
&lt;div class="code-block sc-ezYOhE gBYPJJ"&gt;
&lt;p&gt;&lt;span class="prismjs css-1xfvm4v"&gt;&lt;code class="language-php"&gt;&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Sugar 12.2, Sugar Q4 2022&lt;/div&gt;
</description></item><item><title>Sugar 12.2 (Q4 2022) Customization Guide</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/751/sugar-12-2-q4-2022-customization-guide/revision/4</link><pubDate>Fri, 07 Oct 2022 14:24:09 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:6c63d38e-2fa8-47dc-b85c-1278d17ec0a6</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/751/sugar-12-2-q4-2022-customization-guide#comments</comments><description>Revision 4 posted to Dev Tutorials by Rafael Fernandes on 10/7/2022 2:24:09 PM&lt;br /&gt;
&lt;p&gt;The purpose of this document is to provide insight to Sugar Developers for upgrading custom Sugar code, extensions, and integrations to the Sugar 12.2 (Q4 2022) release. This guide focuses on changes in Sugar 12.2 (Q4 2022) that could cause an immediate impact on Sugar customizations and integrations built for earlier Sugar versions.&lt;/p&gt;
&lt;p&gt;Please check out the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="/dev-club/m/event-recaps/2170"&gt;Q4 2022 Developer Webinar recording&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;for more developer highlights.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;For Admin and End User release notes, please visit the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Release_Notes/12.2.0_Release_Notes/"&gt;Sugar 12.2.0 Release Notes&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ff80k9i20"&gt;User Experience Updates&lt;/h2&gt;
&lt;h3 id="mcetoc_1gb30ctl10"&gt;&lt;strong&gt;Extend Focus Drawer functionality to Report Drill Down results&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Added Focus Drawers to Reports. When a user drills into a report&amp;#39;s chart, sidecar links will display a focus drawer icon to the right of these. When a focus drawer (side drawer) is open from a top-bottom drawer, the focus drawer will stack on top of the top-bottom drawer. Closing a focus drawer opened from a top-bottom drawer lands the user in the initial top-bottom drawer. Focus drawer will follow regular bread-crumbing behavior. Clicking on a link from a top-bottom or focus drawer navigates the user to the link and kills all drawers.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl11"&gt;&lt;strong&gt;Introducing Metrics Tab to Consoles&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;In this release&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;span class="TextRun SCXW246294291 BCX0" lang="EN"&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;we are introducing a new feature called &amp;ldquo;Metrics&amp;rdquo; in this release&amp;nbsp;enabling Metr&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;ic ribbons for consoles that provide a holistic view of the metrics that matter the most.&amp;nbsp;&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;Each metric ribbon contains a number of Metric tabs each providing snapshot information that focuses on the points where the agents are regularly monitoring and taking action.&amp;nbsp;&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;The new metric ribbon is enabled for both Service Console as well as Renewal Console.&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;This would completely change the way a Service or a Sales agent works in Sugar consoles.&lt;/span&gt;&lt;/span&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;This new Module provides a list view with all the available metrics where you can manage its settings, filters and define the layout, admins can also delete a metric if they need to.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;We are also releasing some out-of-the-box metric tabs as follows:&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;User can see the following OOTB Metric tabs for Cases for Service Console&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Cases&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria : All Cases assigned to me and not Closed/Rejected/Duplicate ( Current filter criteria for the Cases tab for Service Console)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Team&amp;rsquo;s Cases&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria: All Cases assigned to me and anyone in my team and not Closed/Rejected/Duplicate&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;All Unassigned&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria: All Unassigned Cases and not Closed/Rejected/Duplicate&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;All Escalated&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria: All Escalated Cases assigned to me and anyone in my team and not Closed/Rejected/Duplicate&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;User can see the following OOTB Metric tabs for Accounts for Renewal Console&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Accounts&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria : Current filter criteria for the Accounts tab for Renewal Console)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;User can see the following OOTB Metric tabs for Opportunities tab for Renewal Console&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Opportunities&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria : Current filter criteria for the Opportunities tab for Renewal Console)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: On upgrade, If no customization is done only OOTB metrics would be available after upgrade, if admins have customized,&amp;nbsp;&lt;span&gt;new customized metric tab&amp;nbsp;will be the default one and should be shown as first tab.&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl12"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;Align&amp;nbsp;Forecasting metrics UX&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;We are modifying forecasting KPI/metrics user experience with the new Metrics modules which is a change in the visualization of the Opportunity count in the metric boxes. These will now be displayed as a gray badge to match Serve views..&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl13"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;Embed report results directly in email body&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;In this release, we are embedding report results for scheduled reports directly in the email body&amp;nbsp;rather than as attachments.&lt;/p&gt;
&lt;p&gt;The report chart and data table are included directly in the email body. Can be scrolled. No pagination. Very large reports (~200 rows) are sent only in attachments.&lt;/p&gt;
&lt;h2 id="mcetoc_1ff80k9i33"&gt;Sugar REST API updates&lt;/h2&gt;
&lt;p&gt;This Sugar release introduces REST v11_18.&lt;/p&gt;
&lt;h3&gt;Nearby search with distance filter Rest API endpoints&lt;/h3&gt;
&lt;p&gt;Added a new endpoint which returns geocoded records based on radius, latitude and longitude&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;GET &amp;lt;sugar instance&amp;gt;/rest/v11_18/maps/nearby&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;h2 id="mcetoc_1ftl03hrg6"&gt;&lt;span style="font-size:inherit;"&gt;PHP Library Upgrades&lt;/span&gt;&lt;/h2&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Symfony&amp;nbsp;Components&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://symfony.com/"&gt;Symfony&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is a leading PHP framework&amp;nbsp;that provides a set of common components. For example, the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://symfony.com/doc/current/components/security.html"&gt;Symfony Security Component&lt;/a&gt;&amp;nbsp;is used&amp;nbsp;by Sugar for&amp;nbsp;input validation. We&amp;#39;ve updated these libraries to latest&amp;nbsp;stable version&amp;nbsp;and removed some transitive dependencies.&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;&amp;quot;symfony/cache&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/console&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/event-dispatcher&amp;quot;: &amp;quot;^v5.4.9&amp;quot;&lt;br /&gt;&amp;quot;symfony/expression-language&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/intl&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/polyfill-intl-idn&amp;quot;: &amp;quot;^v1.26.0&amp;quot;&lt;br /&gt;&amp;quot;symfony/security-core&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/security-csrf&amp;quot;: &amp;quot;^v5.4.9&amp;quot;&lt;br /&gt;&amp;quot;symfony/validator&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/process&amp;quot;: &amp;quot;^v5.4.8&amp;quot;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 id="mcetoc_1gb30ctl15"&gt;&lt;strong&gt;Smarty (smarty/smarty)&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Sugar utilizes a&amp;nbsp;PHP library called&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.smarty.net/"&gt;Smarty&lt;/a&gt;&lt;span&gt;&amp;nbsp;In this release, w&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;e are bumping up Smarty&amp;nbsp;to v3.1.45. This is a minor upgrade&amp;nbsp;with no impact to Sugar code.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ff80k9i33"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;JS Library Upgrades&lt;/h2&gt;
&lt;h3&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;jQuery UI&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;In this release, we are upgrading&amp;nbsp;jQuery UI to v1.13. jQuery team has put together an&amp;nbsp;&lt;a href="https://jqueryui.com/upgrade-guide/1.13/"&gt;upgrade guide&lt;/a&gt;&amp;nbsp;per component as a reference.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;In case you use any of the affected components, please make sure to review and upgrade accordingly.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl17"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;SugarCRM Ventana&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://github.com/sugarcrm/ventana"&gt;Ventana&lt;/a&gt;&amp;nbsp;is being bumped up to 1.1.13 and it has been upgraded in Sugar 12.2 as well.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id="mcetoc_1ff80k9i33"&gt;&lt;code&gt;&lt;/code&gt;&lt;/h3&gt;
&lt;h2 id="mcetoc_1ftl03hrg6"&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;Supported Platforms Update&lt;/h2&gt;
&lt;h3 id="mcetoc_1f7c87abe2"&gt;DocMerge Deployed on Supported Regions&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;DocMerge services have been deployed in EU, APAC, and CAC regions for better performance and compliance.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ff80k9i33"&gt;Configurability&amp;nbsp;updates&lt;/h2&gt;
&lt;h3 id="mcetoc_1f7c87abe2"&gt;Sugar&amp;nbsp;API Platforms&lt;/h3&gt;
&lt;p&gt;Developers use the platform parameter to distinguish their custom platform from other clients when using the Sugar API.&lt;/p&gt;
&lt;p&gt;We have added&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;sugarlambda&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;to the core platform APIs.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Sugar Config Settings&lt;/h3&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Setting Name&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Default&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Override Example&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;symfony_deprecation_log&lt;/td&gt;
&lt;td&gt;false&lt;/td&gt;
&lt;td&gt;&lt;span&gt;$sugar_config['symfony_deprecation_log'] = true;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;enable logging of deprecation warnings, triggered by Symfony components&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="mcetoc_1f77psegvb"&gt;Data Changes&lt;/h2&gt;
&lt;h3 id="mcetoc_1gb30ctl1a"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Opportunities Module&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;We are adding the following fields to&amp;nbsp;the Opportunities module&amp;nbsp;for faster and better integrate with Sugar Predict.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_opp_conv_score_absolute labeled &amp;ldquo;Prediction Value&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_opp_conv_bin_accuracy labeled &amp;ldquo;Prediction Bin Accuracy&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_opp_conv_multiplier labeled &amp;ldquo;Prediction Multiplier&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mcetoc_1gb30ctl1b"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Leads&amp;nbsp;Module&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;We are adding the following fields to&amp;nbsp;the&amp;nbsp;Leads module&amp;nbsp;for faster and better integrate with Sugar Predict.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_conv_score_absolute labeled &amp;ldquo;Prediction Value&amp;rdquo;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_conv_bin_accuracy labeled &amp;ldquo;Prediction Bin Accuracy&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_conv_multiplier labeled &amp;ldquo;Prediction Multiplier&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_icp_fit_score_absolute labeled &amp;ldquo;ICP Value&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_icp_fit_bin_accuracy labeled &amp;ldquo;ICP Bin Accuracy&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_icp_fit_multiplier labeled &amp;ldquo;ICP Multiplier&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1f77psegvl"&gt;Platform Updates&lt;/h2&gt;
&lt;h3 id="mcetoc_1gb30ctl1c"&gt;&lt;strong&gt;Improvements to&amp;nbsp;ExternalResourceClient&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;We heard you and our ExternalResourceClient now accepts IPs on HTTP (non-secure) URLs,&amp;nbsp;&lt;/span&gt;e.g http://999.999.999.999/api/get/1&amp;nbsp;now is allowed as before it would throw an exception.&lt;/li&gt;
&lt;li&gt;We are also improving ExternalResourceClient to be compatible with PSRs 7,17,18 by adding&lt;span&gt;&amp;nbsp;a new method&amp;nbsp;&lt;/span&gt;&lt;code class="code css-9z42f9"&gt;sendRequest()&lt;/code&gt;&lt;span&gt;&amp;nbsp;to make our class compatible with PSR standards.&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;When using&amp;nbsp;&lt;code&gt;sendRequest()&amp;nbsp;&lt;/code&gt;in the output should be values of&amp;nbsp;&lt;/span&gt;&lt;code class="code css-9z42f9"&gt;&amp;quot;X-Amzn-Trace-Id&amp;quot;&lt;/code&gt;&lt;span&gt;&amp;nbsp;key (they are unique for each request/response).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;We are improving DNS lookups&amp;nbsp;over HTTPS (a.k.a.&amp;nbsp;&lt;a href="https://groups.google.com/forum/#!topic/public-dns-announce/p2iYauFuzIg"&gt;DoH&lt;/a&gt;), it won&amp;#39;t&amp;nbsp;impact you or your code, it&amp;#39;s an under-the-hood improvement.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Few bugs were fixed related to multiple redirects and URL changes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;span&gt;curl_*, socket_*, and stream_* functions checks enabled&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;As announced in the previous release, 12.2 enables Sugar&amp;#39;s package scanner to block those functions on MLP uploads.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;As a reminder, t&lt;/span&gt;he following plan has been put in place to ease the transition:&lt;/p&gt;
&lt;div class="content"&gt;
&lt;div class="code-block sc-ezYOhE gBYPJJ"&gt;
&lt;ul class="ak-ul"&gt;
&lt;li&gt;
&lt;p&gt;For the Sugar_12.1.0 release, the config parameter (&lt;code&gt;&lt;span&gt;enableEnhancedModuleChecks&lt;/span&gt;&lt;/code&gt;) will be disabled by&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;default&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;allowing MLPs with HTTP clients like curl, socket, and streams to be updated/installed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For Sugar_12.2.0 and Sugar_12.3.0 we will&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;enable&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;the config so that MLPs with the above functions will be blocked however Cloud Support has the ability to turn this off.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For Sugar_13.0.0 we will be removing the config, by this time we will have given everyone 4 releases times as per our deprecation policy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This client should be backported to all supported sugar versions.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;span&gt;DocMerge Performance Improvement&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;In this release, we have improved the performance of DocMerge functionality by introducing caching in different layers while dealing with metadata and merging.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;span&gt;Deprecations warnings to its own log file&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;Developers may want to add also the following to collect deprecation warnings into a separate deprecations.log file,&amp;nbsp;&lt;span&gt;keeping in sugarcrm.log only important messages&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;$sugar_config[&amp;#39;logger&amp;#39;][&amp;#39;channels&amp;#39;][&amp;#39;deprecation&amp;#39;] = [
&amp;#39;level&amp;#39; =&amp;gt; &amp;#39;warning&amp;#39;,
&amp;#39;handlers&amp;#39; =&amp;gt; [
    [
    &amp;#39;type&amp;#39; =&amp;gt; &amp;#39;File&amp;#39;,
    &amp;#39;name&amp;#39; =&amp;gt; &amp;#39;deprecations&amp;#39;,
    ],
  ],
];&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl1g"&gt;Restricting Module Loader for Sugar Essentials&lt;/h3&gt;
&lt;p&gt;Our Sugar Essentials customers will no longer be able to install nor uninstall packages using Module Loader, they can, however, delete uninstalled packages through the UI.&lt;/p&gt;
&lt;p&gt;UI will present an explanatory text in the UI for those types of customers.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;code&gt;&lt;/code&gt;&lt;/h3&gt;
&lt;h2 id="mcetoc_1f77psegv7"&gt;Removed&amp;nbsp;Functions /&amp;nbsp;Libraries&lt;/h2&gt;
&lt;h3 id="mcetoc_1gb30ctl1d"&gt;&lt;span&gt;&lt;/span&gt;&lt;strong&gt;PHP stable sort&amp;nbsp;removed&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/vanderlee/PHP-stable-sort-functions"&gt;PHP stable sort functions&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;library (&lt;code&gt;vanderlee/php-stable-sort-functions&lt;/code&gt;) has been removed in Sugar 12.2.&amp;nbsp;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl14"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Symfony&amp;nbsp;Components&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://symfony.com/"&gt;Symfony&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is a leading PHP framework&amp;nbsp;that provides a set of common components, the following components were removed in Sugar 12.2.&lt;/p&gt;
&lt;pre&gt;symfony/translation&lt;br /&gt;&lt;br /&gt;symfony/http-kernel&lt;/pre&gt;
&lt;h3 id="mcetoc_1gb30ctl1e"&gt;&lt;strong&gt;Multiple Dead code removed from Sugar Core&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;As part of our ongoing efforts to keep Sugar clean, fast, reliable, and secure, we are removing dead code from Sugar Core.&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl1f"&gt;&lt;strong&gt;Remove Opens Sans as font&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;We&amp;#39;ve added a new font, Inter as our default and only font. Now it&amp;#39;s time to clean up and remove Open Sans font-family in the core platform.&lt;/p&gt;
&lt;h2 id="mcetoc_1gb30ctl1g"&gt;SugarCloud Insights&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;We are making our SugarCloud insights downloads much better, more reliable and more secure in this release. We are introducing a new API for downloads and deprecating the current API.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Introducing new&amp;nbsp;Downloading Backups API&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;In this release, we are introducing a new Rest API for SugarCloud Insights backups for our SugarCloud customers.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This API follows our Sugar API standards as you need an&amp;nbsp;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Integration/Web_Services/REST_API/#Authentication"&gt;OAuth token&lt;/a&gt;&amp;nbsp;to retrieve data from.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Backups API requires those headers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sugar OAuth-Token provided by your instance&amp;#39;s API OAuth-token call.&lt;/li&gt;
&lt;li&gt;Your Sugar instance&amp;#39;s FQDN, for example: mysugarinstance.sugarondemand.com&lt;/li&gt;
&lt;li&gt;API: this is your&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Documentation/SugarCloud_Services/SugarCloud_Insights/SugarCloud_Insights_Guide/"&gt;SugarCloud Insights URL&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;that can be retrieved when you&amp;#39;re logged in to SCI, for now, it should be one of those
&lt;ul&gt;
&lt;li&gt;Non IDM enabled customers: sugarcloud-insights.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;usw2 customers: sugarcloud-insights-usw2.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;cac1 customers: sugarcloud-insights-cac1.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;apse1 customers: sugarcloud-insights-apse1.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;apse2 customers: sugarcloud-insights-apse2.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;euc1 customers: sugarcloud-insights-euc1.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;euw2 customers: sugarcloud-insights-euw2.service.sugarcrm.com&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;curl -X POST 
  -H Cache-Control:no-cache 
  -H &amp;quot;Content-Type: application/json&amp;quot; 
  -H OAuth-Token: &amp;lt;OAUTH_TOKEN&amp;gt;
  -H X-Sugar-FQDN: &amp;lt;FQDN&amp;gt; 
  https:/&amp;lt;site_url&amp;gt;/api/v1/backups&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Payload return:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="json"&gt;{
  &amp;quot;backups&amp;quot;:[{
     &amp;quot;created_at&amp;quot;:&amp;quot;2022-08-03T07:03:01Z&amp;quot;,
     &amp;quot;expires_at&amp;quot;:&amp;quot;2022-09-02T07:03:01Z&amp;quot;,
     &amp;quot;download_url&amp;quot;:&amp;quot;https://your_backup_archive&amp;quot;,
     &amp;quot;exclude_uploads&amp;quot;:false,
     &amp;quot;compressed_size&amp;quot;:3838288,
     &amp;quot;uncompressed_size&amp;quot;:3845144,
     &amp;quot;md5_checksum&amp;quot;:&amp;quot;25d90b5fb93605d86da0862ec350610f&amp;quot;
  }]
}&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Note&lt;/strong&gt;: The &amp;quot;download_url&amp;quot; link&amp;nbsp;is a temporary URL that will become invalid after a period of time, if that happens, you must make a new request to the API.&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Deprecating Downloading Backups From the Backups Module&lt;/h3&gt;
&lt;p style="font-weight:400;"&gt;We are deprecating the Ops Module Filter API in 12.3, which means it will still work as it is currently (in addition to the new REST API endpoint offered in 12.2) until next release (12.3) where it will be removed.&lt;/p&gt;
&lt;p style="font-weight:400;"&gt;There is no impact to your current backups/downloads and filters in 12.2. Once the Ops Module filter API is removed in 12.3, downloads can only be retrieved via the new API endpoint so we encourage&amp;nbsp;you to upgrade all customizations or integrations in favor of the new API before 12.3.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Uploads Folder not Included by Default&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Customers have requested to remove uploads_folder from backups due to the size of their backups.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;We heard you and now uploads is not enabled by default and will be excluded on your backups moving forward, reducing the size of your backups focusing only on what matters.&lt;/span&gt;&lt;/p&gt;
&lt;div class="code-block sc-ezYOhE gBYPJJ"&gt;
&lt;p&gt;&lt;span class="prismjs css-1xfvm4v"&gt;&lt;code class="language-php"&gt;&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Sugar 12.2, Sugar Q4 2022&lt;/div&gt;
</description></item><item><title>Sugar 12.2 (Q4 2022) Customization Guide</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/751/sugar-12-2-q4-2022-customization-guide/revision/3</link><pubDate>Fri, 07 Oct 2022 14:19:53 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:6c63d38e-2fa8-47dc-b85c-1278d17ec0a6</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/751/sugar-12-2-q4-2022-customization-guide#comments</comments><description>Revision 3 posted to Dev Tutorials by Rafael Fernandes on 10/7/2022 2:19:53 PM&lt;br /&gt;
&lt;p&gt;The purpose of this document is to provide insight to Sugar Developers for upgrading custom Sugar code, extensions, and integrations to the Sugar 12.2 (Q4 2022) release. This guide focuses on changes in Sugar 12.2 (Q4 2022) that could cause an immediate impact on Sugar customizations and integrations built for earlier Sugar versions.&lt;/p&gt;
&lt;p&gt;Please check out the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="/dev-club/m/event-recaps/2170"&gt;Q4 2022 Developer Webinar recording&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;for more developer highlights.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;For Admin and End User release notes, please visit the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Release_Notes/12.2.0_Release_Notes/"&gt;Sugar 12.2.0 Release Notes&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;h1 id="mcetoc_1ff80k9i20"&gt;User Experience Updates&lt;/h1&gt;
&lt;h2 id="mcetoc_1gb30ctl10"&gt;&lt;strong&gt;Extend Focus Drawer functionality to Report Drill Down results&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Added Focus Drawers to Reports. When a user drills into a report&amp;#39;s chart, sidecar links will display a focus drawer icon to the right of these. When a focus drawer (side drawer) is open from a top-bottom drawer, the focus drawer will stack on top of the top-bottom drawer. Closing a focus drawer opened from a top-bottom drawer lands the user in the initial top-bottom drawer. Focus drawer will follow regular bread-crumbing behavior. Clicking on a link from a top-bottom or focus drawer navigates the user to the link and kills all drawers.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1gb30ctl11"&gt;&lt;strong&gt;Introducing Metrics Tab to Consoles&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;In this release&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;span class="TextRun SCXW246294291 BCX0" lang="EN"&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;we are introducing a new feature called &amp;ldquo;Metrics&amp;rdquo; in this release&amp;nbsp;enabling Metr&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;ic ribbons for consoles that provide a holistic view of the metrics that matter the most.&amp;nbsp;&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;Each metric ribbon contains a number of Metric tabs each providing snapshot information that focuses on the points where the agents are regularly monitoring and taking action.&amp;nbsp;&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;The new metric ribbon is enabled for both Service Console as well as Renewal Console.&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;This would completely change the way a Service or a Sales agent works in Sugar consoles.&lt;/span&gt;&lt;/span&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;This new Module provides a list view with all the available metrics where you can manage its settings, filters and define the layout, admins can also delete a metric if they need to.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;We are also releasing some out-of-the-box metric tabs as follows:&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;User can see the following OOTB Metric tabs for Cases for Service Console&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Cases&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria : All Cases assigned to me and not Closed/Rejected/Duplicate ( Current filter criteria for the Cases tab for Service Console)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Team&amp;rsquo;s Cases&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria: All Cases assigned to me and anyone in my team and not Closed/Rejected/Duplicate&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;All Unassigned&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria: All Unassigned Cases and not Closed/Rejected/Duplicate&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;All Escalated&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria: All Escalated Cases assigned to me and anyone in my team and not Closed/Rejected/Duplicate&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;User can see the following OOTB Metric tabs for Accounts for Renewal Console&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Accounts&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria : Current filter criteria for the Accounts tab for Renewal Console)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;User can see the following OOTB Metric tabs for Opportunities tab for Renewal Console&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Opportunities&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria : Current filter criteria for the Opportunities tab for Renewal Console)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: On upgrade, If no customization is done only OOTB metrics would be available after upgrade, if admins have customized,&amp;nbsp;&lt;span&gt;new customized metric tab&amp;nbsp;will be the default one and should be shown as first tab.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1gb30ctl12"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;Align&amp;nbsp;Forecasting metrics UX&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;We are modifying forecasting KPI/metrics user experience with the new Metrics modules which is a change in the visualization of the Opportunity count in the metric boxes. These will now be displayed as a gray badge to match Serve views..&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1gb30ctl13"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;Embed report results directly in email body&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;In this release, we are embedding report results for scheduled reports directly in the email body&amp;nbsp;rather than as attachments.&lt;/p&gt;
&lt;p&gt;The report chart and data table are included directly in the email body. Can be scrolled. No pagination. Very large reports (~200 rows) are sent only in attachments.&lt;/p&gt;
&lt;h1 id="mcetoc_1ff80k9i33"&gt;Sugar REST API updates&lt;/h1&gt;
&lt;p&gt;This Sugar release introduces REST v11_18.&lt;/p&gt;
&lt;h2 id="mcetoc_1ftl0217h0"&gt;Nearby search with distance filter Rest API endpoints&lt;/h2&gt;
&lt;p&gt;Added a new endpoint which returns geocoded records based on radius, latitude and longitude&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;GET &amp;lt;sugar instance&amp;gt;/rest/v11_18/maps/nearby&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;h1 id="mcetoc_1ftl03hrg6"&gt;&lt;span style="font-size:inherit;"&gt;PHP Library Upgrades&lt;/span&gt;&lt;/h1&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Symfony&amp;nbsp;Components&lt;/strong&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://symfony.com/"&gt;Symfony&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is a leading PHP framework&amp;nbsp;that provides a set of common components. For example, the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://symfony.com/doc/current/components/security.html"&gt;Symfony Security Component&lt;/a&gt;&amp;nbsp;is used&amp;nbsp;by Sugar for&amp;nbsp;input validation. We&amp;#39;ve updated these libraries to latest&amp;nbsp;stable version&amp;nbsp;and removed some transitive dependencies.&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;&amp;quot;symfony/cache&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/console&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/event-dispatcher&amp;quot;: &amp;quot;^v5.4.9&amp;quot;&lt;br /&gt;&amp;quot;symfony/expression-language&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/intl&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/polyfill-intl-idn&amp;quot;: &amp;quot;^v1.26.0&amp;quot;&lt;br /&gt;&amp;quot;symfony/security-core&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/security-csrf&amp;quot;: &amp;quot;^v5.4.9&amp;quot;&lt;br /&gt;&amp;quot;symfony/validator&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/process&amp;quot;: &amp;quot;^v5.4.8&amp;quot;&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 id="mcetoc_1gb30ctl15"&gt;&lt;strong&gt;Smarty (smarty/smarty)&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Sugar utilizes a&amp;nbsp;PHP library called&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.smarty.net/"&gt;Smarty&lt;/a&gt;&lt;span&gt;&amp;nbsp;In this release, w&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;e are bumping up Smarty&amp;nbsp;to v3.1.45. This is a minor upgrade&amp;nbsp;with no impact to Sugar code.&lt;/span&gt;&lt;/p&gt;
&lt;h1 id="mcetoc_1ff80k9i33"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;JS Library Upgrades&lt;/h1&gt;
&lt;h2&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;jQuery UI&lt;/strong&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;In this release, we are upgrading&amp;nbsp;jQuery UI to v1.13. jQuery team has put together an&amp;nbsp;&lt;a href="https://jqueryui.com/upgrade-guide/1.13/"&gt;upgrade guide&lt;/a&gt;&amp;nbsp;per component as a reference.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;In case you use any of the affected components, please make sure to review and upgrade accordingly.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1gb30ctl17"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;SugarCRM Ventana&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://github.com/sugarcrm/ventana"&gt;Ventana&lt;/a&gt;&amp;nbsp;is being bumped up to 1.1.13 and it has been upgraded in Sugar 12.2 as well.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id="mcetoc_1ff80k9i33"&gt;&lt;code&gt;&lt;/code&gt;&lt;/h3&gt;
&lt;h1 id="mcetoc_1ftl03hrg6"&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;Supported Platforms Update&lt;/h1&gt;
&lt;h2 id="mcetoc_1f7c87abe2"&gt;DocMerge Deployed on Supported Regions&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;DocMerge services have been deployed in EU, APAC, and CAC regions for better performance and compliance.&lt;/span&gt;&lt;/p&gt;
&lt;h1 id="mcetoc_1ff80k9i33"&gt;Configurability&amp;nbsp;updates&lt;/h1&gt;
&lt;h2 id="mcetoc_1f7c87abe2"&gt;Sugar&amp;nbsp;API Platforms&lt;/h2&gt;
&lt;p&gt;Developers use the platform parameter to distinguish their custom platform from other clients when using the Sugar API.&lt;/p&gt;
&lt;p&gt;We have added&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;sugarlambda&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;to the core platform APIs.&lt;/p&gt;
&lt;h2 id="mcetoc_1f77psegv7"&gt;Sugar Config Settings&lt;/h2&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Setting Name&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Default&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Override Example&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;symfony_deprecation_log&lt;/td&gt;
&lt;td&gt;false&lt;/td&gt;
&lt;td&gt;&lt;span&gt;$sugar_config['symfony_deprecation_log'] = true;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;enable logging of deprecation warnings, triggered by Symfony components&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="mcetoc_1f77psegvb"&gt;Data Changes&lt;/h1&gt;
&lt;h2 id="mcetoc_1gb30ctl1a"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Opportunities Module&lt;/strong&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;We are adding the following fields to&amp;nbsp;the Opportunities module&amp;nbsp;for faster and better integrate with Sugar Predict.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_opp_conv_score_absolute labeled &amp;ldquo;Prediction Value&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_opp_conv_bin_accuracy labeled &amp;ldquo;Prediction Bin Accuracy&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_opp_conv_multiplier labeled &amp;ldquo;Prediction Multiplier&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1gb30ctl1b"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Leads&amp;nbsp;Module&lt;/strong&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;We are adding the following fields to&amp;nbsp;the&amp;nbsp;Leads module&amp;nbsp;for faster and better integrate with Sugar Predict.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_conv_score_absolute labeled &amp;ldquo;Prediction Value&amp;rdquo;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_conv_bin_accuracy labeled &amp;ldquo;Prediction Bin Accuracy&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_conv_multiplier labeled &amp;ldquo;Prediction Multiplier&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_icp_fit_score_absolute labeled &amp;ldquo;ICP Value&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_icp_fit_bin_accuracy labeled &amp;ldquo;ICP Bin Accuracy&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_icp_fit_multiplier labeled &amp;ldquo;ICP Multiplier&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="mcetoc_1f77psegvl"&gt;Platform Updates&lt;/h1&gt;
&lt;h2 id="mcetoc_1gb30ctl1c"&gt;&lt;strong&gt;Improvements to&amp;nbsp;ExternalResourceClient&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;We heard you and our ExternalResourceClient now accepts IPs on HTTP (non-secure) URLs,&amp;nbsp;&lt;/span&gt;e.g http://999.999.999.999/api/get/1&amp;nbsp;now is allowed as before it would throw an exception.&lt;/li&gt;
&lt;li&gt;We are also improving ExternalResourceClient to be compatible with PSRs 7,17,18 by adding&lt;span&gt;&amp;nbsp;a new method&amp;nbsp;&lt;/span&gt;&lt;code class="code css-9z42f9"&gt;sendRequest()&lt;/code&gt;&lt;span&gt;&amp;nbsp;to make our class compatible with PSR standards.&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;When using&amp;nbsp;&lt;code&gt;sendRequest()&amp;nbsp;&lt;/code&gt;in the output should be values of&amp;nbsp;&lt;/span&gt;&lt;code class="code css-9z42f9"&gt;&amp;quot;X-Amzn-Trace-Id&amp;quot;&lt;/code&gt;&lt;span&gt;&amp;nbsp;key (they are unique for each request/response).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;We are improving DNS lookups&amp;nbsp;over HTTPS (a.k.a.&amp;nbsp;&lt;a href="https://groups.google.com/forum/#!topic/public-dns-announce/p2iYauFuzIg"&gt;DoH&lt;/a&gt;), it won&amp;#39;t&amp;nbsp;impact you or your code, it&amp;#39;s an under-the-hood improvement.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Few bugs were fixed related to multiple redirects and URL changes&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1f77psegv7"&gt;&lt;span&gt;curl_*, socket_*, and stream_* functions checks enabled&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;As announced in the previous release, 12.2 enables Sugar&amp;#39;s package scanner to block those functions on MLP uploads.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;As a reminder, t&lt;/span&gt;he following plan has been put in place to ease the transition:&lt;/p&gt;
&lt;div class="content"&gt;
&lt;div class="code-block sc-ezYOhE gBYPJJ"&gt;
&lt;ul class="ak-ul"&gt;
&lt;li&gt;
&lt;p&gt;For the Sugar_12.1.0 release, the config parameter (&lt;code&gt;&lt;span&gt;enableEnhancedModuleChecks&lt;/span&gt;&lt;/code&gt;) will be disabled by&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;default&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;allowing MLPs with HTTP clients like curl, socket, and streams to be updated/installed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For Sugar_12.2.0 and Sugar_12.3.0 we will&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;enable&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;the config so that MLPs with the above functions will be blocked however Cloud Support has the ability to turn this off.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For Sugar_13.0.0 we will be removing the config, by this time we will have given everyone 4 releases times as per our deprecation policy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This client should be backported to all supported sugar versions.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="mcetoc_1f77psegv7"&gt;&lt;span&gt;DocMerge Performance Improvement&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;In this release, we have improved the performance of DocMerge functionality by introducing caching in different layers while dealing with metadata and merging.&lt;/p&gt;
&lt;h2 id="mcetoc_1f77psegv7"&gt;&lt;span&gt;Deprecations warnings to its own log file&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;Developers may want to add also the following to collect deprecation warnings into a separate deprecations.log file,&amp;nbsp;&lt;span&gt;keeping in sugarcrm.log only important messages&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;$sugar_config[&amp;#39;logger&amp;#39;][&amp;#39;channels&amp;#39;][&amp;#39;deprecation&amp;#39;] = [
&amp;#39;level&amp;#39; =&amp;gt; &amp;#39;warning&amp;#39;,
&amp;#39;handlers&amp;#39; =&amp;gt; [
    [
    &amp;#39;type&amp;#39; =&amp;gt; &amp;#39;File&amp;#39;,
    &amp;#39;name&amp;#39; =&amp;gt; &amp;#39;deprecations&amp;#39;,
    ],
  ],
];&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1gb30ctl1g"&gt;Restricting Module Loader for Sugar Essentials&lt;/h2&gt;
&lt;p&gt;Our Sugar Essentials customers will no longer be able to install nor uninstall packages using Module Loader, they can, however, delete uninstalled packages through the UI.&lt;/p&gt;
&lt;p&gt;UI will present an explanatory text in the UI for those types of customers.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;code&gt;&lt;/code&gt;&lt;/h3&gt;
&lt;h1 id="mcetoc_1f77psegv7"&gt;Removed&amp;nbsp;Functions /&amp;nbsp;Libraries&lt;/h1&gt;
&lt;h2 id="mcetoc_1gb30ctl1d"&gt;&lt;span&gt;&lt;/span&gt;&lt;strong&gt;PHP stable sort&amp;nbsp;removed&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/vanderlee/PHP-stable-sort-functions"&gt;PHP stable sort functions&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;library (&lt;code&gt;vanderlee/php-stable-sort-functions&lt;/code&gt;) has been removed in Sugar 12.2.&amp;nbsp;&lt;/p&gt;
&lt;h2 id="mcetoc_1gb30ctl14"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Symfony&amp;nbsp;Components&lt;/strong&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://symfony.com/"&gt;Symfony&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is a leading PHP framework&amp;nbsp;that provides a set of common components, the following components were removed in Sugar 12.2.&lt;/p&gt;
&lt;pre&gt;symfony/translation&lt;br /&gt;&lt;br /&gt;symfony/http-kernel&lt;/pre&gt;
&lt;h2 id="mcetoc_1gb30ctl1e"&gt;&lt;strong&gt;Multiple Dead code removed from Sugar Core&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;As part of our ongoing efforts to keep Sugar clean, fast, reliable, and secure, we are removing dead code from Sugar Core.&lt;/p&gt;
&lt;h2 id="mcetoc_1gb30ctl1f"&gt;&lt;strong&gt;Remove Opens Sans as font&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;We&amp;#39;ve added a new font, Inter as our default and only font. Now it&amp;#39;s time to clean up and remove Open Sans font-family in the core platform.&lt;/p&gt;
&lt;h1 id="mcetoc_1gb30ctl1g"&gt;SugarCloud Insights&lt;/h1&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;We are making our SugarCloud insights downloads much better, more reliable and more secure in this release. We are introducing a new API for downloads and deprecating the current API.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1f77psegv7"&gt;Introducing new&amp;nbsp;Downloading Backups API&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;In this release, we are introducing a new Rest API for SugarCloud Insights backups for our SugarCloud customers.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This API follows our Sugar API standards as you need an&amp;nbsp;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Integration/Web_Services/REST_API/#Authentication"&gt;OAuth token&lt;/a&gt;&amp;nbsp;to retrieve data from.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Backups API requires those headers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sugar OAuth-Token provided by your instance&amp;#39;s API OAuth-token call.&lt;/li&gt;
&lt;li&gt;Your Sugar instance&amp;#39;s FQDN, for example: mysugarinstance.sugarondemand.com&lt;/li&gt;
&lt;li&gt;API: this is your&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Documentation/SugarCloud_Services/SugarCloud_Insights/SugarCloud_Insights_Guide/"&gt;SugarCloud Insights URL&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;that can be retrieved when you&amp;#39;re logged in to SCI, for now, it should be one of those
&lt;ul&gt;
&lt;li&gt;Non IDM enabled customers: sugarcloud-insights.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;usw2 customers: sugarcloud-insights-usw2.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;cac1 customers: sugarcloud-insights-cac1.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;apse1 customers: sugarcloud-insights-apse1.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;apse2 customers: sugarcloud-insights-apse2.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;euc1 customers: sugarcloud-insights-euc1.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;euw2 customers: sugarcloud-insights-euw2.service.sugarcrm.com&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;curl -X POST 
  -H Cache-Control:no-cache 
  -H &amp;quot;Content-Type: application/json&amp;quot; 
  -H OAuth-Token: &amp;lt;OAUTH_TOKEN&amp;gt;
  -H X-Sugar-FQDN: &amp;lt;FQDN&amp;gt; 
  https:/&amp;lt;site_url&amp;gt;/api/v1/backups&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Payload return:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="json"&gt;{
  &amp;quot;backups&amp;quot;:[{
     &amp;quot;created_at&amp;quot;:&amp;quot;2022-08-03T07:03:01Z&amp;quot;,
     &amp;quot;expires_at&amp;quot;:&amp;quot;2022-09-02T07:03:01Z&amp;quot;,
     &amp;quot;download_url&amp;quot;:&amp;quot;https://your_backup_archive&amp;quot;,
     &amp;quot;exclude_uploads&amp;quot;:false,
     &amp;quot;compressed_size&amp;quot;:3838288,
     &amp;quot;uncompressed_size&amp;quot;:3845144,
     &amp;quot;md5_checksum&amp;quot;:&amp;quot;25d90b5fb93605d86da0862ec350610f&amp;quot;
  }]
}&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Note&lt;/strong&gt;: The &amp;quot;download_url&amp;quot; link&amp;nbsp;is a temporary URL that will become invalid after a period of time, if that happens, you must make a new request to the API.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1f77psegv7"&gt;Deprecating Downloading Backups From the Backups Module&lt;/h2&gt;
&lt;p style="font-weight:400;"&gt;We are deprecating the Ops Module Filter API in 12.3, which means it will still work as it is currently (in addition to the new REST API endpoint offered in 12.2) until next release (12.3) where it will be removed.&lt;/p&gt;
&lt;p style="font-weight:400;"&gt;There is no impact to your current backups/downloads and filters in 12.2. Once the Ops Module filter API is removed in 12.3, downloads can only be retrieved via the new API endpoint so we encourage&amp;nbsp;you to upgrade all customizations or integrations in favor of the new API before 12.3.&lt;/p&gt;
&lt;h2 id="mcetoc_1f77psegv7"&gt;Uploads Folder not Included by Default&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Customers have requested to remove uploads_folder from backups due to the size of their backups.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;We heard you and now uploads is not enabled by default and will be excluded on your backups moving forward, reducing the size of your backups focusing only on what matters.&lt;/span&gt;&lt;/p&gt;
&lt;div class="code-block sc-ezYOhE gBYPJJ"&gt;
&lt;p&gt;&lt;span class="prismjs css-1xfvm4v"&gt;&lt;code class="language-php"&gt;&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Sugar 12.2, Sugar Q4 2022&lt;/div&gt;
</description></item><item><title>Sugar 12.2 (Q4 2022) Customization Guide</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/751/sugar-12-2-q4-2022-customization-guide/revision/2</link><pubDate>Fri, 07 Oct 2022 13:28:12 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:6c63d38e-2fa8-47dc-b85c-1278d17ec0a6</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/751/sugar-12-2-q4-2022-customization-guide#comments</comments><description>Revision 2 posted to Dev Tutorials by Rafael Fernandes on 10/7/2022 1:28:12 PM&lt;br /&gt;
&lt;p&gt;The purpose of this document is to provide insight to Sugar Developers for upgrading custom Sugar code, extensions, and integrations to the Sugar 12.2 (Q4 2022) release. This guide focuses on changes in Sugar 12.2 (Q4 2022) that could cause an immediate impact on Sugar customizations and integrations built for earlier Sugar versions.&lt;/p&gt;
&lt;p&gt;Please check out the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="/dev-club/m/event-recaps/2170"&gt;Q4 2022 Developer Webinar recording&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;for more developer highlights.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;For Admin and End User release notes, please visit the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Release_Notes/12.2.0_Release_Notes/"&gt;Sugar 12.2.0 Release Notes&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;h1 id="mcetoc_1ff80k9i20"&gt;User Experience Updates&lt;/h1&gt;
&lt;h3 id="mcetoc_1gb30ctl10"&gt;&lt;strong&gt;Extend Focus Drawer functionality to Report Drill Down results&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Added Focus Drawers to Reports. When a user drills into a report&amp;#39;s chart, sidecar links will display a focus drawer icon to the right of these. When a focus drawer (side drawer) is open from a top-bottom drawer, the focus drawer will stack on top of the top-bottom drawer. Closing a focus drawer opened from a top-bottom drawer lands the user in the initial top-bottom drawer. Focus drawer will follow regular bread-crumbing behavior. Clicking on a link from a top-bottom or focus drawer navigates the user to the link and kills all drawers.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl11"&gt;&lt;strong&gt;Introducing Metrics Tab to Consoles&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;In this release&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;span class="TextRun SCXW246294291 BCX0" lang="EN"&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;we are introducing a new feature called &amp;ldquo;Metrics&amp;rdquo; in this release&amp;nbsp;enabling Metr&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;ic ribbons for consoles that provide a holistic view of the metrics that matter the most.&amp;nbsp;&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;Each metric ribbon contains a number of Metric tabs each providing snapshot information that focuses on the points where the agents are regularly monitoring and taking action.&amp;nbsp;&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;The new metric ribbon is enabled for both Service Console as well as Renewal Console.&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="NormalTextRun SCXW246294291 BCX0"&gt;This would completely change the way a Service or a Sales agent works in Sugar consoles.&lt;/span&gt;&lt;/span&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;This new Module provides a list view with all the available metrics where you can manage its settings, filters and define the layout, admins can also delete a metric if they need to.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;We are also releasing some out-of-the-box metric tabs as follows:&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;User can see the following OOTB Metric tabs for Cases for Service Console&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Cases&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria : All Cases assigned to me and not Closed/Rejected/Duplicate ( Current filter criteria for the Cases tab for Service Console)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Team&amp;rsquo;s Cases&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria: All Cases assigned to me and anyone in my team and not Closed/Rejected/Duplicate&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;All Unassigned&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria: All Unassigned Cases and not Closed/Rejected/Duplicate&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;All Escalated&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria: All Escalated Cases assigned to me and anyone in my team and not Closed/Rejected/Duplicate&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;User can see the following OOTB Metric tabs for Accounts for Renewal Console&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Accounts&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria : Current filter criteria for the Accounts tab for Renewal Console)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;User can see the following OOTB Metric tabs for Opportunities tab for Renewal Console&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;My Opportunities&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="ak-ol"&gt;
&lt;li&gt;
&lt;p&gt;Filter Criteria : Current filter criteria for the Opportunities tab for Renewal Console)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: On upgrade, If no customization is done only OOTB metrics would be available after upgrade, if admins have customized,&amp;nbsp;&lt;span&gt;new customized metric tab&amp;nbsp;will be the default one and should be shown as first tab.&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl12"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;Align&amp;nbsp;Forecasting metrics UX&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;We are modifying forecasting KPI/metrics user experience with the new Metrics modules which is a change in the visualization of the Opportunity count in the metric boxes. These will now be displayed as a gray badge to match Serve views..&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl13"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;span class="EOP SCXW246294291 BCX0"&gt;Embed report results directly in email body&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;In this release, we are embedding report results for scheduled reports directly in the email body&amp;nbsp;rather than as attachments.&lt;/p&gt;
&lt;p&gt;The report chart and data table are included directly in the email body. Can be scrolled. No pagination. Very large reports (~200 rows) are sent only in attachments.&lt;/p&gt;
&lt;h3 id="mcetoc_1ff80k9i33"&gt;Sugar REST API updates&lt;/h3&gt;
&lt;p&gt;This Sugar release introduces REST v11_18.&lt;/p&gt;
&lt;h3 id="mcetoc_1ftl0217h0"&gt;Nearby search with distance filter Rest API endpoints&lt;/h3&gt;
&lt;p&gt;Added a new endpoint which returns geocoded records based on radius, latitude and longitude&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;GET &amp;lt;sugar instance&amp;gt;/rest/v11_18/maps/nearby&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;h2 id="mcetoc_1ftl03hrg6"&gt;&lt;span style="font-size:inherit;"&gt;PHP Library Upgrades&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Symfony&amp;nbsp;Components&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://symfony.com/"&gt;Symfony&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is a leading PHP framework&amp;nbsp;that provides a set of common components. For example, the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://symfony.com/doc/current/components/security.html"&gt;Symfony Security Component&lt;/a&gt;&amp;nbsp;is used&amp;nbsp;by Sugar for&amp;nbsp;input validation. We&amp;#39;ve updated these libraries to latest&amp;nbsp;stable version&amp;nbsp;and removed some transitive dependencies.&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;&amp;quot;symfony/cache&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/console&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/event-dispatcher&amp;quot;: &amp;quot;^v5.4.9&amp;quot;&lt;br /&gt;&amp;quot;symfony/expression-language&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/intl&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/polyfill-intl-idn&amp;quot;: &amp;quot;^v1.26.0&amp;quot;&lt;br /&gt;&amp;quot;symfony/security-core&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/security-csrf&amp;quot;: &amp;quot;^v5.4.9&amp;quot;&lt;br /&gt;&amp;quot;symfony/validator&amp;quot;: &amp;quot;^v5.4.10&amp;quot;&lt;br /&gt;&amp;quot;symfony/process&amp;quot;: &amp;quot;^v5.4.8&amp;quot;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 id="mcetoc_1gb30ctl15"&gt;&lt;strong&gt;Smarty (smarty/smarty)&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;Sugar utilizes a&amp;nbsp;PHP library called&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.smarty.net/"&gt;Smarty&lt;/a&gt;&lt;span&gt;&amp;nbsp;In this release, w&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;e are bumping up Smarty&amp;nbsp;to v3.1.45. This is a minor upgrade&amp;nbsp;with no impact to Sugar code.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ff80k9i33"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;JS Library Upgrades&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Work in progress.&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl16"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;jQuery UI&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;In this release, we are upgrading&amp;nbsp;jQuery UI to v1.13. jQuery team has put together an&amp;nbsp;&lt;a href="https://jqueryui.com/upgrade-guide/1.13/"&gt;upgrade guide&lt;/a&gt;&amp;nbsp;per component as a reference.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;In case you use any of the affected components, please make sure to review and upgrade accordingly.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl17"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;SugarCRM Ventana&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://github.com/sugarcrm/ventana"&gt;Ventana&lt;/a&gt;&amp;nbsp;is being bumped up to 1.1.13 and it has been upgraded in Sugar 12.2 as well.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id="mcetoc_1ff80k9i33"&gt;&lt;code&gt;&lt;/code&gt;&lt;/h3&gt;
&lt;h2 id="mcetoc_1ftl03hrg6"&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;Supported Platforms Update&lt;/h2&gt;
&lt;h3 id="mcetoc_1f7c87abe2"&gt;DocMerge Deployed on Supported Regions&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;DocMerge services have been deployed in EU, APAC, and CAC regions for better performance and compliance.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1ff80k9i33"&gt;Configurability&amp;nbsp;updates&lt;/h2&gt;
&lt;h3 id="mcetoc_1f7c87abe2"&gt;Sugar&amp;nbsp;API Platforms&lt;/h3&gt;
&lt;p&gt;Developers use the platform parameter to distinguish their custom platform from other clients when using the Sugar API.&lt;/p&gt;
&lt;p&gt;We have added&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;sugarlambda&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;to the core platform APIs.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Sugar Config Settings&lt;/h3&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Setting Name&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Default&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Override Example&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;symfony_deprecation_log&lt;/td&gt;
&lt;td&gt;false&lt;/td&gt;
&lt;td&gt;&lt;span&gt;$sugar_config['symfony_deprecation_log'] = true;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;enable logging of deprecation warnings, triggered by Symfony components&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="mcetoc_1f77psegvb"&gt;Data Changes&lt;/h2&gt;
&lt;h3 id="mcetoc_1gb30ctl1a"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Opportunities Module&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;We are adding the following fields to&amp;nbsp;the Opportunities module&amp;nbsp;for faster and better integrate with Sugar Predict.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_opp_conv_score_absolute labeled &amp;ldquo;Prediction Value&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_opp_conv_bin_accuracy labeled &amp;ldquo;Prediction Bin Accuracy&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_opp_conv_multiplier labeled &amp;ldquo;Prediction Multiplier&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mcetoc_1gb30ctl1b"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Leads&amp;nbsp;Module&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;We are adding the following fields to&amp;nbsp;the&amp;nbsp;Leads module&amp;nbsp;for faster and better integrate with Sugar Predict.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_conv_score_absolute labeled &amp;ldquo;Prediction Value&amp;rdquo;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_conv_bin_accuracy labeled &amp;ldquo;Prediction Bin Accuracy&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_conv_multiplier labeled &amp;ldquo;Prediction Multiplier&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_icp_fit_score_absolute labeled &amp;ldquo;ICP Value&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_icp_fit_bin_accuracy labeled &amp;ldquo;ICP Bin Accuracy&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size:inherit;"&gt;ai_icp_fit_multiplier labeled &amp;ldquo;ICP Multiplier&amp;rdquo;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="mcetoc_1f77psegvb"&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1f77psegvl"&gt;Platform Updates&lt;/h2&gt;
&lt;h3 id="mcetoc_1gb30ctl1c"&gt;&lt;strong&gt;Improvements to&amp;nbsp;ExternalResourceClient&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;We heard you and our ExternalResourceClient now accepts IPs on HTTP (non-secure) URLs,&amp;nbsp;&lt;/span&gt;e.g http://999.999.999.999/api/get/1&amp;nbsp;now is allowed as before it would throw an exception.&lt;/li&gt;
&lt;li&gt;We are also improving ExternalResourceClient to be compatible with PSRs 7,17,18 by adding&lt;span&gt;&amp;nbsp;a new method&amp;nbsp;&lt;/span&gt;&lt;code class="code css-9z42f9"&gt;sendRequest()&lt;/code&gt;&lt;span&gt;&amp;nbsp;to make our class compatible with PSR standards.&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;When using&amp;nbsp;&lt;code&gt;sendRequest()&amp;nbsp;&lt;/code&gt;in the output should be values of&amp;nbsp;&lt;/span&gt;&lt;code class="code css-9z42f9"&gt;&amp;quot;X-Amzn-Trace-Id&amp;quot;&lt;/code&gt;&lt;span&gt;&amp;nbsp;key (they are unique for each request/response).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;We are improving DNS lookups&amp;nbsp;over HTTPS (a.k.a.&amp;nbsp;&lt;a href="https://groups.google.com/forum/#!topic/public-dns-announce/p2iYauFuzIg"&gt;DoH&lt;/a&gt;), it won&amp;#39;t&amp;nbsp;impact you or your code, it&amp;#39;s an under-the-hood improvement.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Few bugs were fixed related to multiple redirects and URL changes&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;span&gt;curl_*, socket_*, and stream_* functions checks enabled&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;As announced in the previous release, 12.2 enables Sugar&amp;#39;s package scanner to block those functions on MLP uploads.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;As a reminder, t&lt;/span&gt;he following plan has been put in place to ease the transition:&lt;/p&gt;
&lt;div class="content"&gt;
&lt;div class="code-block sc-ezYOhE gBYPJJ"&gt;
&lt;ul class="ak-ul"&gt;
&lt;li&gt;
&lt;p&gt;For the Sugar_12.1.0 release, the config parameter (&lt;code&gt;&lt;span&gt;enableEnhancedModuleChecks&lt;/span&gt;&lt;/code&gt;) will be disabled by&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;default&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;allowing MLPs with HTTP clients like curl, socket, and streams to be updated/installed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For Sugar_12.2.0 and Sugar_12.3.0 we will&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;enable&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;the config so that MLPs with the above functions will be blocked however Cloud Support has the ability to turn this off.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For Sugar_13.0.0 we will be removing the config, by this time we will have given everyone 4 releases times as per our deprecation policy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This client should be backported to all supported sugar versions.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;span&gt;DocMerge Performance Improvement&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;In this release, we have improved the performance of DocMerge functionality by introducing caching in different layers while dealing with metadata and merging.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;span&gt;Deprecations warnings to its own log file&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;Developers may want to add also the following to collect deprecation warnings into a separate deprecations.log file,&amp;nbsp;&lt;span&gt;keeping in sugarcrm.log only important messages&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;$sugar_config[&amp;#39;logger&amp;#39;][&amp;#39;channels&amp;#39;][&amp;#39;deprecation&amp;#39;] = [
&amp;#39;level&amp;#39; =&amp;gt; &amp;#39;warning&amp;#39;,
&amp;#39;handlers&amp;#39; =&amp;gt; [
    [
    &amp;#39;type&amp;#39; =&amp;gt; &amp;#39;File&amp;#39;,
    &amp;#39;name&amp;#39; =&amp;gt; &amp;#39;deprecations&amp;#39;,
    ],
  ],
];&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl1g"&gt;Restricting Module Loader for Sugar Essentials&lt;/h3&gt;
&lt;p&gt;Our Sugar Essentials customers will no longer be able to install nor uninstall packages using Module Loader, they can, however, delete uninstalled packages through the UI.&lt;/p&gt;
&lt;p&gt;UI will present an explanatory text in the UI for those types of customers.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;&lt;code&gt;&lt;/code&gt;&lt;/h3&gt;
&lt;h2 id="mcetoc_1f77psegv7"&gt;Removed&amp;nbsp;Functions /&amp;nbsp;Libraries&lt;/h2&gt;
&lt;h3 id="mcetoc_1gb30ctl1d"&gt;&lt;span&gt;&lt;/span&gt;&lt;strong&gt;PHP stable sort&amp;nbsp;removed&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/vanderlee/PHP-stable-sort-functions"&gt;PHP stable sort functions&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;library (&lt;code&gt;vanderlee/php-stable-sort-functions&lt;/code&gt;) has been removed in Sugar 12.2.&amp;nbsp;&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl14"&gt;&lt;span style="font-size:inherit;"&gt;&lt;strong&gt;Symfony&amp;nbsp;Components&lt;/strong&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://symfony.com/"&gt;Symfony&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is a leading PHP framework&amp;nbsp;that provides a set of common components, the following components were removed in Sugar 12.2.&lt;/p&gt;
&lt;pre&gt;symfony/translation&lt;br /&gt;&lt;br /&gt;symfony/http-kernel&lt;/pre&gt;
&lt;h3 id="mcetoc_1gb30ctl1e"&gt;&lt;strong&gt;Multiple Dead code removed from Sugar Core&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;As part of our ongoing efforts to keep Sugar clean, fast, reliable, and secure, we are removing dead code from Sugar Core.&lt;/p&gt;
&lt;h3 id="mcetoc_1gb30ctl1f"&gt;&lt;strong&gt;Remove Opens Sans as font&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;We&amp;#39;ve added a new font, Inter as our default and only font. Now it&amp;#39;s time to clean up and remove Open Sans font-family in the core platform.&lt;/p&gt;
&lt;h2 id="mcetoc_1gb30ctl1g"&gt;SugarCloud Insights&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;/span&gt;&lt;span style="font-size:inherit;"&gt;&lt;span&gt;We are making our SugarCloud insights downloads much better, more reliable and more secure in this release. We are introducing a new API for downloads and deprecating the current API.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Introducing new&amp;nbsp;Downloading Backups API&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;In this release, we are introducing a new Rest API for SugarCloud Insights backups for our SugarCloud customers.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This API follows our Sugar API standards as you need an&amp;nbsp;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Integration/Web_Services/REST_API/#Authentication"&gt;OAuth token&lt;/a&gt;&amp;nbsp;to retrieve data from.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Backups API requires those headers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sugar OAuth-Token provided by your instance&amp;#39;s API OAuth-token call.&lt;/li&gt;
&lt;li&gt;Your Sugar instance&amp;#39;s FQDN, for example: mysugarinstance.sugarondemand.com&lt;/li&gt;
&lt;li&gt;API: this is your&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Documentation/SugarCloud_Services/SugarCloud_Insights/SugarCloud_Insights_Guide/"&gt;SugarCloud Insights URL&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;that can be retrieved when you&amp;#39;re logged in to SCI, for now, it should be one of those
&lt;ul&gt;
&lt;li&gt;Non IDM enabled customers: sugarcloud-insights.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;usw2 customers: sugarcloud-insights-usw2.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;cac1 customers: sugarcloud-insights-cac1.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;apse1 customers: sugarcloud-insights-apse1.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;apse2 customers: sugarcloud-insights-apse2.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;euc1 customers: sugarcloud-insights-euc1.service.sugarcrm.com&lt;/li&gt;
&lt;li&gt;euw2 customers: sugarcloud-insights-euw2.service.sugarcrm.com&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="batchfile"&gt;curl -X POST 
  -H Cache-Control:no-cache 
  -H &amp;quot;Content-Type: application/json&amp;quot; 
  -H OAuth-Token: &amp;lt;OAUTH_TOKEN&amp;gt;
  -H X-Sugar-FQDN: &amp;lt;FQDN&amp;gt; 
  https:/&amp;lt;site_url&amp;gt;/api/v1/backups&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Payload return:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="json"&gt;{
  &amp;quot;backups&amp;quot;:[{
     &amp;quot;created_at&amp;quot;:&amp;quot;2022-08-03T07:03:01Z&amp;quot;,
     &amp;quot;expires_at&amp;quot;:&amp;quot;2022-09-02T07:03:01Z&amp;quot;,
     &amp;quot;download_url&amp;quot;:&amp;quot;https://your_backup_archive&amp;quot;,
     &amp;quot;exclude_uploads&amp;quot;:false,
     &amp;quot;compressed_size&amp;quot;:3838288,
     &amp;quot;uncompressed_size&amp;quot;:3845144,
     &amp;quot;md5_checksum&amp;quot;:&amp;quot;25d90b5fb93605d86da0862ec350610f&amp;quot;
  }]
}&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Note&lt;/strong&gt;: The &amp;quot;download_url&amp;quot; link&amp;nbsp;is a temporary URL that will become invalid after a period of time, if that happens, you must make a new request to the API.&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Deprecating Downloading Backups From the Backups Module&lt;/h3&gt;
&lt;p style="font-weight:400;"&gt;We are deprecating the Ops Module Filter API in 12.3, which means it will still work as it is currently (in addition to the new REST API endpoint offered in 12.2) until next release (12.3) where it will be removed.&lt;/p&gt;
&lt;p style="font-weight:400;"&gt;There is no impact to your current backups/downloads and filters in 12.2. Once the Ops Module filter API is removed in 12.3, downloads can only be retrieved via the new API endpoint so we encourage&amp;nbsp;you to upgrade all customizations or integrations in favor of the new API before 12.3.&lt;/p&gt;
&lt;h3 id="mcetoc_1f77psegv7"&gt;Uploads Folder not Included by Default&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;Customers have requested to remove uploads_folder from backups due to the size of their backups.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;We heard you and now uploads is not enabled by default and will be excluded on your backups moving forward, reducing the size of your backups focusing only on what matters.&lt;/span&gt;&lt;/p&gt;
&lt;div class="code-block sc-ezYOhE gBYPJJ"&gt;
&lt;p&gt;&lt;span class="prismjs css-1xfvm4v"&gt;&lt;code class="language-php"&gt;&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Sugar 12.2, Sugar Q4 2022&lt;/div&gt;
</description></item><item><title>Sugar 12.2 (Q4 2022) Customization Guide</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/751/sugar-12-2-q4-2022-customization-guide/revision/1</link><pubDate>Mon, 26 Sep 2022 18:04:16 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:6c63d38e-2fa8-47dc-b85c-1278d17ec0a6</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/751/sugar-12-2-q4-2022-customization-guide#comments</comments><description>Revision 1 posted to Dev Tutorials by Rafael Fernandes on 9/26/2022 6:04:16 PM&lt;br /&gt;
&lt;p&gt;Work in progress.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Sugar 12.2, Sugar Q4 2022&lt;/div&gt;
</description></item></channel></rss>