Salesforce Inspector Reloaded
!GitHub releaseDocumentation
User guide for using the extension.
- Salesforce Developers Blog Improve Your Productivity with Salesforce Inspector Reloaded
- SalesforceBen :
New features compared to original SF Inspector
New Pages & Features
- REST Explorer: Interact with Salesforce REST APIs directly from the extension with request templates, query history, and auto-completion
- Dependencies Explorer: Analyze Salesforce metadata dependencies to understand what depends on your metadata and what your metadata depends on
- Field Manager: Create and edit fields for standard objects, custom objects, platform events, and custom metadata types with bulk import support
- Flow Scanner: Analyze Salesforce Flows for best practices, errors, and potential issues with comprehensive rule checking
- Object Scanner: Load and export a customizable data model, search objects and fields (
Account.Name), and optionally run hygiene analysis - Debug Logs Viewer: View, filter, analyze, and manage Salesforce debug logs with Agentforce-powered analysis and grep-like filtering
- Event Monitor: Subscribe to and display Salesforce Platform Events in real-time, including Change Events and custom channels
- Metadata Retrieve: Retrieve and deploy metadata from Salesforce with package.xml generation and deployment options
- API Statistics: Track and monitor all REST and SOAP API calls with performance metrics and error tracking
- Options: Configure extension settings including favicon color picker, export/import configuration, custom shortcuts, default popup tab, and hide buttons options
Enhanced Features
- Show All Data (Inspect page):
- Popup:
- Data Export - Documentation:
- Data Import - Documentation:
- Org Limits:
Other Improvements
- Favicon and banner customization for each org
- Allow users to update API Version feature 58
- Add new "Shortcuts" tab to accelerate setup navigation feature 42
- Add shortcuts links to (list of record types, current SObject RecordType and object details, show all data from user tab) from popup feature 34
- Control access to Salesforce Inspector reloaded with profiles / permissions (Implement OAuth2 flow to generate access token for connected App) how to
- Update manifest version from v2 to v3 (extensions using manifest v2 will be removed from the store)
Security and Privacy
The Salesforce Inspector Reloaded browser extension/plugin communicates directly between the user's web browser and the Salesforce servers. No data is sent to other parties. We are saving some info in the browser localStorage to avoid redundant queries and save user extension's preferences. None of the saved elements are related to Salesforce SObject data (Account, Contact etc.) You can find the list of all the localStorage saved here and inspect what is stored by following this tutorial The extension communicates via the official Salesforce webservice APIs on behalf of the currently logged in user. This means the extension will be capable of accessing nothing but the data and features the user has been granted access to in Salesforce. All Salesforce API calls from the Inspector re-uses the access token/session used by the browser to access Salesforce (or the generated on if API Access Control is enabled). To acquire this access token the Salesforce Inspector requires permission to read browser cookie information for Salesforce domains. To validate the accuracy of this description, inspect the source code, monitor the network traffic in your browser or take my word.Use Salesforce Inspector with a Connected App
Follow steps described in how-to documentation. Note: you must complete these steps to use the extension in orgs where "API Access Control" is enabled.Installation
Browser Stores
Beta Version
Welcome to the beta testing phase! Your input is crucial for refining our extension. Here's why we need you: Why Beta Testing?- Diverse Testing: Identify issues across various setups.
- Real-World Scenarios: Discover unforeseen issues in different user contexts.
Local Installation
- Download or clone the repo.
- Checkout the
releaseCandidatebranch. - Open
chrome://extensions/. - Enable
Developer mode. - Click
Load unpacked. - Select the
addonsubdirectory of this repository.
Troubleshooting
- If Salesforce Inspector is not available after installation, the most likely issue is that your browser is not up to date. See instructions for Google Chrome.
- When you enable the My Domain feature in Salesforce, Salesforce Inspector may not work until you have restarted your browser (or until you have deleted the "sid" cookie for the old Salesforce domain by other means).
Contributions
Contributions are welcome! Before starting developments, create a feature request and explain the goal of it and the uses cases that it addresses. Let's discuss the implementation first, then you can start the development. You can check for the open issues and check if any help is wanted Project Structureaddon/: Contains the extension source code.addon/inspector.js: Handles Salesforce connection and API calls.addon/utils.js: Common utility functions.addon/components/: React components.
- SLDS Usage: When creating new components, use Salesforce Design System (SLDS) classes and structure.
addon/styles/slds/slds.css.
- Location: Save new components under the
addon/components/folder to promote reusability (e.g., see existing components likePageHeader.js,ConfirmModal.js).
- Check Existing: Before creating new functions, search the codebase (especially
addon/utils.js) to see if existing logic can be reused to avoid duplication.
- When modifying the UI, check both Chrome and Firefox compatibility if possible.
- Use
browsernamespace for WebExtension APIs (polyfill provided or checked).
Submitting a Pull Request
To submit a PR, please create a branch fromreleaseCandidate which is the work in progress next version.
This branch will be merged into beta and then master when the new version is published on web store.
- Update CHANGES.md: Describe the improvement / bugfix you realized (latest contributions on top of the file).
- Update Documentation: In order to make sure everyone who reads documentation is aware of your improvement, update the 'how-to' page to document / expose this new functionality.
- Linting: To assure indentation, formatting and best practices coherence, please install ESLint extension.
Development
- Install Node.js with npm
npm install
Chrome
- Open
chrome://extensions/. - Enable
Developer mode. - Click
Load unpacked. - Select the
addonsubdirectory of this repository.
Firefox
- Generate the Firefox add-on with
npm run firefox-release-build. This copiesaddon/manifest-firefox.jsontotarget/firefox/dist/manifest.json(seescripts/release-build.js). - In Firefox, open
about:debugging. - Select
This Firefoxat the top left. - Click
Load Temporary Add-on…. - Select the file
target/firefox/dist/manifest.json.
Unit tests
See How to run tests.Linting
npm run eslint
Design Principles
(we don't live up to all of them. pull requests welcome)- Stay completely inactive until the user explicitly interacts with it. The tool has the potential to break Salesforce functionality when used, since we rely on monkey patching and internal APIs. We must ensure that you cannot break Salesforce just by having the tool installed or enabled. For example, we won't fix the setup search placeholder bug.
- For manual ad-hoc tasks only. The tool is designed to help administrators and developers interact with Salesforce in the browser. It is after all a browser add-on. Enabling automation is a non-goal.
- User experience is important. Features should be intuitive and discoverable, but efficiency is more important than discoverability. More advanced features should be hidden, and primary features should be central. Performance is key.
- Automatically provide as much contextual information as possible, without overwhelming the user. Information that is presented automatically when needed is a lot more useful than information you need to explicitly request. For example, provide autocomplete for every input.
- Provide easy access to the raw Salesforce API. Enhance the interaction in a way that does not break the core use case, if our enhancements fails. For example, ensure we can display the result of a data export even if we cannot parse the SOQL query.
- It is fine to implement features that are already available in the core Salesforce UI, if we can make it easier, smarter or faster.
- Ensure that it works for as many users as possible. (for system administrators, for standard users, with person accounts, with multi currency, with large data volumes, with professional edition, on a slow network etc.)
- Be conservative about the number and complexity of Salesforce API requests we make, but don't sacrifice the other principles to do so.
- Focus on system administrators, developers and integrators.
About
By Thomas Prouvot and forked from Søren Krabbe and Jesper KristensenThird-Party Libraries
This extension uses the following third-party libraries:- Lightning Flow Scanner Core - A lightweight engine for Flow metadata analysis in Node.js and browser environments (MIT License)
- PrismJS - Lightweight, extensible syntax highlighter (MIT License)