# datarecce/recce architecture

> Architecture diagram of the GitHub repository datarecce/recce, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/datarecce/recce
- Repository: https://github.com/datarecce/recce

## Overview

Recce is a dbt change-review application: data teams launch a local server, inspect model and column lineage, run comparisons or queries across environments, and record findings in a review checklist. The UI presents lineage, query, and check workflows; its API layer connects those workflows to the Python server and comparison tasks. Recce Cloud adds collaboration and checklist synchronization. The README documents capabilities beyond the sampled source, so those are represented at subsystem level; unsampled backend wiring is left general rather than inferred.

Main entry points: [`js/app/page.tsx`](https://github.com/datarecce/recce/blob/main/js/app/page.tsx) (Recce web app), [`js/packages/ui/src/api/index.ts`](https://github.com/datarecce/recce/blob/main/js/packages/ui/src/api/index.ts) (UI API clients), [`js/packages/ui/src/components/query/QueryPageOss.tsx`](https://github.com/datarecce/recce/blob/main/js/packages/ui/src/components/query/QueryPageOss.tsx) (Query workflow), [`js/packages/ui/src/components/check/CheckPageContentOss.tsx`](https://github.com/datarecce/recce/blob/main/js/packages/ui/src/components/check/CheckPageContentOss.tsx) (Checks and checklist)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Review UI"]
  node_ui["Recce web app<br/>[page.tsx]"]
  node_lineage["Lineage and impact<br/>[LineagePageOss.tsx]"]
  node_queryui["Query workflow<br/>[QueryPageOss.tsx]"]
  node_checkui["Checks and checklist"]
  node_results["Diff result views"]
  node_api["UI API clients<br/>[index.ts]"]
end

subgraph group_backend["Local Recce"]
  node_server["HTTP server<br/>[server.py]"]
  node_querytask["Query tasks<br/>[query.py]"]
end

subgraph group_review["Impact Checks"]
  node_lineageapi["Lineage selection<br/>[select.ts]"]
  node_queryapi["Query and diff API<br/>[adhocQuery.ts]"]
  node_checkapi["Check APIs<br/>[checks.ts]"]
end

subgraph group_cloud["Cloud Collaboration"]
  node_cloudclient["Cloud API client<br/>[client.py]"]
  node_cloudchecks["Cloud diagnostics"]
end

node_reviewer(("Data reviewer"))
node_warehouse[("dbt warehouse")]
node_cloudservice["Recce Cloud"]

node_reviewer -->|"uses"| node_ui
node_ui -->|"opens lineage"| node_lineage
node_ui -->|"opens query"| node_queryui
node_ui -->|"reviews checks"| node_checkui
node_lineage -->|"requests selection"| node_lineageapi
node_queryui -->|"submits queries"| node_queryapi
node_checkui -->|"manages checks"| node_checkapi
node_lineageapi -->|"uses client"| node_api
node_queryapi -->|"uses client"| node_api
node_checkapi -->|"uses client"| node_api
node_api -->|"HTTP requests"| node_server
node_server -->|"dispatches tasks"| node_querytask
node_querytask -->|"executes SQL"| node_warehouse
node_queryui -->|"shows results"| node_results
node_checkui -->|"shows diffs"| node_results
node_server -.->|"syncs state"| node_cloudclient
node_cloudclient -.->|"calls API"| node_cloudservice
node_cloudchecks -.->|"checks setup"| node_cloudclient

click node_ui "https://github.com/datarecce/recce/blob/main/js/app/page.tsx"
click node_lineage "https://github.com/datarecce/recce/blob/main/js/packages/ui/src/components/lineage/LineagePageOss.tsx"
click node_queryui "https://github.com/datarecce/recce/blob/main/js/packages/ui/src/components/query/QueryPageOss.tsx"
click node_checkui "https://github.com/datarecce/recce/blob/main/js/packages/ui/src/components/check/CheckPageContentOss.tsx"
click node_results "https://github.com/datarecce/recce/blob/main/js/packages/ui/src/components/result/createResultView.tsx"
click node_api "https://github.com/datarecce/recce/blob/main/js/packages/ui/src/api/index.ts"
click node_server "https://github.com/datarecce/recce/blob/main/recce/server.py"
click node_querytask "https://github.com/datarecce/recce/blob/main/recce/tasks/query.py"
click node_lineageapi "https://github.com/datarecce/recce/blob/main/js/packages/ui/src/api/select.ts"
click node_queryapi "https://github.com/datarecce/recce/blob/main/js/packages/ui/src/api/adhocQuery.ts"
click node_checkapi "https://github.com/datarecce/recce/blob/main/js/packages/ui/src/api/checks.ts"
click node_cloudclient "https://github.com/datarecce/recce/blob/main/recce_cloud/recce_cloud/api/client.py"
click node_cloudchecks "https://github.com/datarecce/recce/blob/main/recce_cloud/recce_cloud/services/diagnostic_service.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ui,node_lineage,node_queryui,node_checkui,node_results,node_api,node_reviewer toneBlue
class node_server,node_querytask,node_warehouse toneAmber
class node_lineageapi,node_queryapi,node_checkapi toneMint
class node_cloudclient,node_cloudchecks toneRose
class node_cloudservice toneIndigo
```

## Components

### Review UI

- [Recce web app](https://github.com/datarecce/recce/blob/main/js/app/page.tsx): `js/app/page.tsx`
- [Lineage and impact](https://github.com/datarecce/recce/blob/main/js/packages/ui/src/components/lineage/LineagePageOss.tsx): `js/packages/ui/src/components/lineage/LineagePageOss.tsx`
- [Query workflow](https://github.com/datarecce/recce/blob/main/js/packages/ui/src/components/query/QueryPageOss.tsx): `js/packages/ui/src/components/query/QueryPageOss.tsx`
- [Checks and checklist](https://github.com/datarecce/recce/blob/main/js/packages/ui/src/components/check/CheckPageContentOss.tsx): `js/packages/ui/src/components/check/CheckPageContentOss.tsx`
- [Diff result views](https://github.com/datarecce/recce/blob/main/js/packages/ui/src/components/result/createResultView.tsx): `js/packages/ui/src/components/result/createResultView.tsx`
- [UI API clients](https://github.com/datarecce/recce/blob/main/js/packages/ui/src/api/index.ts): `js/packages/ui/src/api/index.ts`

### Local Recce

- [HTTP server](https://github.com/datarecce/recce/blob/main/recce/server.py): `recce/server.py`
- [Query tasks](https://github.com/datarecce/recce/blob/main/recce/tasks/query.py): `recce/tasks/query.py`

### Impact Checks

- [Lineage selection](https://github.com/datarecce/recce/blob/main/js/packages/ui/src/api/select.ts): `js/packages/ui/src/api/select.ts`
- [Query and diff API](https://github.com/datarecce/recce/blob/main/js/packages/ui/src/api/adhocQuery.ts): `js/packages/ui/src/api/adhocQuery.ts`
- [Check APIs](https://github.com/datarecce/recce/blob/main/js/packages/ui/src/api/checks.ts): `js/packages/ui/src/api/checks.ts`

### Cloud Collaboration

- [Cloud API client](https://github.com/datarecce/recce/blob/main/recce_cloud/recce_cloud/api/client.py): `recce_cloud/recce_cloud/api/client.py`
- [Cloud diagnostics](https://github.com/datarecce/recce/blob/main/recce_cloud/recce_cloud/services/diagnostic_service.py): `recce_cloud/recce_cloud/services/diagnostic_service.py`

### Other components

- **Data reviewer**
- **dbt warehouse**
- **Recce Cloud**

## Connections

- Data reviewer → Recce web app: uses
- Recce web app → Lineage and impact: opens lineage
- Recce web app → Query workflow: opens query
- Recce web app → Checks and checklist: reviews checks
- Lineage and impact → Lineage selection: requests selection
- Query workflow → Query and diff API: submits queries
- Checks and checklist → Check APIs: manages checks
- Lineage selection → UI API clients: uses client
- Query and diff API → UI API clients: uses client
- Check APIs → UI API clients: uses client
- UI API clients → HTTP server: HTTP requests
- HTTP server → Query tasks: dispatches tasks
- Query tasks → dbt warehouse: executes SQL
- Query workflow → Diff result views: shows results
- Checks and checklist → Diff result views: shows diffs
- HTTP server → Cloud API client: syncs state
- Cloud API client → Recce Cloud: calls API
- Cloud diagnostics → Cloud API client: checks setup
