Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .tagignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ CODE_OF_CONDUCT.md
LICENSE.md
NOTICE
Makefile
.tagignore
.tagignore
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This file provides guidance to AI coding agents working with code in this reposi

## Project Overview

DJ (dbt-json) Framework is a VS Code extension that revolutionizes dbt development through a structured, JSON-first approach. Users define dbt models and sources as validated `.model.json` and `.source.json` files that automatically generate corresponding SQL and YAML configurations.
DJ (Data JSON) Framework is a VS Code extension that revolutionizes dbt development through a structured, JSON-first approach. Users define dbt models and sources as validated `.model.json` and `.source.json` files that automatically generate corresponding SQL and YAML configurations.

The extension provides a rich visual UI built with React, including interactive model and column lineage graphs, a visual model creation wizard, query result previews, and a data modeling canvas -- all rendered as VS Code webviews.

Expand Down Expand Up @@ -280,7 +280,7 @@ All API message types defined in `src/shared/api/types.ts` with full TypeScript
## Project Structure

```text
vscode-dbt-json/
dj/
├── src/
│ ├── extension.ts # Entry point - activates Coder service
│ ├── admin.ts # Platform utilities (paths, process runners)
Expand Down Expand Up @@ -671,7 +671,7 @@ LIGHTDASH_TRINO_HOST=host.docker.internal # Trino host override for Docker

The extension includes built-in support for AI coding agents to help users create DJ-compliant dbt models.

**Project-level AGENTS.md generation:** When installed in a dbt project, the extension generates an `AGENTS.md` file at `.agents/dj/AGENTS.md` in the workspace root. This file contains DJ framework-specific instructions (model types, JSON schema structure, naming conventions, column definitions) that users can reference in their LLM workflows to generate valid `.model.json` and `.source.json` files. The generated file is tailored to the project's configuration and available models/sources.
**Project-level AGENTS.md generation:** When installed in a dbt project, the extension generates an `AGENTS.md` file at `.agents/dj/AGENTS.md` in the workspace root. This file contains DJ (Data JSON) Framework-specific instructions (model types, JSON schema structure, naming conventions, column definitions) that users can reference in their LLM workflows to generate valid `.model.json` and `.source.json` files. The generated file is tailored to the project's configuration and available models/sources.

**Skill files (`.agents/skills/`):** The extension writes agent-agnostic skill directories to the workspace root's `.agents/skills/` directory, following the [Agent Skills](https://agentskills.io) open standard. Each skill is a subdirectory containing a `SKILL.md` file with YAML frontmatter (`name` and `description`) and markdown instructions (e.g., `.agents/skills/dj-create-new-model/SKILL.md`). Skill templates are bundled with the extension in `templates/skills/` and copied to the workspace at activation time.

Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Change Log

## 1.3.7

### Naming alignment

- Renamed framework to **DJ (Data JSON) Framework** to better reflect its JSON-first, schema-driven approach
- Updated repository URL from `Workday/vscode-dbt-json` to `Workday/dj`

## 1.3.6

- **CTE exclude/include flags now mirror their main-model counterparts and inherit from the model** — a CTE accepts `exclude_date_filter`, `exclude_daily_filter`, `exclude_portal_partition_columns`, `exclude_portal_source_count`, and `include_full_month` with the same semantics as the corresponding main-model flags. Resolution is uniform: CTE override > model value > false. Set `exclude_portal_partition_columns: true` on the model to skip partition auto-injection in every CTE without per-CTE repetition; set it on a single CTE to override only that CTE.
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing to Workday DJ (dbt-json framework)
# Contributing to Workday DJ (Data JSON) Framework

Thank you for your interest in contributing to the Workday DJ VS Code extension! This document provides guidelines and information for contributors.
Thank you for your interest in contributing to the Workday DJ (Data JSON) Framework VS Code extension! This document provides guidelines and information for contributors.

## Table of Contents

Expand Down
6 changes: 3 additions & 3 deletions DEVELOPMENT_SETUP.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Development Setup

This guide covers setting up your development environment for contributing to the DJ (dbt-json) VS Code extension.
This guide covers setting up your development environment for contributing to the DJ (Data JSON) Framework VS Code extension.

## Table of Contents

Expand Down Expand Up @@ -32,8 +32,8 @@ For development, you'll also need:
1. **Clone and install dependencies:**

```bash
git clone https://github.com/Workday/vscode-dbt-json.git
cd vscode-dbt-json
git clone https://github.com/Workday/dj.git
cd dj
npm install
```

Expand Down
6 changes: 3 additions & 3 deletions NOTICE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# NOTICE

Workday DJ (dbt-json framework) VS Code Extension
Workday DJ (Data JSON) Framework VS Code Extension
Copyright (c) 2025 Workday, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Expand All @@ -16,8 +16,8 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use

For questions about this project, please use:

- **GitHub Issues**: https://github.com/Workday/vscode-dbt-json/issues
- **GitHub Discussions**: https://github.com/Workday/vscode-dbt-json/discussions
- **GitHub Issues**: https://github.com/Workday/dj/issues
- **GitHub Discussions**: https://github.com/Workday/dj/discussions

---

Expand Down
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# DJ (dbt-json) Framework
# DJ (Data JSON) Framework

[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![GitHub Release](https://img.shields.io/github/v/release/Workday/vscode-dbt-json)](https://github.com/Workday/vscode-dbt-json/releases)
[![GitHub Release](https://img.shields.io/github/v/release/Workday/dj)](https://github.com/Workday/dj/releases)
[![dbt](https://img.shields.io/badge/dbt-Core-orange.svg)](https://www.getdbt.com/)
[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/Workday/vscode-dbt-json/badge)](https://scorecard.dev/viewer/?uri=github.com/Workday/vscode-dbt-json)
[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/Workday/dj/badge)](https://scorecard.dev/viewer/?uri=github.com/Workday/dj)

DJ is a VS Code extension that revolutionizes dbt development through a structured, JSON-first approach. Define your dbt models and sources as validated `.model.json` and `.source.json` files that automatically generate corresponding SQL and YAML configurations.

Expand All @@ -15,7 +15,7 @@ DJ is a VS Code extension that revolutionizes dbt development through a structur
- **Integrated BI Preview** - One-click Lightdash preview from your models

<video width="100%" controls>
<source src="https://github.com/Workday/vscode-dbt-json/raw/main/assets/videos/visual-editor-overview.mp4" type="video/mp4">
<source src="https://github.com/Workday/dj/raw/main/assets/videos/visual-editor-overview.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

Expand All @@ -35,7 +35,7 @@ DJ is a VS Code extension that revolutionizes dbt development through a structur

<!-- Using GitHub raw URL to show image in both GitHub and VS Code extension marketplace -->

![DBT Stack](https://github.com/Workday/vscode-dbt-json/blob/main/assets/images/dj_stack.png?raw=true)
![DBT Stack](https://github.com/Workday/dj/blob/main/assets/images/dj_stack.png?raw=true)

_DJ integrates seamlessly with your modern data stack - from VS Code to dbt, Trino, and Lightdash._

Expand Down Expand Up @@ -115,14 +115,14 @@ dbt parse # this generates the manifest.json file

### 4. Install the Extension

1. Download the latest `.vsix` file from the [GitHub Releases page](https://github.com/Workday/vscode-dbt-json/releases)
1. Download the latest `.vsix` file from the [GitHub Releases page](https://github.com/Workday/dj/releases)
2. Install the extension in VS Code:
- Open VS Code
- Press `Cmd+Shift+P` (Mac) or `Ctrl+Shift+P` (Windows/Linux)
- Type "Extensions: Install from VSIX..."
- Select the downloaded `.vsix` file

Note: Want to build DJ extension from source? See the [DEVELOPMENT_SETUP.md](DEVELOPMENT_SETUP.md) for development setup.
Note: Want to build the DJ (Data JSON) Framework extension from source? See the [DEVELOPMENT_SETUP.md](DEVELOPMENT_SETUP.md) for development setup.

### 5. Configure VS Code Settings

Expand All @@ -131,7 +131,7 @@ The extension can be configured in the VS Code settings or by adding to the `.vs
To configure the extension via VS Code settings,

- Open the VS Code settings (Cmd/Ctrl + ,)
- Under "Extensions", select "DJ (dbt-json) Framework".
- Under "Extensions", select "DJ (Data JSON) Framework".
- Configure the extension settings as needed.

To configure the extension via `.vscode/settings.json`, add the configuration options as needed to the file:
Expand Down Expand Up @@ -183,7 +183,7 @@ See the [Settings Reference](docs/SETTINGS.md#when-settings-take-effect) for com

### 6. Create Your First Source

1. Look for the DJ extension panel in the sidebar and click on it.
1. Look for the DJ (Data JSON) Framework extension panel in the sidebar and click on it.
2. Under "Actions", click on "Create Source".
3. Fill the form:
- **Select Project**: Choose your dbt project
Expand All @@ -205,7 +205,7 @@ DJ offers multiple ways to build models - choose what works best for you:

### 8. Create Your First Model

1. Look for the DJ extension panel in the sidebar and click on it.
1. Look for the DJ (Data JSON) Framework extension panel in the sidebar and click on it.
2. Under "Actions", click on "Create Model".
3. Fill the form:
- **Select Project**: Choose your dbt project
Expand Down Expand Up @@ -293,8 +293,8 @@ DJ supports the following model types:

## Support & Community

- **Discussions**: [GitHub Discussions](https://github.com/Workday/vscode-dbt-json/discussions)
- **Issues**: [GitHub Issues](https://github.com/Workday/vscode-dbt-json/issues)
- **Discussions**: [GitHub Discussions](https://github.com/Workday/dj/discussions)
- **Issues**: [GitHub Issues](https://github.com/Workday/dj/issues)
- **Documentation**: [Complete Docs](docs/)

## Contributing
Expand Down
2 changes: 1 addition & 1 deletion ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

## Suggestions

Suggestions are welcome! Please feel free to suggest features or report issues in the [GitHub Issues](https://github.com/Workday/vscode-dbt-json/issues).
Suggestions are welcome! Please feel free to suggest features or report issues in the [GitHub Issues](https://github.com/Workday/dj/issues).

## Contributing

Expand Down
4 changes: 2 additions & 2 deletions docs/LINEAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ The Data Explorer visualizes your dbt models as an interactive lineage graph, sh
2. Select "DJ: Data Explorer"

<video width="100%" controls>
<source src="https://github.com/Workday/vscode-dbt-json/raw/main/assets/videos/data-explorer-overview.mp4" type="video/mp4">
<source src="https://github.com/Workday/dj/raw/main/assets/videos/data-explorer-overview.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

Expand Down Expand Up @@ -199,7 +199,7 @@ The Data Explorer includes panels for viewing query results and compilation logs
2. Column Lineage opens for that model

<video width="100%" controls>
<source src="https://github.com/Workday/vscode-dbt-json/raw/main/assets/videos/column-lineage-overview.mp4" type="video/mp4">
<source src="https://github.com/Workday/dj/raw/main/assets/videos/column-lineage-overview.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

Expand Down
8 changes: 4 additions & 4 deletions docs/SETTINGS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# DJ Extension Settings Reference
# DJ (Data JSON) Framework Settings Reference

Complete guide to configuring the DJ VS Code extension.
Complete guide to configuring the DJ (Data JSON) Framework VS Code extension.

## Quick Reference

Expand Down Expand Up @@ -211,7 +211,7 @@ Complete guide to configuring the DJ VS Code extension.
```

- Options: `"debug"` | `"info"` | `"warn"` | `"error"`
- View logs: `View → Output → DJ Extension`
- View logs: `View → Output → DJ`
- Use `debug` for troubleshooting

---
Expand Down Expand Up @@ -251,7 +251,7 @@ Run this command (`Cmd/Ctrl+Shift+P` → `DJ: Refresh Projects`) after changing:

1. Check [When Settings Take Effect](#when-settings-take-effect) section
2. Run appropriate command (Refresh Projects or Sync)
3. Check Output panel (`View → Output → DJ Extension`) for validation errors
3. Check Output panel (`View → Output → DJ`) for validation errors

### Path Validation Errors?

Expand Down
34 changes: 17 additions & 17 deletions docs/TUTORIAL.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Interactive guided mode that walks you through creating specific model types:
6. Tutorial automatically fills in example data and advances through steps

<video width="100%" controls>
<source src="https://github.com/Workday/vscode-dbt-json/raw/main/assets/videos/tutorial-modes.mp4" type="video/mp4">
<source src="https://github.com/Workday/dj/raw/main/assets/videos/tutorial-modes.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

Expand Down Expand Up @@ -106,17 +106,17 @@ dbt seed
dbt parse
```

This creates `target/manifest.json` that the DJ extension needs to provide IntelliSense and validation.
This creates `target/manifest.json` that the DJ (Data JSON) Framework needs to provide IntelliSense and validation.

Now you have real data and the extension is ready to work!

## Step 2: Create Sources for Raw Data

Before creating models, we need to define sources for our raw data.

1. **Use the DJ extension** to create sources incrementally:
1. **Use the DJ (Data JSON) Framework extension** to create sources incrementally:

- Look for the DJ extension panel in the sidebar and click on it.
- Look for the DJ (Data JSON) Framework extension panel in the sidebar and click on it.
- Under "Actions", click on "Create Source".
- In the extension UI, fill the form:
- **Select Project**: `jaffle_shop`
Expand Down Expand Up @@ -153,7 +153,7 @@ Now the extension can provide IntelliSense for your sources!

## Step 3: Configure Groups for Model Organization

Before creating models, we need to define groups that will be available in the DJ extension UI.
Before creating models, we need to define groups that will be available in the DJ (Data JSON) Framework extension UI.

1. **Business-focused groups** in the example project:

Expand Down Expand Up @@ -208,15 +208,15 @@ Before creating models, we need to define groups that will be available in the D
dbt parse
```

> **Important**: Without groups configured and `dbt parse` run, the DJ extension UI won't populate the Group dropdown, and you cannot create models.
> **Important**: Without groups configured and `dbt parse` run, the DJ (Data JSON) Framework extension UI won't populate the Group dropdown, and you cannot create models.

## Step 4: Create Your First Staging Model

Let's clean up the raw customer data using the DJ extension's UI.
Let's clean up the raw customer data using the DJ (Data JSON) Framework extension's UI.

1. **Use the DJ extension** to create a new model:
1. **Use the DJ (Data JSON) Framework extension** to create a new model:

- Use the DJ extension UI (available through the extension panel)
- Use the DJ (Data JSON) Framework extension UI (available through the extension panel)
- The extension UI will show:
- **Select Project**: `jaffle_shop`
- **Select Model Type**: `Staging Select Source`
Expand Down Expand Up @@ -264,7 +264,7 @@ Let's clean up the raw customer data using the DJ extension's UI.
dbt run --select stg__customers__profiles__clean
```

**What happened?** The DJ extension:
**What happened?** The DJ (Data JSON) Framework:

- Used the manifest.json to provide IntelliSense for available sources
- Showed `development__jaffle_shop_dev_seeds.raw_customers` as an available source option
Expand All @@ -278,9 +278,9 @@ Let's clean up the raw customer data using the DJ extension's UI.

Now let's calculate customer order summaries.

1. **Use the DJ extension** to create an intermediate model:
1. **Use the DJ (Data JSON) Framework extension** to create an intermediate model:

- Look for the DJ extension panel in the sidebar and click on it.
- Look for the DJ (Data JSON) Framework extension panel in the sidebar and click on it.
- Under "Actions", click on "Create Model".
- In the extension UI, fill the form:
- **Select Project**: `jaffle_shop`
Expand Down Expand Up @@ -349,7 +349,7 @@ Now let's calculate customer order summaries.
dbt run --select int__sales__orders__enriched
```

**What happened?** The DJ extension:
**What happened?** The DJ (Data JSON) Framework:

- Used manifest.json to provide IntelliSense for available models
- Generated SQL with proper JOIN syntax and column selection
Expand All @@ -362,9 +362,9 @@ dbt run --select int__sales__orders__enriched

Finally, let's create a business-friendly customer analytics table.

1. **Use the DJ extension** to create a mart model:
1. **Use the DJ (Data JSON) Framework extension** to create a mart model:

- Look for the DJ extension panel in the sidebar and click on it.
- Look for the DJ (Data JSON) Framework extension panel in the sidebar and click on it.
- Under "Actions", click on "Create Model".
- In the extension UI, fill the form:
- **Select Project**: `jaffle_shop`
Expand Down Expand Up @@ -426,7 +426,7 @@ Finally, let's create a business-friendly customer analytics table.
dbt run --select mart__sales__reporting__revenue
```

**What happened?** The DJ extension:
**What happened?** The DJ (Data JSON) Framework:

- Provided IntelliSense for available intermediate models
- Validated your mart configuration against the schema
Expand Down Expand Up @@ -470,7 +470,7 @@ Browse the **[Model Types Documentation](models/README.md)** for:

### Advanced Features

- **UI-driven model creation**: Use the DJ extension UI for guided setup
- **UI-driven model creation**: Use the DJ (Data JSON) Framework extension UI for guided setup
- **IntelliSense**: Get autocomplete for models, sources, and columns from manifest.json
- **Schema validation**: Real-time validation against JSON schemas
- **Trino integration**: Browse data catalog and get column suggestions
Expand Down
6 changes: 3 additions & 3 deletions docs/VISUAL_EDITOR.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
The Data Modeling Visual Editor provides an interactive, node-based interface for creating and editing dbt models. It offers a visual alternative to JSON configuration while generating identical outputs.

<video width="100%" controls>
<source src="https://github.com/Workday/vscode-dbt-json/raw/main/assets/videos/visual-editor-intro.mp4" type="video/mp4">
<source src="https://github.com/Workday/dj/raw/main/assets/videos/visual-editor-intro.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

Expand Down Expand Up @@ -433,7 +433,7 @@ See [Lightdash Integration](integrations/lightdash-integration.md) for complete
### Creating a Join Model

<video width="100%" controls>
<source src="https://github.com/Workday/vscode-dbt-json/raw/main/assets/videos/visual-editor-join-workflow.mp4" type="video/mp4">
<source src="https://github.com/Workday/dj/raw/main/assets/videos/visual-editor-join-workflow.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

Expand Down Expand Up @@ -480,7 +480,7 @@ DJ supports two types of time-series analysis models: **Rollup** and **Lookback*
#### Example: Rollup Model (Time Bucketing)

<video width="100%" controls>
<source src="https://github.com/Workday/vscode-dbt-json/raw/main/assets/videos/visual-editor-timeseries-workflow.mp4" type="video/mp4">
<source src="https://github.com/Workday/dj/raw/main/assets/videos/visual-editor-timeseries-workflow.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

Expand Down
Loading
Loading