Untangling the Web: Visualizing Salesforce Metadata Dependencies

Salesforce provides the “Where is this used?” button, but in a complex Org with years of technical debt, that linear list often isn’t enough. You need to see the web of connections to understand the impact truly.

Enter dependency_viewerโ€”a CLI and web-based tool designed to visualize your Salesforce metadata dependencies, analyze code health, and help you make changes with confidence.

The Problem with Complexity

As Salesforce Orgs mature, metadata relationships become a spaghetti intersection of Apex, Triggers, Custom Objects, and Pages. Standard dependency APIs are powerful, but they are often slow to query in real-time and return raw data that is hard to mentally model.

The Solution: Local Data, Visual Graph

The dependency_viewer solves this by taking a hybrid approach:

  1. Extract: It uses the Salesforce Tooling API via the sf CLI to fetch dependency data.
  2. Store: It saves this data into a local SQLite database for instant access.
  3. Visualize: It renders an interactive node graph in a React-based web interface

Note! It is also possible to source the dependencies on demand on from Salesforce without extracting them into the local database

Interactive Visualization

  • Group and Drag: Organize nodes to match your mental model of the architecture.
  • Filter: Search for specific metadata to isolate subsystems.
  • Trace Paths: Clearly see how a change in a utility class cascades up to a Trigger or Page
  • Show orphans only: Identify quickly metadata that does not have any dependencies. These are possible candidates for deletion
  • Show highly connected nodes: Identify quickly metadata that have high amount of dependencies.
  • Find Island clusters: Identify group of dependent metadata that could possibly be isolated to packages
  • Find large metadata: The size of the nodes corresponds to the size of the metadata, especially useful when identifying “God Classes” that are doing too much
  • Find Apex classes and trigger with low coverage: Apex test coverage is visualized on Apex classes to be able to easily identify which classes have low (or no coverage)

Dependency visualization helps with:

๐Ÿ›  Safe refactoring
๐Ÿ”„ Technical debt cleanup
๐Ÿš€ Release planning
๐Ÿ” Impact analysis before deployments
๐Ÿ“‰ Reducing production incidents

salesforce metadata dependency graph

Note! Salesforce Metadata Dependency does not include all metadata dependencies

https://github.com/ruohomaa/dependency_viewer

Leave a comment