Skip to content

Commit 1188166

Browse files
committed
Restructure Guides navigation with numbered sections
- Reorganized navigation structure with numbered sections (1-whats-recce, 2-getting-started, etc.) - Created new folder structure for better organization - Added new sections like 'Downstream impacts', 'Data Diffing', 'Collaborate Validation', etc. - Restructured existing content into logical groupings - Moved old content to archived folder - Updated mkdocs.yml navigation structure See details: https://www.notion.so/infuseai/Recce-Doc-v2-25579451d357807bb104efb129028f61
1 parent fa87340 commit 1188166

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+416
-440
lines changed

URL_CHANGES_TRACKING.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# URL Changes Tracking for Guides Restructure
2+
3+
This document tracks all URL changes that will occur when the new "Guides (New)" structure replaces the current "Guides" structure.
4+
5+
## Current URL Structure (Before Restructure)
6+
7+
### Overview Section
8+
- `/overview/``index.md`
9+
- `/demo/``demo.md`
10+
11+
### Getting Started Section
12+
- `/getting-started/``get-started.md`
13+
- `/configure-diff/``configure-diff.md`
14+
- `/get-started-jaffle-shop/``get-started-jaffle-shop.md`
15+
- `/start-with-dbt-cloud/``start-with-dbt-cloud.md`
16+
17+
### Web UI Section
18+
- `/web-ui/``features/lineage.md`
19+
- `/web-ui/``features/query.md`
20+
- `/web-ui/``features/checklist.md`
21+
22+
### Command Line Interface Section
23+
- `/command-line-interface/``features/recce-debug.md`
24+
- `/command-line-interface/``features/recce-run.md`
25+
- `/command-line-interface/``features/recce-summary.md`
26+
27+
### Advanced Features Section
28+
- `/advanced-features/``features/state-file.md`
29+
- `/advanced-features/``features/preset-checks.md`
30+
- `/advanced-features/``features/node-selection.md`
31+
- `/advanced-features/``features/impact-radius.md`
32+
- `/advanced-features/``features/breaking-change-analysis.md`
33+
- `/advanced-features/``features/column-level-lineage.md`
34+
- `/advanced-features/``reference/configuration.md`
35+
36+
### Scenarios Section
37+
- `/scenarios/``guides/scenario-dev.md`
38+
- `/scenarios/``guides/scenario-pr-review.md`
39+
- `/scenarios/``guides/scenario-ci.md`
40+
- `/scenarios/``guides/best-practices-prep-env.md`
41+
42+
### Architecture Section
43+
- `/architecture/``architecture/overview.md`
44+
- `/changelog/` → External link to blog
45+
46+
### Privacy & Terms Section
47+
- `/privacy-policy/` → External link
48+
- `/cookie-policy/` → External link
49+
- `/terms-of-use/` → External link
50+
- `/accessibility-statement/` → External link
51+
52+
## New URL Structure (After Restructure)
53+
54+
**TODO: Update this section as you restructure the "Guides (New)" tab**
55+
56+
### [New Section Name]
57+
- `[new-url]/``[file-path]`
58+
59+
## Redirect Mapping (To Be Implemented)
60+
61+
**TODO: Fill in the redirect mappings once the new structure is finalized**
62+
63+
```yaml
64+
# Example redirect structure for mkdocs-redirects plugin
65+
redirect_maps:
66+
# Old URL: New URL
67+
"/old-path/": "/new-path/"
68+
"/another-old-path/": "/another-new-path/"
69+
```
70+
71+
## Notes
72+
73+
- All external links (Privacy Policy, Terms, etc.) will remain unchanged
74+
- The Changelog link will remain unchanged
75+
- Only internal documentation structure will change
76+
- This tracking document should be updated as you make changes to the "Guides (New)" structure
77+
78+
## Implementation Steps
79+
80+
1. ✅ Create "Guides (New)" tab with current structure
81+
2. 🔄 Restructure the "Guides (New)" tab (2 days of work)
82+
3. ⏳ Document all URL changes in this file
83+
4. ⏳ Test new structure thoroughly
84+
5. ⏳ Replace original "Guides" with "Guides (New)"
85+
6. ⏳ Implement redirects using mkdocs-redirects plugin
86+
7. ⏳ Remove "Guides (New)" tab
87+
8. ⏳ Deploy and verify redirects work correctly

docs/index.md renamed to docs/1-whats-recce/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Overview
2+
title: What's Recce
33
icon: material/hand-wave-outline
44
---
55

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
title: 5 min tutorial
3+
icon: material/video
4+
---
5+
6+
# 5 min toturial
7+
8+
using cloud with sample data

docs/get-started-jaffle-shop.md renamed to docs/2-getting-started/get-started-jaffle-shop.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: 5 Minute Tutorial
2+
title: Open Source Tutorial
33
icon: material/school
44
---
55

Lines changed: 209 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
---
2+
title: Open Source
3+
icon: material/package-variant
4+
---
5+
6+
7+
## Install
8+
9+
From within a dbt project directory:
10+
```shell
11+
cd your-dbt-project/ # if you're not already there
12+
pip install -U recce
13+
```
14+
15+
16+
## Launch
17+
To start Recce in the current environment:
18+
```shell
19+
recce server
20+
```
21+
Launching Recce enables:
22+
23+
- **Lineage clarity**: Trace changes down to the column level
24+
25+
- **Query insights**: Explore logic and run custom queries
26+
27+
- **Live diffing**: Reload and inspect changes as you iterate
28+
29+
Best suited for quick exploration before moving to structured validation using Diff.
30+
31+
<!-- <insert the gif of sign in flow step 2> -->
32+
33+
34+
## Configure Diff
35+
36+
To compare changes, Recce needs a baseline. This guide explains the concept of Diff in Recce and how it fits into data validation workflows. Setup steps vary by environment, so this guide focuses on the core ideas rather than copy-paste instructions.
37+
38+
For a concrete example, refer to the [5-minute Jaffle Shop tutorial](./get-started-jaffle-shop/).
39+
40+
To configure a comparison in Recce, two components are required:
41+
42+
### 1. Artifacts
43+
44+
Recce uses dbt [artifacts](https://docs.getdbt.com/reference/artifacts/dbt-artifacts) to perform diffs. These files are generated with each dbt run and typically saved in the `target/` folder.
45+
46+
In addition to the current artifacts, a second set is needed to serve as the baseline for comparison. Recce looks for these in the `target-base/` folder.
47+
48+
- `target/` – Artifacts from the current development environment
49+
- `target-base/` – Artifacts from a baseline environment (e.g., production)
50+
51+
For most setups, retrieve the existing artifacts that generated from the main branch (usually from a CI run or build cache) and save them into a `target-base/` folder.
52+
53+
### 2. Schemas
54+
55+
Recce also compares the actual query results between two dbt [environments](https://docs.getdbt.com/docs/core/dbt-core-environments), each pointing to a different [schema](https://docs.getdbt.com/docs/core/connect-data-platform/connection-profiles#understanding-target-schemas). This allows validation beyond metadata by comparing the data itself.
56+
57+
For example:
58+
59+
- `prod` schema for production
60+
- `dev` schema for development
61+
62+
These schemas represent where dbt builds its models.
63+
64+
!!! tip
65+
66+
In dbt, an environment typically maps to a schema. To compare data results, separate schemas are required. Learn more in [dbt environments](https://docs.getdbt.com/docs/core/dbt-core-environments).
67+
68+
Schemas are typically configured in the `profiles.yml` file, which defines how dbt connects to the data platform. Both schemas must be accessible for Recce to perform environment-based comparisons.
69+
70+
Once both artifacts and schemas are configured, Recce can surface meaningful diffs across logic, metadata, and data.
71+
72+
## Verify your setup
73+
74+
There are two ways to check that your configuration is complete:
75+
76+
### 1. Debug Command (CLI)
77+
78+
Run `recce debug` from the command line to verify your setup before launching the server:
79+
80+
```bash
81+
recce debug
82+
```
83+
84+
This command checks artifacts, directories, and warehouse connection, providing detailed feedback on any missing components.
85+
86+
### 2. Environment Info (Web UI)
87+
88+
Use **Environment Info** in the top-right corner of the Recce web interface to verify your configuration.
89+
90+
A correctly configured setup will display two environments:
91+
92+
- **Base** – the reference schema used for comparison (e.g., production)
93+
- **Current** – the schema for the environment under development (e.g., staging or dev)
94+
95+
This confirms that both the artifacts and schemas are properly connected for diffing.
96+
![Environment Info](assets/images/configure-diff/environment-info.png)
97+
98+
99+
# Start with dbt Cloud
100+
101+
dbt Cloud is a hosted service that provides a managed environment for running dbt projects by [dbt Labs](https://docs.getdbt.com/docs/cloud/about-cloud/dbt-cloud-features). This document provides a step-by-step guide to get started `recce` with dbt Cloud.
102+
103+
## Prerequisites
104+
105+
`Recce` will compare the data models between two environments. That means you need to have two environments in your dbt Cloud project. For example, one for production and another for development.
106+
Also, you need to provide the credentials profile for both environments in your `profiles.yml` file to let `Recce` access your data warehouse.
107+
108+
### Suggestions for setting up dbt Cloud
109+
110+
To integrate the dbt Cloud with Recce, we suggest to set up two run jobs in your dbt Cloud project.
111+
112+
#### Production Run Job
113+
114+
The production run should be the main branch of your dbt project. You can trigger the dbt Cloud job on every merge to the main branch or schedule it to run at a daily specific time.
115+
116+
#### Development Run Job
117+
118+
The development run should be a separate branch of your dbt project. You can trigger the dbt Cloud job on every merge to the pull-request branch.
119+
120+
### Set up dbt profiles with credentials
121+
122+
You need to provide the credentials profile for both environments in your `profiles.yml` file. Here is an example of how your `profiles.yml` file might look like:
123+
124+
```yaml
125+
dbt-example-project:
126+
target: dev
127+
outputs:
128+
dev:
129+
type: snowflake
130+
account: "{{ env_var('SNOWFLAKE_ACCOUNT') }}"
131+
132+
# User/password auth
133+
user: "{{ env_var('SNOWFLAKE_USER') | as_text }}"
134+
password: "{{ env_var('SNOWFLAKE_PASSWORD') | as_text }}"
135+
136+
role: DEVELOPER
137+
database: cloud_database
138+
warehouse: LOAD_WH
139+
schema: "{{ env_var('SNOWFLAKE_SCHEMA') | as_text }}"
140+
threads: 4
141+
prod:
142+
type: snowflake
143+
account: "{{ env_var('SNOWFLAKE_ACCOUNT') }}"
144+
145+
# User/password auth
146+
user: "{{ env_var('SNOWFLAKE_USER') | as_text }}"
147+
password: "{{ env_var('SNOWFLAKE_PASSWORD') | as_text }}"
148+
149+
role: DEVELOPER
150+
database: cloud_database
151+
warehouse: LOAD_WH
152+
schema: PUBLIC
153+
threads: 4
154+
```
155+
156+
## Install `Recce`
157+
158+
Install Recce using `pip`:
159+
160+
```shell
161+
pip install -U recce
162+
```
163+
164+
## Execute Recce with dbt Cloud
165+
166+
To compare the data models between two environments, you need to download the dbt Cloud artifacts for both environments. The artifacts include the manifest.json file and the catalog.json file. You can download the artifacts from the dbt Cloud UI.
167+
168+
### Login to your dbt Cloud account
169+
170+
![dbt Cloud login](assets/images/dbt-cloud/login-dbt-cloud.png)
171+
172+
### Go to the project you want to compare
173+
174+
![dbt Cloud login](assets/images/dbt-cloud/select-run-job.png)
175+
176+
### Download the dbt artifacts
177+
178+
Download the artifacts from the latest run of both run jobs. You can download the artifacts from the `Artifacts` tab.
179+
180+
![dbt Cloud login](assets/images/dbt-cloud/prod-artifacts.png)
181+
![dbt Cloud login](assets/images/dbt-cloud/dev-artifacts.png)
182+
183+
### Set up the dbt artifacts folders
184+
185+
Extract the downloaded artifacts and keep them in a separate folder. The production artifacts should be in the `target-base` folder and the development artifacts should be in the `target` folder.
186+
187+
```bash
188+
$ tree target target-base
189+
target
190+
├── catalog.json
191+
└── manifest.json
192+
target-base/
193+
├── catalog.json
194+
└── manifest.json
195+
```
196+
197+
### Setup dbt project
198+
199+
Move the `target` and `target-base` folders to the root of your dbt project.
200+
You should also have the `profiles.yml` file in the root of your dbt project with the credentials profile for both environments.
201+
202+
### Start the `Recce` server
203+
204+
Run the `recce` command to compare the data models between the two environments.
205+
206+
```shell
207+
recce server
208+
```
209+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: Open source vs Cloud
3+
icon: material/cloud
4+
---
5+
6+
# Open source vs Cloud
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
title: Start free with Cloud
3+
icon: material/cloud
4+
---
5+
6+
# Start free with Cloud
7+
8+
Sign up https://cloud.reccehq.com and free use Recce Cloud forever.

docs/3-view-modified/code-diff.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: Code diff
3+
icon: material/playlist-check
4+
---
5+
6+
# Code diff
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
title: Column-Level Lineage
3+
icon: material/file-tree
4+
---
5+
6+
Column-Level Lineage provides visibility into the upstream and downstream relationships of a column.
7+
8+
Common use-cases for column-level lineage are
9+
10+
1. **Source Exploration**: During development, column-level lineage helps you understand how a column is derived.
11+
2. **Impact Analysis**: When modifying the logic of a column, column-level lineage enables you to assess the potential impact across the entire DAG.
12+
3. **Root Cause Analysis**: Column-level lineage helps identify the possible source of errors by tracing data lineage at the column level.
13+
14+
## Usage
15+
16+
1. Select a node in the lineage DAG, then click the column you want to view.
17+
18+
![alt text](../assets/images/features/cll-1.png){: .shadow}
19+
20+
1. The column-level lineage for the selected column will be displayed.
21+
22+
![alt text](../assets/images/features/cll-2.png){: .shadow}
23+
24+
1. To exit column-level lineage view, click the close button in the upper-left corner.
25+
26+
![alt text](../assets/images/features/cll-3.png){: .shadow}
27+
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Lineage
2+
title: Lineage Diff
33
icon: material/file-tree
44
---
55

0 commit comments

Comments
 (0)