Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>DataverseToCodeNew to Visual Studio Code? Get it now.
DataverseToCode

DataverseToCode

Cloud Fish

|
3 installs
| (0) | Free
Dataverse schema as code: tables, columns, choices and form scripts as YAML in Git, a Table Designer, plan and push to dev, and solution releases. Works with Microsoft Dataverse; not a Microsoft product.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

DataverseToCode for VS Code

Author Dataverse schema as YAML files in Git.

Features

  • Table Designer: open a *.table.yaml as a form and grid instead of text. Use the table icon in the editor title, Open in Table Designer in the Project view, or Reopen Editor With….
    • What it shows: the table's settings, a grid of columns (display name, type, required, description), a details pane for the selected column (sizes, formats, choice options, lookup target and cascade rules, formula), and the alternate keys.
    • Two views of one file: every change is written to the YAML, so undo, save and Git work as usual, and Open YAML shows the text beside it.
    • Locks and problems: columns that already exist in the environment have their type and target locked, and problems show on the row they belong to.
    • Make it the default with dataverseToCode.openTablesInDesigner.
  • Form scripts: pull brings the JS your forms load, and each table in the Project view lists its forms and their handlers. Clicking a handler opens the script at that function. Insert Form Context adds a typed formContext for the table, so getAttribute completes its columns and // @ts-check flags typos. Plan and Push to Dev include new and changed scripts: push creates or updates them in your solution and publishes them.
  • Create Form Script / Open Form Script (right-click a .table.yaml, in the Explorer, the editor or the Project view):
    • Create writes webresources/<prefix>_/scripts/<table>.js with an onLoad handler whose form context is typed for that table, and generates its typings.
    • Open appears once the table has a script: one its forms load, or one typed for it. With several, you pick one.
    • New Form Script… (right-click a folder, or New File…) asks for the table first.
  • Business rules: pull brings every rule on a table into schema/rules/<table>/. Each table in the Project view lists its rules (scope, active or draft) with a plain-English summary as the tooltip. In the Connections view, each environment has a Business rules node listing every rule by table, and each table has its own, read-only, managed ones marked. Clicking a rule opens a panel that draws it as a flowchart, spells out its IF / THEN / ELSE logic, and links to its YAML and stored definition. Plan and Push to Dev create, update, activate and deactivate rules in your solution; push never deletes a rule or changes a managed one.
  • Every column setting: the Table Designer's details pane shows the settings of every column type: schema name, security, sorting, global filter, Dataverse search, IME mode, managed properties, formats, defaults, precision source, autonumber seed, relationship name and navigation menu, and image options. A Status reasons section edits the reasons per state.
  • Solution (Project view): expand it to see what the project manages and whether your dev solution contains it. Missing items are listed first; the next Push adds them.
  • Formula IntelliSense inside formula: values: column and function completion (including after lookup.), hover and go to definition.
  • Autocomplete and checks for dataverse.yaml, *.table.yaml, *.choice.yaml, *.seed.yaml and *.rule.yaml, using JSON Schemas generated from the coverage matrix. Needs the Red Hat YAML extension, which installs automatically.
  • Checks across files as you type: unknown lookup targets, undefined global choices, duplicate option values, missing publisher prefixes, key columns that do not exist, seed scenarios that do not match the schema, and file names that do not match logical names.
  • Go to definition and hover on target:, targets:, choice: and seed table names.
  • Dataverse: Show Relationship Diagram draws a Mermaid ER diagram of the project, and updates as you edit.
  • New File… (Project view title, or right-click a folder): Table, Global choice, Seed scenario or Form script. New Table… is also on a folder's right-click menu. The file is named and placed for you (schema/tables/<prefix>_<name>.table.yaml, …) and a table starts with every required part plus an example column.
  • Dataverse: Pull / Plan / Push to Dev run the dvschema CLI. Push is refused for any environment not marked isDev: true.
  • Compare Across Environments… (a table, or right-click a .table.yaml): VS Code's side-by-side diff of the table as each environment has it. Compare Environments… on a connection lists every owned table and choice that differs.
  • View Data (a table in the Connections view, or right-click a .table.yaml): a read-only grid of the table's rows with display values, sorting, search, a column filter, Load more, seeded rows marked, and Open in Dynamics per row.
  • Generate Seed Data… (right-click a .table.yaml): writes seed/<table>.seed.yaml (with parents for required lookups) and creates the records in your dev environment after one confirmation. Seed Clean removes them.
  • Edit Connection (pencil on a connection) reopens the connect dialog with its details; the dialog closes when a connection succeeds.
  • On a connection (icons and right-click): Plan, Push to Dev, Export Solution, Check Drift, Seed Test Data and Seed Clean. Seeding is for dev environments only.
  • Build / Update Data Dictionary (right-click a connection): writes docs/data-dictionary-<env>.xlsx, an Index sheet plus one sheet per table listing each column's schema name, logical name, display name, field type, required level and description. It covers every table, replaces the file each time and reads the environment only. Then Open it or reveal it in Finder or File Explorer.
  • Dataverse: New Project sets up a project (dvschema init). If the folder is connected, the prefix is checked against that environment's publishers. If no publisher has it, you can create the publisher there (dev only) or pick an existing one. New Table in a folder without a project offers New Project first. If Push to Dev finds no publisher for your prefix, it offers to create it there and then pushes. Generate Docs (Project view) writes docs/schema.

Getting started

  1. Install the CLI: dotnet tool install -g DataverseToCode.Cli (or from a local build: dotnet pack cli/src/DataverseToCode.Cli -c Release -o cli/nupkg && dotnet tool install -g DataverseToCode.Cli --add-source cli/nupkg).
  2. Open a folder, click the Dataverse icon in the activity bar, then Add Connection.
  3. Sign in, pick an environment, and Connect. The tables appear under the connection, grouped by publisher (switch with the filter button).
  4. Right-click your publisher, a solution or a table and choose Pull into Project.

Settings

Setting Default Description
dataverseToCode.cliPath empty Path to dvschema. Leave empty to use dvschema from PATH or ~/.dotnet/tools.
dataverseToCode.openTablesInDesigner false Open *.table.yaml files in the Table Designer instead of the text editor.
dataverseToCode.signIn vscode vscode: sign in with VS Code's Microsoft account. cli: let dvschema sign in with its own browser window and cache.

Requirements

The pull, plan and push commands need the dvschema CLI. Everything else works without it.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft