Data catalog
The catalog is the searchable inventory of every table DataRunner has seen across your connections — schema, columns, last scan time — annotated with the descriptions and tags your team adds.
- Read
- 3 min
- Sections
- 4
- Plans
- All plans
What the catalog tracks
Every time DataRunner introspects a connection, it records each table as a catalog asset: the table name, its schema, the originating connection, and the timestamp of the last scan. The catalog view lets you search across all connections and filter by connection.
- Table — the introspected table name
- Schema — owning schema (e.g.
public) - Description — human-written context (you add this)
- Connection — which connection it came from
- Last scan — when the schema was last refreshed
Populating the catalog
Assets appear automatically as connections are introspected — testing a connection or running a schema refresh fills the catalog. If a catalog is empty, run a schema refresh on the connection to populate it. Workspace-wide and per-connection refreshes both require an admin.
Describe and tag
Add a description and tags to any asset so teammates know what a table means and who owns it. An asset can also carry an owner, so "who do I ask about this table" has an answer.
PATCH /api/v1/catalog/assets/{id}
Authorization: Bearer <token>
Content-Type: application/json
{
"description": "One row per fulfilled order. Source of truth for revenue.",
"tags": ["finance", "core"]
}Lineage and impact analysis
Alongside the asset inventory, DataRunner records a lineage graph: directed edges from one object to another, detected as queries and downstream objects are saved. Nodes are identified by a kind and an id, and the graph spans more than tables:
- table — a catalog asset
- query — a saved query that reads it
- report and dashboard — built on those queries
- notebook, watch, monitor, campaign, sync — anything else that consumes them
The impact endpoint answers the question that matters before a migration: if this table changes or goes away, what breaks? It walks the graph downstream from a node and returns everything that depends on it.
GET /api/v1/lineage/impact?kind=table&id=public.orders
Authorization: Bearer <token>
# Everything downstream of that table: the queries that read it, the
# reports and dashboards built on those queries, the watches and
# monitors that depend on them.