Meshie
All documentation

The graph

Everything Meshie answers is a query over one structure: typed nodes, typed edges, and an id scheme that lets a field in Salesforce and a column in Snowflake sit in the same graph without pretending to be the same kind of thing.

Nodes

A node is one thing in one system: a Salesforce field, a HubSpot workflow, a dbt model, a Make scenario, a picklist value. Every node carries its component type, its API name, and a link back to its parent where it has one (a field’s object, a column’s table).

Types are never shared across systems. A HubSpot property is HubspotProperty, not CustomField, even though the two play the same role, because collapsing them would make the type describe which parser ran rather than what the thing is.

Node ids

Every node has a stable, system-qualified id. It is the string you paste into Impact, pass to the CLI, and see in an API response:

salesforce:CustomField:Account.Status__c
hubspot:HubspotProperty:contacts.firstname
snowflake:SnowflakeColumn:GTM.PUBLIC.ACCOUNTS.EMAIL
dbt_cloud:DbtModel:model.jaffle_shop.orders
fivetran:FivetranTable:conn_1.salesforce.account

The shape is <system>:<ComponentType>:<name>. Treat the whole thing as opaque: the parts are there so a human can read it and so ids from different systems cannot collide, not as a format to parse and reassemble.

Edges

An edge is a directed reference: this flow filters on that field, this Apex class queries that object, this Fivetran Activations sync writes that column into that destination. Each one carries four things beyond its endpoints.

Fieldedge_typeWhat it isWhat kind of reference it is: REFERENCES_IN_FORMULA, FILTERS_ON, SOQL_QUERY, LAYOUT_PLACEMENT, SYNCS_INTO, UNKNOWN and a dozen more.
FieldtierWhat it isHow it was established: declared, observed or inferred. See Tiers and confidence.
FieldconfidenceWhat it is0 to 1. An exact match in configuration is 1; a heuristic match is lower, and says so.
FieldevidenceWhat it isThe file, and where available the line, that the reference was read from. Every claim traces back to a place you can open.

Edges also carry which extractor produced them, which is how a wrong edge gets tracked back to the parser that invented it rather than being argued about in the abstract.

What a query does with it

  • Impact walks edges backwards from a target: the direct references first, with full evidence, then everything within a few hops, grouped by system. Beyond the first hop you get the node and the hop radius, not a full attributed path, because the traversal returns a reached set and claiming per-edge evidence for a chain would overstate what is known.
  • Unused is in-degree zero over the resolved reference types, with managed-package fields excluded.
  • Ask calls those same two functions as tools. The assistant does not have its own view of your metadata; it can only report what the deterministic queries return.