Skip to main content

The shift-left CLI to manage your shift-left project

Project description

Shift_left

CLI to manage Flink projects and migrate batch SQL pipelines to real-time Apache Flink on Confluent Cloud. Supports KSQL, Spark SQL, and dbt as sources.

Documentation: https://jbcodeforce.github.io/shift_left_utils/

Install

pip install shift_left

Major features

  • Project management: Initialize Flink projects (Kimball or data-product layout), validate config, list Kafka topics and Flink compute pools, and report cross-product or single-child tables.
  • Pipeline deployment: Build table inventory and pipeline metadata, deploy DDL/DML with execution planning. Optional parallel deploy, dml-only, and blue-green via modified-files tracking.
  • Table lifecycle: Create table scaffolding, run AI migration per table (with optional recursion), and manage unit tests (init, run, delete) against Confluent Cloud.
  • SQL migration: Migrate KSQL, Spark SQL, and dbt to Flink SQL using LLM-based agents (OpenAI-compatible, including local Ollama). Handles table detection, DDL creation, and translation with validation.
  • Unit test harness: Develop synthetic test data from SQL DML semantic, with test suite and test case metadata to help Data Engineers to unit test their SQL on Confluent Cloud.
  • Blue-green and operations: List modified files by branch for safe deployments, integrate with your CI/CD and Confluent Cloud APIs.

Quick start

# Initialize a Flink project
shift_left project init my-flink-project /path/to/project --project-type data_product

# Validate Confluent Cloud config
shift_left project validate-config

# Migrate a table from Spark SQL to Flink SQL (one time work)
shift_left table migrate my_table /path/to/script.sql /path/to/staging --source-type spark --recursive

# Build pipeline execution plan
shift_left table build-inventory
shift_left pipeline build-all-metadata
shift_left pipeline build-execution-plan  /path/to/inventor --table-name my_table --may-start-de

# Deploy pipelines from inventory
shift_left pipeline deploy /path/to/inventory --table-name my_table

Documentation

Full guides, tutorials, CLI reference, and MCP server setup:

https://jbcodeforce.github.io/shift_left_utils/

  • User guide: environment setup, recipes, pipeline management, blue-green deployment
  • Tutorials: setup, project management, migration with AI
  • CLI reference and MCP (Model Context Protocol) integration for Cursor and other tools

Requirements

  • Python 3.12
  • Confluent Cloud (Kafka and Flink). For AI migration: OpenAI-compatible API or local Ollama.

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shift_left-0.1.49.tar.gz (915.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shift_left-0.1.49-py3-none-any.whl (212.0 kB view details)

Uploaded Python 3

File details

Details for the file shift_left-0.1.49.tar.gz.

File metadata

  • Download URL: shift_left-0.1.49.tar.gz
  • Upload date:
  • Size: 915.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for shift_left-0.1.49.tar.gz
Algorithm Hash digest
SHA256 226cda36b1c23011bf6983e7b2741b59999ec7f4684f3d49567e662a691f3f0e
MD5 84146593e7372aed7f969c7a3ab7d85e
BLAKE2b-256 488db4473ebaddc58e3d13d018ade5c6b196fec1fedf5a6847b8fd5408a8855d

See more details on using hashes here.

File details

Details for the file shift_left-0.1.49-py3-none-any.whl.

File metadata

  • Download URL: shift_left-0.1.49-py3-none-any.whl
  • Upload date:
  • Size: 212.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for shift_left-0.1.49-py3-none-any.whl
Algorithm Hash digest
SHA256 f01bb20115abb41873b91aab41580407a813ec3e5201d3621f0dc5c3dd6fa3c6
MD5 5c08a8aba9e6548519ce1a73634cddcb
BLAKE2b-256 eb7481e241109c3c0d1363e6070356da525cebb6e47fe856319ad535aad73891

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page