Skip to main content

DataSecOps CLI

A command-line interface for the Data Engineers DataSecOps Native App on Snowflake. Streamlines dbt development, source control workflows, and framework configuration management for teams using the DataSecOps Framework.

What is this?

The DataSecOps CLI is the local developer companion to the Data Engineers DataSecOps Native App — a Snowflake Native App that provides governance, configuration management, and standardised development workflows for data teams.

This CLI connects to the native app and gives developers:

  • dbt development commands — run, build, test, lint, and manage dbt projects via dbt Fusion
  • Source control operations — branching, committing, rebasing, and deploying via GitPython with naming conventions enforced by the framework
  • Configuration downloads — pull SQLFluff rules, CI/CD pipelines, dbt packages, and Cortex Code skills from the native app to your local project
  • MCP server — expose framework governance rules to AI coding assistants (VS Code, Cursor, Cortex Code, Claude Code)

Installation

pip install datasecops-cli

With MCP server support:

pip install "datasecops-cli[mcp]"

Requires Python 3.10 or later.

Prerequisites

  • A Snowflake connection configured in ~/.snowflake/connections.toml
  • The Data Engineers DataSecOps Native App installed in your Snowflake account
  • A project profile created in the native app

Optional:

Quick Start

1. Configure your project

datasecops setup

This prompts for your Snowflake connection name and native app database, then writes .datasecops.yml.

If you skip this step, running datasecops will offer to run setup automatically.

2. Run the CLI

datasecops

Features

Menu Capabilities
Development dbt run, build, test, lint (SQLFluff), deps, seed, compile, snapshot, freshness, docs
Git Branch create/checkout/delete, commit & push, rebase, squash, deploy to environment branches, cherry-pick, reset branch from main
Downloads SQLFluff config, CI/CD pipelines (GitHub Actions / Azure DevOps), dbt packages, Cortex Code skills

Non-Interactive Mode (CI/CD)

The download subcommand lets you pull framework config in CI/CD pipelines without interactive prompts:

# Download specific items
datasecops download sqlfluff
datasecops download sqlfluff packages
datasecops download pipelines macros

# Install framework-pinned package versions
datasecops download install-sqlfluff
datasecops download install-dbt

# Download config and install packages together
datasecops download sqlfluff install-sqlfluff

# Download and install everything
datasecops download all

Available items: sqlfluff, pipelines, packages, macros, scripts, install-sqlfluff, install-dbt, all

The pipeline platform (GitHub / Azure DevOps) is auto-detected from the native app's source control configuration.

Pipeline Setup

Your pipeline needs two things:

  1. A .datasecops.yml in the repo (already committed — contains no secrets):

    connection_name: "ci"
    app_database: "DATA_ENGINEERS_DATASECOPS_FRAMEWORK"
    
  2. A Snowflake connection in ~/.snowflake/connections.toml for the CI service account:

    # GitHub Actions example
    - name: Configure Snowflake connection
      run: |
        mkdir -p ~/.snowflake
        cat > ~/.snowflake/connections.toml << EOF
        [ci]
        account = "${{ vars.SNOWFLAKE_ACCOUNT }}"
        user = "${{ vars.SNOWFLAKE_USER }}"
        authenticator = "snowflake_jwt"
        private_key_file = "/tmp/rsa_key.p8"
        warehouse = "CI_WH"
        role = "CI_ROLE"
        EOF
    
    - name: Download SQLFluff config
      run: datasecops download sqlfluff
    

The exit code is 0 on success, 1 if any download fails.

MCP Server

The package includes an MCP (Model Context Protocol) server that exposes your framework's governance configuration to AI coding assistants. Instead of static skill files, the MCP server gives AI tools live access to your native app's current rules.

Available Tools

Category Tools
Configuration get_branching_rules, get_linting_rules, get_dbt_packages, get_pipeline_config, get_dbt_versions
Project get_project_settings, get_project_profiles, get_deployment_targets, get_available_skills
Linting lint_sql, fix_sql, lint_project
Source Control validate_branch_name, get_deployment_workflow

Setup for AI Tools

Cortex Code — add to .snowflake/cortex/mcp.json in your project root:

{
  "mcpServers": {
    "datasecops-framework": {
      "type": "stdio",
      "command": "datasecops-mcp",
      "args": ["--connection-name", "<CONNECTION>", "--app-database", "<APP_DB>"]
    },
    "github": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<your-github-pat>"
      }
    },
    "dbt": {
      "type": "stdio",
      "command": "uvx",
      "args": ["dbt-mcp"]
    }
  }
}

For Azure DevOps instead of GitHub:

{
  "mcpServers": {
    "datasecops-framework": {
      "type": "stdio",
      "command": "datasecops-mcp",
      "args": ["--connection-name", "<CONNECTION>", "--app-database", "<APP_DB>"]
    },
    "azure-devops": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@tiberriver256/mcp-server-azure-devops"],
      "env": {
        "AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/<your-org>",
        "AZURE_DEVOPS_AUTH_METHOD": "pat",
        "AZURE_DEVOPS_PAT": "<your-azure-pat>"
      }
    },
    "dbt": {
      "type": "stdio",
      "command": "uvx",
      "args": ["dbt-mcp"]
    }
  }
}

VS Code / Cursor — add to .vscode/mcp.json or .cursor/mcp.json:

{
  "mcpServers": {
    "datasecops-framework": {
      "command": "datasecops-mcp",
      "args": ["--connection-name", "<CONNECTION>", "--app-database", "<APP_DB>"]
    }
  }
}

Recommended MCP Server Stack

For full integration with Snowflake, dbt, and your source control platform, configure these MCP servers alongside the framework server:

Server Purpose Install
datasecops-framework Governance rules, linting, branch validation Included (datasecops-mcp)
dbt Lineage, model discovery, codegen, semantic layer pip install dbt-mcp
GitHub PRs, issues, CI checks, releases npx -y @modelcontextprotocol/server-github
Azure DevOps PRs, pipelines, work items, boards npx -y @tiberriver256/mcp-server-azure-devops

See the Getting Started Guide for full configuration instructions for each editor and platform.

Configuration

The CLI reads from a .datasecops.yml file in your project root (created by the setup script):

connection_name: "my_connection"
app_database: "DATA_ENGINEERS_DATASECOPS_FRAMEWORK"

Project profiles, linting rules, pipeline templates, and deployment targets are all managed centrally in the native app and pulled down by the CLI.

License

MIT

Metadata

Release files for datasecops-cli 0.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for datasecops-cli 0.6.1
File Size Uploaded Provenance Actions
datasecops_cli-0.6.1.tar.gz 87.6 kB With provenance Details for datasecops_cli-0.6.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for datasecops-cli 0.6.1
File Interpreter ABI Platform Actions
datasecops_cli-0.6.1-py3-none-any.whl Python 3 none any Details for datasecops_cli-0.6.1-py3-none-any.whl

Total release size: 153.4 kB

Release files / datasecops_cli-0.6.1.tar.gz

Download URL datasecops_cli-0.6.1.tar.gz
Size 87.6 kB
Tags Source
SHA-256 checksum
How to use checksums
83461a1a7d6b4062457b8b201f1aee511a7af48fdb03d4e9eb4a48884adc3d89
BLAKE2b-256 checksum
How to use checksums
61be510e25b3fcd3955b89ee319bc5f927d02fc9a993b8fd1b172a47ef84b064
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / datasecops_cli-0.6.1-py3-none-any.whl

Download URL datasecops_cli-0.6.1-py3-none-any.whl
Size 65.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4f550b93217f4e9e92d3b40c5c5249701f0d35826a5a3aeb44e516cd6b4196ef
BLAKE2b-256 checksum
How to use checksums
9dea515917b1528745b6ec5e74017de3e877123b88ad68d11baef3c8792a6419
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Security for datasecops-cli 0.6.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for datasecops_cli-0.6.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.6.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page