v4.14.0 - Summer '24 Release
Managed Package Release - v4.14.0
Happy late Summer '24 release! 🥳😎☀️ It's still technically summer, even if the Winter '25 release is quickly approaching 😅
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.13.0
and v4.14.0
by reviewing:
- The v4.14.0 milestone to see all of the issues & pull requests that are included in the this release.
- The diff between v4.13.0 and v4.14.0 to see all of the code & metadata changes that have been committed since the last managed package release.
For orgs that are upgrading to this version of the managed package: There are several notable changes for this release, including...
-
✅ This release now provides a ton of new features (these features have been available in the unlocked package for a few months, but are new for the managed package):
-
Release
v4.13.1
- ❤️ Apex observability enhancments 😍. Nebula Logger now automatically logs a snippet of your Apex code, providing a snapshot of the relevant codeblock. These snippets are displayed in a very fancy code-viewer on theLogEntry__c
page, using PrismJS- This release also introduced several new fields on
LogEntryEvent__e
andLogEntry__c
to streamline & simplify reporting on the metadata that generated each log entry
- This release also introduced several new fields on
-
Release
v4.13.2
- org limits are now automatically stored on everyLog__c
record, using the info returned by the classSystem.OrgLimits
-
- It also introduced a new
LoggerParameter__mdt
record,StoreOrganizationLimits
, that can be used to disable capturing org limits data. By default, it's enabled (true
)
- It also introduced a new
-
-
Release
v4.13.3
- Optionally enforce scenario-based logging usage, for teams that want to always require scenario-based logging to be used. -
Release
v4.13.5
- Several internal performance improvements were made to Nebula Logger's codebase (in thelogger-engine
layer/directory) to help reduce CPU time usage.- It also introduced a new
LoggerParameter__mdt
record,StoreHeapSizeLimit
, that can be used to disable populating the fieldsLogEntryEvent__e.LimitsHeapSizeUsed__c
andLogEntryEvent__c.LimitsHeapSizeUsed__c
. This can help further improve performance for orgs that generate a lot of log entries in a single transaction, as calling the methodSystem.Limits.getHeapSize()
is a very CPU-intensive method call.
- It also introduced a new
-
Release
v4.13.14
- Custom field mappings support. This provides a way to easily extend Nebula Logger's data model by creating & populating your own custom fields on Nebula Logger's custom objects
-
-
🐞This release was delayed a few months so that some additional bugs could be fixed that impacted multiple orgs/companies using the managed package:
- Release
v4.13.15
: Bugfix for the fieldLogEntryEvent__e.BrowserUrl__c
not being long enough to store some URLs, which caused some logging data to fail to save - Release
v4.13.16
: Bugfixes for some issues related to scenario-based logging & theLoggerScenarioRule__mdt
custom metadata type, which caused some logging data to fail to save - Release
v4.13.7
: Bugfixes for a lot of issues with JavaScript stack trace parsing, which caused inaccurate & incomplete data to be saved in fields likeLogEntry__c.OriginLocation__c
,LogEntry__c.OriginSourceApiName__c
,LogEntry__c.OriginSourceActionName__c
, etc. JavaScript stack trace parsing has been completely rewritten, and now usesstacktrace.js
to handling parsing
- Release
Core Unlocked Package Changes - v4.14.0
This release is fairly small for the unlocked package, compared to the previous release of v4.13.17
. However, this release is a milestone - it's the 100th package version of the unlocked package 💯 🥳 🪵 (The 100th release of Nebula Logger as a project was release v4.13.2
, but the unlocked package wasn't created until release v4.4.1
)
Summer '24 Release Upgrade
- Bumped all metadata to API v61.0 (Summer '24 release)
- Also updated the list of picklist values in several 'API version' picklist fields
- Resolved #697 by updating
LogEntryRecordPage
andLogRecordPage
flexipages to conditionally display tabs (tab-visibility functionality was added in Salesforce's Summer '24 release)- Also eliminated the tab "Database Result Details" on
LogEntryRecordPage
& consolidated its contents to instead be part of the tab "Related Records". This keeps all of the fields related toSObject
data grouped together.
- Also eliminated the tab "Database Result Details" on
New LogEntry__c
List Views
- Added 5 new list views on
LogEntry__c
Metadata & Code Cleanup
- Deprecated the formula field
LogEntry__c.LoggingLevelWithImage__c
, and reverted to only usingLogEntry__c.LoggingLevel__c
. The emojis shown inLoggingLevelWithImage__c
have now been added to the labels of the picklist values in the global value setLoggingLevel
.- By adding the emojis to the picklist values of
LoggingLevel__c
, it provides the same visual indicator asLoggingLevelWithImage__c
, butLoggingLevel__c
provides a meaningful sort order in list views, queries, etc. - sorting onLoggingLevelWithImage__c
doesn't provide a very meaningful sort order. ⚠️ Existing list views have been updated to useLoggingLevel__c
, which will automatically be changed for orgs upgrading versions of the unlocked package. But for orgs using the managed package, the list views will not be automatically updated, you will need to manually update the list views' selected fields (if desired).
- By adding the emojis to the picklist values of
- Fixed #688 by updating
LoggerSettingsController_Tests
to callLogManagementDataSelector.getInstance().getUsersByNameSearch()
, instead of duplicating the query - Updated the descriptions of the 4 included permission sets to clarify what each one provides
- Code cleanup (internal use only): Updated
public
instance methodLogEntryEventBuilder.setTimestamp()
to use a fluent API, and streamlined the existing usages ofsetTimestamp()
in several other classes by updating to use the fluent API
Pipeline & Dev Changes
- Fixed a flaky pipeline integration test in
nebula-logger/extra-tests/tests/LogEntryEventHandler_Tests_FieldMappings.cls
- Added some
sf
CLI environment variables tobuild.yml
to disable checking for updates during pipeline runs- The
sf
CLI is periodically upgraded in the repo, there's no need for the pipeline to check during every run
- The
- Added new scratch org def file
config/scratch-orgs/dev-scratch-def.json
that will only be used for development (not in the pipeline or when creating package versions)- Also renamed the existing scratch def files to have a 'build-' prefix to clarify their purpose vs the (new) dev def file
- Added new
path
tosfdx-project.json
fornebula-logger/dev/
to store some extra metadata that's used during dev. This metadata doesn't impact Nebula Logger directly & is not included in Nebula Logger's packages- This new path is now the default in
sfdx-project.json
for creating/retrieving new metadata
- This new path is now the default in
Installation Info
Core Unlocked Package - no namespace
Full Changelog: v4.13.17...v4.14.0
- SF CLI:
sf package install --wait 20 --security-type AdminsOnly --package 04t5Y0000015oPvQAI
- SFDX CLI:
sfdx force:package:install --wait 20 --securitytype AdminsOnly --package 04t5Y0000015oPvQAI
- Sandbox: https://test.salesforce.com/packaging/installPackage.apexp?p0=04t5Y0000015oPvQAI
- Production: https://login.salesforce.com/packaging/installPackage.apexp?p0=04t5Y0000015oPvQAI
Core Managed Package - Nebula
namespace
Full Changelog: v4.13.0...v4.14.0
- SF CLI:
sf package install --wait 20 --security-type AdminsOnly --package 04t5Y0000015oPqQAI
- SFDX CLI:
sfdx force:package:install --wait 20 --securitytype AdminsOnly --package 04t5Y0000015oPqQAI
- Sandbox: https://test.salesforce.com/packaging/installPackage.apexp?p0=04t5Y0000015oPqQAI
- Production: https://login.salesforce.com/packaging/installPackage.apexp?p0=04t5Y0000015oPqQAI