Skip to content

Releases: Workday/dj

v1.3.0

20 Apr 13:48
95e8360

Choose a tag to compare

What's Changed

Catalog-Agnostic Storage Support

  • Iceberg and Glue/Polaris support — new storage_type, etl_schema, and project_catalog variables in dbt_project.yml enable catalog-agnostic SQL generation across Delta Lake, Iceberg, Hive, and Glue/Polaris
  • Storage-type-aware partitioning — incremental models automatically use the correct format (partitioned_by vs partition_by) based on storage type

Materialization Shorthand

  • Simplified syntax for materialization, use "materialization": "incremental" | "ephemeral" instead of the full object definition.
  • New dj.materialization.defaultIncrementalStrategy setting to define global default for incremental materialization shorthand. Can be overridden per model via materialization.strategy.
  • Enabled strategy field in Model Wizard for incremental models.

CTE Bulk Select: Exclude/Include Filters and Type Inheritance

  • exclude/include support for CTE bulk selectsall_from_cte, dims_from_cte, and fcts_from_cte directives now accept exclude and include arrays to filter which columns are selected from a CTE, matching the existing support for model-level bulk selects
  • Column type inheritance in CTEs — when a CTE selects columns as plain strings (e.g. "select": ["col_a", "col_b"]), the dim/fct type is now inherited from the parent model or CTE instead of defaulting all columns to dim. This ensures dims_from_cte and fcts_from_cte correctly filter by column type in CTE-to-CTE chains
  • CTE column reference validation — invalid column names in exclude/include arrays are now reported as errors in the VS Code Problems tab with the list of available columns, without blocking the sync workflow
  • Column lineage accuracy — lineage tracing now respects dims/fcts type filters when resolving CTE bulk directives, preventing fct columns from appearing in dims_from_cte lineage traces (and vice versa)

CTE group_by Validation for Computed Columns

  • Reject string aliases for computed columns in CTE group_by — using bare string aliases like ["month"] when month is defined with an expr (e.g. DATE_TRUNC('MONTH', col)) now produces a validation error in the Problems tab instead of silently generating invalid SQL that fails at Trino runtime
  • Recommended pattern documented[{ "type": "dims" }] is now documented as the recommended group_by pattern inside CTEs, automatically resolving computed expressions

Enhancements

  • Support "dims" as a top-level string value for group_by, equivalent to [{ "type": "dims" }].
  • Support "dims" as a string value for join on, automatically joining on all shared dimension columns.
  • Update source and table freshness configuration:
    • Source-level freshness now accepts a config object or null (disables checks for the entire source).
    • Table-level optional freshness property (set to null to disable per-table).
    • Table-level optional loaded_at_field to allow overriding the timestamp field.

Full Changelog: https://github.com/Workday/vscode-dbt-json/compare/v1.2.1...v1.3.0

v1.2.1

20 Apr 10:25
935d5e1

Choose a tag to compare

What's Changed

  • AGENTS.md and skill files now written to .agents/dj/ and .agents/skills/ respectively, instead of .dj/

Full Changelog: https://github.com/Workday/vscode-dbt-json/compare/v1.2.0...v1.2.1

v1.2.0

17 Apr 18:36
86eef06

Choose a tag to compare

What's Changed

Inline Subquery Support

  • Nested subqueries in WHERE, HAVING, and JOIN ON conditions — define inline subqueries directly in model JSON with support for 10 operators: IN, NOT IN, EXISTS, NOT EXISTS, =, !=, >, >=, <, <=
  • Subquery data sources — reference models, sources, or CTEs as the subquery's FROM clause, with optional inner WHERE filtering
  • Visual SubqueryEditor — new reusable UI component with searchable dropdowns for model/source/CTE selection, operator picker, and collapsible layout
  • JOIN ON subqueries — subquery conditions alongside column and expression conditions in join definitions
  • Schema validation — new model.subquery.schema.json with $ref integration into WHERE, HAVING, and JOIN schemas

Enhancements

  • Improved JOIN node headers with override_alias support and cleaner layout
  • Added a from.rollup property to int_select_model and int_join_models, enabling time-grain re-aggregation alongside explicit column selection and joins. This provides the functionality of int_rollup_model with greater control over dimensions and custom expressions.
  • Added selective model execution for deferred runs. Users can now choose which modified models to include when running with --defer, instead of running all changed models.
  • Refactored AI agent integration to use agent-agnostic skill files (Agent Skills open standard) instead of agent-specific prompts
  • AGENTS.md and skill files now written to the workspace root's .dj/ directory (typically in .gitignore) instead of per-project
  • Removed unnecessary activation events for faster extension startup
  • dj.codingAgent setting now accepts boolean (recommended) with legacy string values deprecated
  • Updated AGENTS.md template and skill files with documentation for inline CTEs, subqueries, and from.rollup

Fixes

  • Fixed crash in JOIN ON processing when on is undefined (cross joins)
  • Fixed schema compliance by omitting on property for cross joins in buildJoinUpdate
  • Resolved an issue where column metadata (descriptions, tags, and partition configs) failed to propagate through CTEs
  • Fix Data Explorer showing stale results when changing the selected model in Data Modeling; now auto-refreshes columns and clears previous query results on model change

Full Changelog: https://github.com/Workday/vscode-dbt-json/compare/v1.1.0...v1.2.0

v1.1.0

26 Mar 12:56
59bd00a

Choose a tag to compare

What's Changed

  • Added an optional case_sensitive field at the model and field levels for explicit overrides; global default is managed via Lightdash config
  • Fixed: Filter out inherited Lightdash metrics that reference unavailable columns during YAML generation

Full Changelog: https://github.com/Workday/vscode-dbt-json/compare/v1.0.1...v1.1.0

v1.0.1

26 Mar 10:47
6f4fc14

Choose a tag to compare

What's Changed

  • v1.0.1 - Added a confirmation dialog when creating a model to resume a saved draft or start fresh

Full Changelog: https://github.com/Workday/vscode-dbt-json/compare/v1.0.0...v1.0.1

v1.0.0

26 Mar 09:43
56d42a5

Choose a tag to compare

What's Changed

This release introduces a major update to the DJ (dbt-json) Framework with new features, architectural improvements, enhanced code quality, and comprehensive documentation.

New Features

  • Visual Data Modeling - Node-based UI editor for building dbt models visually.
  • Lineage - Column-level lineage visualization and Data Explorer enhancements.
  • dbt Command Execution - Run dbt commands natively from VS Code.
  • Lightdash Integration - Preview Manager with one-click BI dashboard previews.
  • dbt Test Execution - Run dbt test through UI.
  • Tutorials & Assist Me - Guided tutorials and contextual help features.

Architecture & Code Quality

  • Service Modularization - Decomposed monolithic services into focused modules:
    • Framework Service split into specialized handlers (lineage, models, preferences, UI).
    • Sync Engine reconstructed into 12 specialized modules.
  • Import Management - Implemented auto-sorting for imports.
  • Build Updates - Replaced ts-node with tsx to fix vulnerabilities and move off unmaintained package.

Enhancements

  • Improved extension load time by replacing sequential file I/O with parallel operations for 90 schema files.
  • Centralized Python-dependent shell command execution with consistent virtual environment handling.

Documentation

  • Reorganized documentation into logical directories:
    • Setup guides in docs/setup/ (4 files + README)
    • Integration guides in docs/integrations/ (4 comprehensive guides)
    • Updated all 11 model type documentation files
  • Added documentation for Visual Editor, Lineage, and Settings Configuration.
  • Added 10 demo videos across documentation.
  • Added AGENTS.md (Open Spec) for AI coding agent context (Cursor, Copilot, etc.).

Developer & User Experience

  • Real-time VS Code settings validation with contextual error messages.
  • .gitignore prompt to add .dj folder on first launch.
  • Guard extension initialization to only run when dbt projects exist.

Full Changelog: https://github.com/Workday/vscode-dbt-json/compare/v0.1.0...v1.0.0

0.1.0

31 Oct 06:46
aa25e43

Choose a tag to compare

Initial Release

We are excited to announce the open-source release of vscode-dbt-json, a VS Code extension that transforms dbt development through a structured, JSON-first approach powered by JSON Schema. This extension streamlines the process of editing dbt configuration files by providing intelligent language features that significantly enhance developer productivity.

The Solution: JSON Schema-Powered Development

At its core, vscode-dbt-json leverages the JSON Schema standard to provide robust validation and intelligent editing capabilities. The extension maintains comprehensive JSON Schema definitions that accurately describe the structure, permissible values, and required fields for dbt configurations. Through the Language Server Protocol, these schemas enable powerful real-time features that make dbt development faster and more reliable.

Key Features

Core Functionality

  • JSON-First Development: Define dbt models and sources as .model.json and .source.json files with full JSON Schema validation
  • Auto-Generation: Automatically generates dbt SQL and YAML files from JSON configurations
  • IntelliSense & Autocompletion: Smart autocomplete for models, sources, columns, and SQL expressions as you type, suggesting valid property names and permissible values
  • Real-time Validation: Instant error detection with JSON Schema validation, flagging incorrect syntax, missing required fields, or properties used in wrong contexts

Model Development

  • 11 Model Types: Complete coverage from staging to marts
    • Staging: stg_select_source, stg_union_sources, stg_select_model
    • Intermediate: int_select_model, int_join_models, int_join_column, int_union_models, int_lookback_model, int_rollup_model
    • Mart: mart_select_model, mart_join_models
  • Modern Web Interface: React-based UI for scaffolding model and source JSONs

Integrations

  • Trino Integration: Browse data catalogs and execute queries directly in VS Code
  • Lightdash Support: Built-in BI integration for creating dashboards from dbt models
  • Airflow DAG Generation: Automatic generation of Airflow DAGs for orchestration

Get Started: Installation Guide | Tutorial
Support: GitHub Issues | Discussions

Full Changelog: https://github.com/Workday/vscode-dbt-json/commits/v0.1.0