Salesforce Spring ’23 Release Notes — The Funny Summary — Volume VI

Oumaima ARBANI
5 min readJan 10, 2023

--

This is article is one of a many volumes for the Spring ’23 Release Notes — The Funny-ish Summary. If you want to jump to a specific Topic please use the links at the bottom of this page.

Development

Lightning Components

  • Let’s start with some good news ladies and gents. Lightning Web Security for LWC is now GAAAAA, and BETA for Aura components
  • On the same note. If your org doesn’t have any LWC or Aura components, LWS is enabled by default. Lightning Locker is vanishing (Happy screams silently 🤫)
  • Fetching GraphQL data is now possible via the GraphQL Wire Adapter. Check how PILOT
  • Here is a cool one, dear developers. You can use refs to access elements in shadow DOM and light DOM. Queryselector who?
  • Light DOM is the new deal folks. You can now access component markups like any other content in the document host. BETA
  • As Salesforce maintains the synthetic shadow polyfill for legacy browsers, Lightning web components can use native shadow DOM even when the synthetic shadow polyfill is applied with Mixed Shadow mode. DEVELOPER PREVIEW
  • All other Aura apps now support only scoped styles in light DOM components, except for Experience Cloud sites, CMS content editor, and Sales Enablement environments
  • Say no more to if:true and if:false in LWC, because lwc:if, lwc:elseif, and lwc:else are the new deal. I am a huge fan of this one personally
  • Setting properties on lwcRuntimeFlags no longer affects Lightning Web Components
  • Writing unit tests isn’t always fun to do, and identifying Page Objects when you write a UI test for a Salesforce application page isn’t fun either. That’s why you should use UTAM’s browser extension for Google Chrome. Check for more 😉 BETA
  • Remember the LWC data refresh API aka lightning/refresh module that was on PILOT the last release? Now it’s BETA (Hopefully GA by the next release 👉🏻👈🏻 🙏🏻)

Visualforce

  • Previously, expressions in Visualforce pages and components were automatically escaped, except for expressions in <script> and <style> tags. Starting from Spring ’23, these two tags are also escaped, and this will be enforced in WINTER ‘24
  • Quick reminder: The Visualforce Remoting API uses JavaScript to call methods in Apex controllers directly from Visualforce pages. So In order to prevent unauthorized serialization and deserialization across packaging namespaces, Salesforce validates the JsonAccess annotation of the Apex classes. This was supposed to be enforced on SPRING ’23, but it will now be enforced on WINTER ‘24

Apex

  • Repeat after me, security and safety first. User mode database operations are now GA
  • ApexTypeImplementor is now GA. If you have no idea what that is, where on earth have you been? I am kidding! You can use it to find which Apex Classes Implement an Interface. If you’re curious enough, here is a good example if you want to enjoy testing this
  • The Mulesoft’s DataWeave library that can be integrated into the Apex runtime that was under Developer Preview the last release, it’s BETA now
  • What if I told you that you can add queueable jobs to the asynchronous execution queue with a specified minimum delay. Here is how 🥁🥁🥁🥁🥁 System.enqueueJob(new MyQueueableClass(), delayInMinutes)
  • Talking about delays, you can now define an Org-Wide Default Delay in Scheduling Queueable Jobs. Cool huh?
  • Spring party guests ladies and gentlemen: Database.queryWithBinds, Database.getQueryLocatorWithBinds, and Database.countQueryWithBinds methods. May you please present yourself to the audience?
    - Emm, yeah yo hello! We just found the door open and we said let’s join.. no we’re kidding. We actually help to dynamically pass bind variables to a SOQL Query. For more informations, click here
  • What if I told you that you can get the SObjectType of a Schema.DescribeFieldResult object by using the brand new getSObjectType() method 😎🤙🤙
  • You can now restrict Anonymous Apex access to core users. I know I know.. too good to be true, but it’s true! You can achieve this by using the RestrictCommunityExecAnon preference. Check how

API

  • Let’s all wish a happy retirement to versions 21.0 through 30.0 of the Salesforce Platform API, as they are being retired in SUMMER ’23

Packaging

  • What if I told you that you can specify a default language for unlocked and second-generation managed packages!
  • When you use Metadata API to install a managed package, you can specify which user profiles in the org can access the package

DevOps Center

  • All I want to say it that DevOps Center is now GA. If you’re curious to know more about this, you can check this video
  • Before wrapping up this section, DevOps Center has some new awesome features that you might want to check

Development Environments

  • Waiting for a sandbox to be cloned isn’t that fun of a thing to do. For Partial and Full sandboxes hosted on Hyperforce, the Quick Clone technology is now GA

Platform Events

  • To count it or to skip it? That is the question. Standard Platform Events published by the User, are no longer counted against org limits

--

--

Oumaima ARBANI

Salesforce Technical Consultant by day, reader by night. An aspiring CTA, a Salesforce addict, a dog lover, a HUGE Swiftie, a Potterhead, and a big F1 fan.