Skip to content

Releases: jongpie/NebulaLogger

v4.18.4 - Bugfix: Removed most of the usage of UserInfo.getSessionId()

Choose a tag to compare

@jongpie jongpie released this 07 Jul 17:48
55ba832

Thanks so much to everyone that helped with troubleshooting & testing issues #761 and #964, including @krishnandusarkarprax, @JeroenSfdc, @arafesthain, @Ben-Culver, @victorkuldeep, @mmablom, and @NitishFCTG!

Core Unlocked Package Changes

Fixed #761 and fixed #964 by updating Logger Apex class to remove most of the usage of System.UserInfo.getSessionId() - it can't cause problems if we don't use it 😆

  • Now the only place that the session ID is referenced is when using the REST save method. The user session ID is synchronously passed to the internal class RestApiSaver - and passing it like this will (intentionally) force a synchronous runtime exception when there isn't a session ID (instead of it silently failing async)
    • Issue #996 has been created to add the ability to specify a named credential to use when making internal REST calls to the org (which would effectively eliminate the last usage of System.UserInfo.getSessionId())

To help validate that this change doesn't cause any regressions, I've added some extra metadata (used only in the pipeline & testing) to recreate previously reported issues related to quiddity & user session ID:

  • Issue #155 - Added an example email service, ExampleInboundEmailService, to have a full solution to re-test. Previously, I only had the Apex class ExampleInboundEmailHandler, but I needed the service itself to do a full end-to-end test.
  • Issue #224 - Added Experience Cloud metadata SSO logins, auth provider, and custom registration handlers, to have a full solution to re-test.

With the extra metadata in place & the changes in Logger, everything still seems to be working as expected (without the use of System.UserInfo.getSessionId()).

Pipeline Changes

Pipeline overhaul: made some big restructuring of .github/workflows/build.yml for maintainability and speed improvements

  • Made two composite actions (setup-npm and authorize-dev-hub) for some stuff that's used throughout the build (and was previously duplicated a bunch)
  • Pulled out the scratch-org test logic into a reusable workflow (test-scratch-org.yml), with parameters to control scratch def file, OmniStudio toggle, optional extra-metadata directory, and Codecov toggle
  • Updated build.yml to use the new actions & workflows, which eliminates a ton of duplication
  • Moved the scratch org tests a single matrix-driven caller. Adding a new scratch org now just requires a few new lines to be added to the matrix.
  • All scratch orgs now run in parallel instead of in batches of 3 (a huge thanks to thanks @jamessimone and @mitchspano for getting the dev hub limit increased 🥳)
  • Added a new state-and-country-picklists scratch org as a small follow-up to issue #976
  • Added a new hourly cleanup workflow (delete-stale-scratch-orgs.yml) to delete orphaned pipeline scratch orgs older than 2 hours (it'll skip any scratch orgs tied to GitHub Actions that are still running)

Installation Info

Core Unlocked Package - no namespace

Full Changelog: v4.18.3...v4.18.4

v4.18.3 - PrismJS Loading Improvements & Error Handling

Choose a tag to compare

@jongpie jongpie released this 13 May 20:39
05ce16c

Many thanks go to everyone that helped with troubleshooting & testing issue #963, including @khouseknecht, @joshiausdemwald, @Rumtum, @jflammang-cp, @cbcruz74, and @khouseknecht!

Core Unlocked Package Changes

Fixed #963 in PR #988 by making a few changes to the LWC loggerCodeViewer, used to display code snippets using PrismJS

  • Added error handling to help surface issues with loading Prism static resources, and added logic to still display code content when loading Prism fails for some reason
  • Created a new node script to auto-retrieve & auto-minify PrismJS files (including plugins, languages, and themes) to streamline the update process
  • Switched to using minified versions of Prism's JS & CSS files to avoid a crazy issue within the platform where JavaScript comments containing the text import can cause the Prism JS file to not load/execute successfully (╯‵□′)╯︵┻━┻
  • Finally fixed a long-standing issue where calling Prism.highlightAll() twice was previously needed
  • Updated folder structure for static resources to include a dedicated Prism directory, as well as a themes subdirectory
  • Expanded tests for LWC logEntryMetadataViewer to better cover the current functionality

Screenshots

  • When 1 or more of the Prism static resources can't be loaded or executed, loggerCodeViewer will now show the code snippet without Prism formatting/highlighting (previously, a lightning-spinner just endlessly displayed). Corresponding error messages are also printed in the browser's console

    image
  • With the changes to use a minified version of Prism, it now successfully loads again (visually, this looks the same as before these recent issues started happening with Prism)

    image

Installation Info

Core Unlocked Package - no namespace

Full Changelog: v4.18.2...v4.18.3

v4.18.2 - New Field LogEntry__c.WasLoggedByCurrentUser__c

Choose a tag to compare

@jongpie jongpie released this 11 May 17:37
62ceb99

Thanks goes to @DivyanshuBist for working on this release! 🥳

Core Unlocked Package Changes

  • Resolved #970 in PR #981 by adding a new formula field LogEntry__c.WasLoggedByCurrentUser__c, which returns the value of the existing field Log__c.WasLoggedByCurrentUser__c
    • Created a new LogEntry__c list view, MyGeneratedLogEntries
    • Added field-level security (FLS) for the new field to LoggerEndUser permission set

Installation Info

Core Unlocked Package - no namespace

Full Changelog: v4.18.1...v4.18.2

v4.18.1 - New Declarative Configuration for Ignoring Apex Classes in Stack Traces

Choose a tag to compare

@jongpie jongpie released this 08 May 18:10
325a258

Thanks goes to @JMercie for working on this release! 🥳

Core Unlocked Package Changes

  • Resolved #890 by adding a new LoggerParameter__mdt record, IgnoredApexOrigins, to provide a declarative approach that allows admins/developers to configure Apex classes to ignore in stack traces globally, without requiring any code changes.
    • The default value is [], an empty JSON array. To ignore classes, add them to the array, like ['SomeClass', 'AnotherClass']
    • Since stack trace parsing is very limited in the managed package, the plan for now is for the new record IgnoredApexOrigins to only be available in the unlocked package (controlled via the XML node <protected>true</protected>). This may change later, but for now will be only available in the unlocked package.

Installation Info

Core Unlocked Package - no namespace

Full Changelog: v4.18.0...v4.18.1

v4.18.0 - Winter '26 Release

Choose a tag to compare

@jongpie jongpie released this 08 May 14:49
a5cac07

Managed Package Release - v4.18.0

This release is for both the unlocked package (as always), as well as the managed package! You can see everything that's changed between v4.17.0 and v4.18.0 for the managed package by reviewing:

  • The v4.18.0 milestone to see all of the issues & pull requests that are included in the this release.
  • The diff between v4.17.0 and v4.18.0 to see all of the code & metadata changes that have been committed since the last managed package release.

Managed Package Enhancements & Bugfixes

Core Unlocked Package Release - v4.18.0

These changes are new for both the unlocked package and the managed package.

Winter '26 Release Upgrade

  • Bumped all metadata to API v65.0 (Winter '26 release)
    • Also updated the list of picklist values in several 'API version' picklist fields on Log__c and LogEntry__c
  • Also retrieved all metadata after the API upgrade, which resulted in some (minor) changes to several XML metadata files

Permission Set Enhancements

  • Fixed issue #923: Updated LoggerEndUser permission set to have (minimal) CRUD access so end users can update log management fields, manage tags & scenarios, etc.
  • Fixed issue #952: Updated LoggerAdmin and LoggerEndUser permission sets to have Apex class access for CallableLogger
  • Updated LoggerAdmin and LoggerEndUser permission sets remove the unnecessary inclusion of Apex class access for FlowLogger

System Message Improvements

  • Updated several Apex classes so system messages consistently use 'Nebula Logger' as a prefix on each message

Pipeline & Tooling Changes

  • Added the new Salesforce-UX slds-linter tool and used it to auto-fix several SLDS lint violations in some LWCs
  • Resolved issue #784: Upgraded from using sfdx-scanner to code-analyzer v5 (including borrowing a copy of code-analyzer.yml from @jamessimone in apex-rollup)
    • This also includes removing a bunch of devDependencies in package.json, as well as upgrading several others
    • This also includes updating build.yml to reflect that sfdx-scanner has been replaced with code-analyzer
  • Updated several Apex classes to suppress some PMD warnings that are now reported by code-analyzer v5
  • Updated several LWCs & their Jest tests to either improve some of the code (based on new code-analyzer rules) or suppressed some scan violations

Installation Info

Core Unlocked Package - no namespace

Full Changelog: v4.17.5...v4.18.0

Core Managed Package - Nebula namespace

Full Changelog: v4.17.0...v4.18.0

v4.17.5 - Related Log Entries Component update

Choose a tag to compare

@jamessimone jamessimone released this 30 Apr 19:24
dba69dc

What's Changed

While we are leaving this flag as something set internally by Nebula Logger for now, our plan is to roll out an update to the Related Log Entries component in the future, which would enable functionality like toggling to search for a record being present in the Message field of any given Log Entry, as well.

Full Changelog: v4.17.4...v4.17.5

v4.17.4 - Fix for New Platform Requirement of Verified Email Domains

Choose a tag to compare

@jongpie jongpie released this 02 Apr 20:20
826166f

Core Unlocked Package Changes

  • Fixed #972 (reported by @arafesthain) where Salesforce has made the odd choice to break existing code by now requiring email domains to be verified, resulting in Apex code now throwing an exception when the email domain isn't verified 😡 (regardless of the API version used by Apex code)
    • This was fixed in PR #973 by updating the test class LoggerEmailSender_Tests to set the current user's email address to a (fake) gmail.com address - gmail.com is one of a few domains that don't have to be verified (see docs)

Installation Info

Core Unlocked Package - no namespace

Full Changelog: v4.17.3...v4.17.4

v4.17.3 - relatedLogEntries LWC Improvements

Choose a tag to compare

@jongpie jongpie released this 25 Feb 17:56
91518a0

Core Unlocked Package Changes

  • Fixed #896 reported by @anthonygiuliano (and confirmed by @dominykasvitkus) by leveraging SOSL to search for a matching record ID (instead of strictly filtering on LogEntry__c.RecordId__c)
  • Fixed #805 reported by @zimny349 by updating Apex class RelatedLogEntriesController to use toLabel() in SOQL when querying picklist fields
  • Improved the layout of the lightning card & datatable so the component visually better aligns with the appearance of standard related lists
  • Scope creep: fixed #952 reported by @Mike-Cleaver-LB by adding Apex class access for CallableLogger to the LoggerLogCreator permission set to ensure the running user can use it in contexts like OmniStudio

In the screenshots below, the same data is used (same Account record, and same LogEntry__c records exist) - only the relatedLogEntries LWC has changed between the 2 screenshots

Before:

image

After:

image

Installation Info

Core Unlocked Package - no namespace

Full Changelog: v4.17.2...v4.17.3

v4.17.2 - Bugfix: Modal Close Buttons Not Rendered Correctly

Choose a tag to compare

@jongpie jongpie released this 23 Feb 21:56
d375791

Core Unlocked Package Changes

Thanks to @gredrian08 for reporting issue #936 & fixing it in PR #937 🥳

  • Updated several LWCs to correct a problem with the X close button on modals not rendering correctly due to recent changes in SLDS v1 & v2
image

Installation Info

Core Unlocked Package - no namespace

Full Changelog: v4.17.1...v4.17.2

v4.17.1 - Bugfix: Allowing to log SObject without ID field

Choose a tag to compare

@jongpie jongpie released this 23 Feb 17:55
57ffd2c

Core Unlocked Package Changes

Thanks to @TrangOul for fixing issue #911 in PR #912 🥳

  • Updated LogEntryEventBuilder to catch/ignore exceptions caused by an SObject record not having an Id field (platform event objects are the most notable examples of this issue)

Installation Info

Core Unlocked Package - no namespace

Full Changelog: v4.17.0...v4.17.1