Skip to content

Releases: SalesforceLabs/OrgCheck

Oxygen (O, 8)

26 May 13:36
37368d4

Choose a tag to compare

🚀 Org Check — Version Oxygen (v8) Release Notes

Welcome to Org Check Oxygen (v8)! This release marks a significant architectural milestone for the tool, transitioning the codebase into a multi-package repository (monorepo) using Lerna. This structural update aligns the Org Check API, the Salesforce LWC App, and the Salesforce CLI (sf) Plugin into a single, cohesive ecosystem.

With the Oxygen release, you gain a brand-new Command Line Interface plugin, deep insights into sharing rules, an improved cache manager, and structural performance optimizations.


🌟 Key Highlights

1. Architectural Evolution: Monorepo & The Core API Wrapper

  • The "Multipacking" Transition: Org Check has been completely refactored into a multi-package layout managed by Lerna. This isolates business logic into distinct, modular units (orgcheck-api, orgcheck-salesforce-app, and orgcheck-sfdx-plugin).
  • Unified Wrapper Engine: Core data-manipulation layers have been extracted and moved entirely to the API side. By embedding the orchestration wrapper inside the base library, redundant payload filtering and extra data manipulation have been eliminated across both the desktop UI and CLI channels.
  • JSForce Standardization: Standardized the underlying API connection engine by matching jsforce versions across the core library and the LWC Salesforce application layout, ensuring perfect cross-package compatibility.

2. Deep Dive Metadata Additions

  • Object Sharing Rules Analysis (#528): You can now audit Sharing Rules for both standard and custom objects. Org Check itemizes active sharing rules and explicitly surfaces the absolute volume of sharing rules applied per object to help keep you safely below platform limits.
  • Platform Release Updates (#631): Added dedicated tracking for Salesforce Release Updates directly inside the core engine and exposed them via the frontend UI to help administrators stay ahead of upcoming breaking platform changes.
  • RecordType Cleanup: Removed references to the deprecated IsMaster flag on RecordType metadata objects to guarantee long-term compatibility with newer Salesforce Metadata API versions.

3. The Official sf CLI Plugin is Live (#645)

  • Production-Ready Command Suite: The @orgcheck/sfdx-plugin package has been fully initialized and structured as an extension of the modern Salesforce SfCommand architecture.
  • CLI Cache Management: Added native cache handling capabilities directly inside the terminal interface to let you manage local metadata storage without needing to boot up a browser session.
  • Explicit Terms Enforcement: To prevent automated runtime accidents, the CLI/API will now explicitly throw exceptions if required usage terms are not programmatically accepted via flags.

4. UI/UX & Quality-of-Life Enhancements

  • Data Refresh Controls (#642): Added a dedicated interactive button directly on the primary viewing pages allowing users to force-refresh active metadata without a complete application restart.
  • Enhanced Cache Manager UI: Re-imagined the internal cache controller dashboard with clearer metrics, better UI layouts, and automated troubleshooting signals.
  • UX Micro-interactions: Modals can now be instantly dismissed using the keyboard Escape key, loading spinners have been updated for smoother transitions, and the animated application logo has been refreshed to visually reflect the v8 release.
  • Actionable Errors & Tips (#621): The error modal system now populates intelligent tips alongside exceptions, assisting administrators with quick debugging suggestions whenever a metadata scan fails.

🛠️ Bug Fixes & Refactorings

🛡️ AppExchange & Security Compliance

  • AppExchange Security Scanning Alignment: Patched several code patterns to proactively fix code violations surfaced by automated AppExchange source scanners.
  • Hardcoded URL Resolution (#674): Eradicated hardcoded Salesforce instance URL patterns within both the application and CLI plugins, ensuring proper routing across specialized MyDomain configurations.
  • Explicit Org Limit Checking (#643): Restructured how platform boundaries are validated by switching to explicit orglimit polling routines.

🐛 Critical Bug Fixes

  • Circular Definition Erasure: Patched a critical bug that caused stack crashes during massive org scans by stripping internal cross-references from final object outputs, eliminating infinite circular loops.
  • Numeric KeyPrefix Support: Fixed data export routines failing on specific objects whose unique Salesforce keyPrefix was composed entirely of digits (such as standard Account frameworks).
  • Bad URL and Global-View Mapping (#634, #674): Patched target instance detection logic to resolve analytical edge cases within the globalview dashboard layout.
  • Gitignore and Workspace Cleanup: Cleaned up overlapping .gitignore parameters and deleted redundant generated development files across the workspaces to maintain lean build targets.

📦 Dependency Upgrades

A massive automated effort went into framework modernization and vulnerability patching across all sub-packages via Dependabot integrations:

  • Core Compilers & Workspaces: Upgraded rollup (from 4.53.3 to 4.60.0), @rollup/plugin-terser to 1.0.0, lint-staged to 17.0.2, and updated internal lerna configurations.
  • Type Frameworks: Shifted base TypeScript packages to TypeScript 6.0.2.
  • Testing Engines: Migrated development testing environments to Jest 30.4.2 and upgraded accessibility tracking via @sa11y/jest to 8.0.27.
  • Linter Frameworks: Standardized internal code guidelines across packages by updating eslint up to 10.1.0.

💾 Get Started with v8

Local Installation for CLI Developers

To install or upgrade the local CLI suite alongside the newly restructured monorepo layout:

sf plugins install @orgcheck/sfdx-plugin@latest

Nitrogen (N, 7)

10 Feb 07:50

Choose a tag to compare

This release includes integration with LFS and other cool features

Boron (B, 5)

25 Apr 14:07

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: Beryllium...Boron

Beryllium (Be, 4)

16 May 13:04
7e22812

Choose a tag to compare

Global

  • Global filter in the app with package, type object and objet. Buttons to apply the change and reset the values, #3, #296, #325, #326, #370
  • App is migrated from VisualForce to LWC. Reducing the number of VFP and CustomTab. And also more UI capabilities., #269
  • For production use, the setting is located on the global filter, #275, #349, #363
  • Packaging the new version, Cleanup, etc., #279, #334, #335, #336, #342, #346
  • Refactoring Cache Manager to LWC, Available directly on the home page, #282, #371
  • Refactoring Datatable component to LWC, UI improvements, #295, #297, #298, #299, #305, #330, #339
  • For some LWC component, tests have been written. :D, #327
  • Dependency Graphical view in the app migrated to LWC, #302, #306, #307, #338,
  • Checking minimal permission of the current user before starting the app, #341, #350, #365
  • Showing the information of the org and daily limit limit, #343, #345
  • Export button for each datatable is now dowloading REAL excel files (and not just csv files), #347
  • Spinner additional animation (counts the numer of seconds!), #353
  • New permission set in the app to make sure you can access the app and main visual force page, #361, #364
  • Fix UI issues, #373, #377
  • Score column is now clickable with explaination #374
  • Fix Score #381 #383
  • Fix DAPI usage #386
  • Fix Cache expiration #379
  • Fix if error shows up #378

API

  • All the logic of the app is included in an API. The other part of the application just make it nice to see., #300, #301, #304, #362,

Objects

  • Refactoring to LWC, Changing the package, type and object in the filter, update the object pane automatically., #322, #323

Custom Fields

  • Refactoring to LWC, Changing the package, type and object in the filter, update the table. Adding if field is indexed., #358

Profiles and PermSets

  • Refactoring to LWC, Changing the package in the filter, change the profile and permission set tables automatically, #303, #351
  • Profile should also have a type property with "Profile" #382

Role Hierarchy

Public Groups and Queues

  • Refactoring to LWC, #320

Automations

  • Refactoring to LWC, Changing the package in the filter, change all the tables automatically, #317, #318, #319

Custom Labels

  • Refactoring to LWC, Changing the package in the filter, change the custom label table automatically, #308

Visual Components

  • Refactoring to LWC, Changing the package in the filter, change all the tables automatically, #309, #310, #311, #312, #313

Apex

Analytics

Lithium (Li,3)

07 Mar 17:11
391e426

Choose a tag to compare

Global:

  • Fix the table sort for numerical values (in some minor cases) #226
  • Add an icon on Error Dialog box
  • Add a specific icon and title when showing the Watchdog Error Dialog box #250
  • App was still referencing previous GitHub hosting #251

Profile and Permission sets:

  • Fix error on Password Policies #239
  • Add if the app is the default or not in the comparator #245
  • Show the number of FLS and CRUDs object in Permission Sets #226
  • Fix another error on Password Policies (Metatdata API return Pwd Policy for deleted Profiles!!!) #249

Objects:

  • Error on Custom Object tab #238

Public Groups:

  • Error on Public Group #240

Helium (He,2)

01 Feb 11:08
4a518d5

Choose a tag to compare

Global:

  • UI enhancement -- Number of line in datatable -- DONE #207
  • UI enhancement -- Multiple warning messages -- DONE #208
  • Functional enhancement -- Error in sorting "Not Used" column -- FIXED #203
  • UI enhancement -- Mascot animation is breathing more -- DONE #229
  • UI enhancement -- Removing org name in green badge, that takes space for no value -- DONE #211
  • UI enhancement -- Remove userAgent in error -- DONE #214
  • UI enhancement -- Sticky datatable -- DONE #158
  • Branding -- "OrgCheck" becomes "Org Check" -- DONE #217
  • Various Errors -- null checking in code -- FIXED #223 #232
  • UI enhancement -- Datatable improvements -- DONE #225 #227 #228
  • UI enhancement -- Shrinking description in datatables -- DONE #230
  • UI enhancement -- Move potential large columns on the right in datatables -- DONE #231
  • Functional enhancement -- Dependencies excludes obsolete Flows ;) -- DONE #222

Home:

  • UI enhancement -- Cleaning on the home page -- DONE #200
  • Intellectual Property -- License correction in terms of IP -- DONE #210
  • Error with preferences -- Get default options for preferences -- DONE #213

Batches:

  • Error in batches -- CronJobDetail can be null -- FIXED #202

Objects:

  • Wrong links on custom fields -- Object link and Field link correction -- FIXED #196
  • Error when selecting some object -- Removing JsForce cache when describing SObject -- FIXED #197
  • Functional enhancement -- Shield encryption info -- DONE #106

Apex:

  • UI enhancement -- Subtab for recompiled classes -- DONE #204
  • Functional enhancement -- Add compilation of specific classes -- DONE #209

Profiles:

  • Functional enhancement -- Comparator CRUD matrix -- DONE #107
  • Functional enhancement -- Comparator Application matrix -- DONE #109
  • UI enhancement -- Profile table was not sticky! -- FIXED #158
  • Functional enhancement -- Password Policy tab -- DONE #94

Automations:

  • Functional enhancement -- Add ApiVersion for Flows and PB -- DONE #220

Hydrogen (H,1)

05 Aug 16:30

Choose a tag to compare

Global:

  • Putting all resources into ONE unique Static Res! #190
  • INVALID_QUERY_LOCATOR when more than 10 cursors opened simultaneously #72
  • Make OrgCheck not usable if run from a Production org which is not a Trial nor a Demo org #182
  • Restructure the Javascript code #187
  • Make OrgCheck available in other languages than English #159
  • From v53.0 api to v55.0 #186
  • Remove the alert/pop up on Apex page, Batch page and Role page (because the yellow warning is enough) #185
  • Remove any trace of login from another org (authorize page and code) #184
  • Bring back the idea to connect to a remote org please!!! --> killed it! #12
  • Add CumulusCI enhancement #138
  • Monitor the size of the javascript #166
  • Add date of creation on metadata tables #127
  • Progress message when loading information #167
  • Global: when the data is loading the "Hover in this zone" does not work #164
  • Add # row in datatable #169

Objects:

  • Object Limits displayed on Object page does not match Object Manager --> Object Limits page bugSomething isn't working #123
  • Duplicates in SObjects page #162
  • SObject page: external object shows platform event object which is wrong
  • Alert on SObject page shows "null" #161
  • Sobjects alerting is not perfect #168
  • Sobject page show the api name in the picklist along with the labels #170

Apex:

  • Apex description page should include buttons/icons fr greater clarity #165
  • Scan for asserts in apex test classes enhancement #175
  • Launch Apex Tests from OrgCheck enhancement #177

Users:

  • Identify users that will have the notification about expiring certificates #180
  • OrgCheck Versions after 1.9.7 will follow the Mendeleiv Symbols enhancement #183

Profiles:

  • Profiles/Permissions tab resulting in an error #176

Feedback from Security Review:

  • Feedback From Security Review: Dependency tree #171

Automations:

  • Unable to open Automations tab #152
  • Error in Automation tab bug #137
  • Automations Error #120
  • Automations Error #103
  • Error Running Automation analysis in partial sandbox #44

Visual Components:

  • Problem running check on Visual Components #45

1.9.7

10 Feb 17:39

Choose a tag to compare

Feedback from Security Review:

  • Correction of the vulnerability on Object Tab #141
  • Correct vulnerability on analytics tab and apex tab #141
  • Correct vulnerability on other tabs #141
  • Correct SOQL Injection vulnerability #142
  • Mandatory CRUD and FLS enforcement call to ANY REST queries #143
  • Fixing issue with IN selection #143
  • Ready for REVIEW big time!! #143
  • Security safe for no opener when openning a blank page

Home page:

  • Typo in home tab #146
  • Mentionning licences for thirds party software #147 #148

Objects:

  • Message if no sobject #154

Custom Fields:

  • Additional columns in custom field tab #149

Users:

  • Syntax issues for Users page #141

Roles:

  • Add a warning on role, apex and batches #151

Apex:

  • Add a warning on role, apex and batches #151

Batches:

  • Add alert on batch tab #150
  • Add a warning on role, apex and batches #151

Global:

  • Shortcut enhancements
  • Permission Set issue - missing system permission #144
  • Fixing ordering issue with numeric in datatable #136
  • Fixing issue #145
  • Update 3Djs and correct some impact after update #148
  • Update JsForce #147
  • Footer added for the table #155
  • Correction of some bugs #149
  • Externalize the dependency count check so that other page can benefit…
  • Add these new colums when necessary to other tabs #149
  • countUsing and countUsed small bug #149
  • Add a hint message on the Score icon #153
  • Putting the help text below the subtitles in the page to make it clea…
  • Rest of the page have now also the description section #153
  • Last fine tuning #153
  • Screenshots for v1.9.7
  • Update README.md
  • Add nicer helping text #156

1.9.6

13 Dec 21:54
e0683e0

Choose a tag to compare

Objects:

  • Object Documentation Export button doesn't work #131
  • Add Custom Metadata Types and Custom Settings to OrgCheck - with scores #116
  • Error trying to see OrgCheck documentation #118
  • OrgCheck --> Objects - Tables are replicated #122

Reports and Dashboards:

  • Add reports, dashboards and custom report types in the app #7

Automations:

  • Not all Flows are listed in the Flows sub-tab #130

Roles:

  • Community Roles are always in the Role Explorer (whatever the option in the home page) #132

Global:

  • Download a tabular representation of dependencies #124
  • Change the home page #133
  • UNKNOWN_EXCEPTION An unexpected error occurred. Please include this ErrorId if you contact support... #73
  • Security Review #125
  • ANONYMISATION when error dialog pops up generating an error for some customers #126
  • Row count at the top of every list #115
  • Modal dialog box should close when hitting "ESCAPE" button #119
  • I want to know in which Object a Field is? #110

1.9.5

08 Jul 16:26
f5d0274

Choose a tag to compare

Change log:

  • Objects:
    • Record Count implemented in this page #55
  • Apex:
    • Code coverage for apex classes #91 #98
    • Related Tests in table #91
    • Add default value to coverage set to zero #97
    • Add the ability to check if triggers contain direct SOQL or DML #87
    • Add a sub-tab about number of triggers by objects #102
  • Batches:
    • Some improvements in the Batches pages #96
    • Unscheduled Apex Classes #6
  • Public Groups:
    • Technical public group regression fix #101
  • Profile & Perm sets:
    • PermissionSet Group compliant #1
    • first prototype for CRUDs #104
    • CRUDs beta version available upon preference settings #104
    • Include bypass when PermSetGroup unknown in the org #111
  • Global:
    • Fix on null alternative when exporting #97
    • DataTable Layout - Option 2 #89
    • DataTable Layout - Let's try another option #89
    • New Mascot
    • New mascot (improvements)
    • Nicer progress bar
    • Progression bar second version
    • Fix wrong error method name #112
    • Refactor method names of callbacks and include error handling #112