The shift-left CLI to manage your shift-left project
Project description
Shift Left Utils
A comprehensive toolkit for migrating SQL batch processing to real-time Apache Flink on Confluent Cloud, with AI-powered code translation and advanced pipeline management. It also addresses KsqlDB to Apache Flink SQL migration.
Installation
pip install shift_left
Features
SQL Migration & Translation: Automatically migrate KSQL, Spark SQL, and DBT code to Flink SQL using LLM-based agents with validation and refinement capabilities.
Pipeline Management: Build, validate, and deploy Flink SQL pipelines with dependency management, execution planning, and blue-green deployment strategies.
Project Structure: Scaffold and manage Flink projects following medallion architecture (sources, intermediates, dimensions, facts, views) with comprehensive metadata and testing frameworks.
Test Harness: Develop unit test SQL templates with synthetic data to unit test Flink SQL statements.
Quick Start
# Initialize a new Flink project
shift_left project init my_project ./my_project --project-type kimball
# Build table inventory
shift_left table build-inventory ./pipelines
# Deploy a pipeline
shift_left pipeline deploy ./pipelines --table-name my_table
CLI Commands
Project Management
shift_left project init- Initialize a new Flink projectshift_left project validate-config- Validate configuration fileshift_left project list-topics- List Kafka topicsshift_left project list-compute-pools- List Flink compute pools
Table Management
shift_left table init- Create table structureshift_left table build-inventory- Build table inventoryshift_left table migrate- Migrate SQL with AI assistance
Pipeline Deployment
shift_left pipeline deploy- Deploy Flink pipelinesshift_left pipeline build-metadata- Build pipeline metadata
Testing
shift_left table init-unit-tests- Create test file for unit testsshift_left table run-unit-tests- Run the test suiteshift_left table delete-unit-tests- Remove unit test artifacts
Documentation
Requirements
- Python 3.12+
- Confluent Cloud account (for deployment features)
License
Apache License 2.0
Links
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file shift_left-0.1.47.tar.gz.
File metadata
- Download URL: shift_left-0.1.47.tar.gz
- Upload date:
- Size: 543.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2a891db822b56ae9b4ef6622acaee1b33dfe31240faae2a8e30e26374520d12
|
|
| MD5 |
9249871c140747e69357ba1514a7a9a6
|
|
| BLAKE2b-256 |
a3ba87d68e0c681d720731b8aa05616bdcf9f4628b95eca2e2c83c9f93d2e0db
|
File details
Details for the file shift_left-0.1.47-py3-none-any.whl.
File metadata
- Download URL: shift_left-0.1.47-py3-none-any.whl
- Upload date:
- Size: 180.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66e91575a678b950ddba4ca714e3596afb2077fe761aa1f67671cc49ddd85708
|
|
| MD5 |
480599b82ad18c4ece1903f342497e04
|
|
| BLAKE2b-256 |
94e0ff774c739eac5fd2545c84491e1b4aee763344bb5064fb3a3ec29736f2ef
|