Releases: SalesforceLabs/OrgCheck
Oxygen (O, 8)
🚀 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, andorgcheck-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
jsforceversions 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
IsMasterflag 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-pluginpackage has been fully initialized and structured as an extension of the modern SalesforceSfCommandarchitecture. - 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
Escapekey, 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
orglimitpolling 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
keyPrefixwas 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
globalviewdashboard layout. - Gitignore and Workspace Cleanup: Cleaned up overlapping
.gitignoreparameters 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(from4.53.3to4.60.0),@rollup/plugin-terserto1.0.0,lint-stagedto17.0.2, and updated internallernaconfigurations. - Type Frameworks: Shifted base TypeScript packages to
TypeScript 6.0.2. - Testing Engines: Migrated development testing environments to
Jest 30.4.2and upgraded accessibility tracking via@sa11y/jestto8.0.27. - Linter Frameworks: Standardized internal code guidelines across packages by updating
eslintup to10.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@latestNitrogen (N, 7)
This release includes integration with LFS and other cool features
Boron (B, 5)
What's Changed
- Beryllium uat phase 2 by @VinceFINET in #409
- add Development Setup in docs by @RubenHalman in #411
- Vince finet doc patch by @VinceFINET in #415
- Bump ws from 8.17.0 to 8.17.1 by @dependabot in #417
- Bump braces from 3.0.2 to 3.0.3 by @dependabot in #418
- 410 beryllium final uat optimisation by @VinceFINET in #419
- 413 beryllium final uat userdatasetoptimisation2 by @VinceFINET in #420
- Beryllium final uat optimisation by @VinceFINET in #421
- fix: Unit Test should not be covered Beryllium UAT phase 3 - Unit tes… by @VinceFINET in #425
- fix: no link if pagelayout from dependency dialog box #426 by @VinceFINET in #427
- fix: add a limit to the query and filtering with the sharing table an… by @VinceFINET in #430
- fix: check for existing 'includes' method #428 by @VinceFINET in #431
- Bump micromatch from 4.0.5 to 4.0.8 by @dependabot in #435
- fix: profile had count members = 0 systematically #434 by @VinceFINET in #438
- fix: add nb assert count, and also include the use of Assert.Xxx() me… by @VinceFINET in #439
- fix: if test is from package, we can skip the relationship #433 by @VinceFINET in #440
- feat: see why you have system perms on user direclty #441 by @VinceFINET in #442
- fix: changed the criteria to show relationship with names (and not wi… by @VinceFINET in #444
- fix: symboltable is null when it should not Recompilation of ApexClas… by @VinceFINET in #446
- fix: xxx.DurableId issue #432 by @VinceFINET in #449
- 436 unable to get data from custom fields in new version of org check by @VinceFINET in #452
- Link are now available #450 by @VinceFINET in #460
- Resolving issue on firefox #455 by @VinceFINET in #461
- Adding test for the Dependency class and using the same constant for … by @VinceFINET in #466
- Not going t check if flows are active or not. Just correcting a typo … by @VinceFINET in #467
- Implementing a way to agree using org check in production #468 by @VinceFINET in #469
- Typo in Javascript #471 by @VinceFINET in #472
- Using CheckJs instead of migrate to TS by @VinceFINET in #474
- 453 getting typeerror for visual components from org check app in prod by @VinceFINET in #477
- Switching off AutoFetch from JsForce #478 by @VinceFINET in #479
- 476 missing custom objects incorrect reference information by @VinceFINET in #483
- 485 apex class test with asserts flagged as without asserts by @VinceFINET in #486
- Adding flexiPage to sobject describe and add link between flexipage a… by @VinceFINET in #487
- Add more parallel process in recipes and correct Metadata API read me… by @VinceFINET in #491
- 375 possible to run all recipes of a tab so that you already know which sub tab contains errors by @VinceFINET in #492
- Adding FLS to the app #376 by @VinceFINET in #493
- 494 ability to see the list of validation rules for all objects at once and see the ones that are active or not with their object and error messages by @VinceFINET in #495
- Add a help subtab that will include a matrix of score rules also add … by @VinceFINET in #497
- finally done this feature in org check #333 by @VinceFINET in #499
- Adding "restrcited" column in custom fields #498 by @VinceFINET in #500
- 332 complete export by @VinceFINET in #502
- 503 broken links in orgcheck borons homepage by @VinceFINET in #505
- fix #506 by @VinceFINET in #511
- fix label used for score #507 by @VinceFINET in #512
- fix #508 by @VinceFINET in #513
- finalize the export of reasons only when it is necessary Boron UAT - … by @VinceFINET in #519
- remove object and fields linked to trending feature #501 by @VinceFINET in #520
- Boron release by @VinceFINET in #522
New Contributors
- @RubenHalman made their first contribution in #411
Full Changelog: Beryllium...Boron
Beryllium (Be, 4)
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
- Refactoring to LWC, Changing the package in the filter, change all the tables automatically, #314, #315, #316, #340, #348, #354, #355, #356, #366, #367, #368
Analytics
- Tab removed, #357
Lithium (Li,3)
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)
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)
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
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:
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:
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
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
Change log:
- Objects:
- Record Count implemented in this page #55
- Apex:
- Batches:
- Public Groups:
- Technical public group regression fix #101
- Profile & Perm sets:
- 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