Skip to main content

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

Metadata

Release files for shift_left 0.1.52

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

Source distribution (sdist)

Source distribution for shift_left 0.1.52
File Size Uploaded
shift_left-0.1.52.tar.gz 915.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for shift_left 0.1.52
File Interpreter ABI Platform
shift_left-0.1.52-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / shift_left-0.1.52.tar.gz

Download URL shift_left-0.1.52.tar.gz
Size 915.4 kB
Tags Source
SHA-256 checksum
How to use checksums
23fc3313fe32c42339ff692a7bea5047b3402dee28dfcdac05199aef84c12992
BLAKE2b-256 checksum
How to use checksums
fb95c4ea6a18957531d934b96f2f9ebb4389c2aec44be198c5c675a78a65da99
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / shift_left-0.1.52-py3-none-any.whl

Download URL shift_left-0.1.52-py3-none-any.whl
Size 229.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5f6592ab1decd82f57032dbd2ef027cb8105d92c96aa3c7abd72dfaa2236d8c5
BLAKE2b-256 checksum
How to use checksums
cc7b85b83cc70dfe2771b4a025e1ebb8ff0ff7132a3d5791d5bb3e824ac1181d
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release history Release notifications | RSS feed

This release

0.1.52 This release

2 release files

0.1.51

2 release files

0.1.50

2 release files

0.1.49

2 release files

0.1.47

2 release files

0.1.46

2 release files

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