Skip to main content

Zero to Pipeline

Self-configuring data ingestion — connect any API without writing connectors.

Python 3.10+ PyPI version License: MIT Tests

Zero to Pipeline is a Python framework that turns any REST or GraphQL API into a data source in a single command. No connector classes, no YAML schemas, no pagination boilerplate. The framework uses an LLM (your own API key) to discover auth type, endpoints, and pagination style from a provider name — then extracts data with self-healing, checkpointed syncs.


Tutorial: Build your first pipeline

Connect to an API, store credentials, and extract data in under five minutes.

Prerequisites

  • Python 3.10+
  • An API key for OpenAI or Anthropic (or a local Ollama instance)

Step 1 — Install

pip install zero-to-pipeline

Step 2 — Store your LLM API key

pipeline auth set openai --token sk-proj-...

Step 3 — Add a data source

pipeline source add mlflow

Step 4 — Test the connection

pipeline source test mlflow

You should see: Connection to mlflow successful!

Step 5 — Extract data

pipeline sync run mlflow

The first run fetches all records. The second run resumes from the last cursor — only new records.

What you learned

You connected to an API, stored credentials securely, and extracted paginated data — without writing a single line of connector code.


How-to guides

Task Guide
Configure LLM providers (OpenAI, Anthropic, Ollama, Azure, Groq) docs/how-to/configure-llm-providers.md
Connect any API (known, unknown, Docker, credentials) docs/how-to/connect-any-api.md
Add a new LLM provider to the framework docs/how-to/add-llm-provider.md

Explanation: How it works

Traditional ETL tools require you to write a connector for every API. Zero to Pipeline inverts the problem: you say what to connect, and the framework figures out how.

pipeline source add <provider>
        │
        ▼
┌─────────────────────┐
│  1. Provider         │  Known presets (MLflow, GitHub, Airflow, etc.)
│     Registry         │  give instant base URL, auth, pagination
└────────┬────────────┘
         │ enriches
         ▼
┌─────────────────────┐
│  2. LLM Discovery    │  Your LLM fills gaps: endpoints, rate limits,
│                      │  API quirks. Unknown providers get full config.
└────────┬────────────┘
         │ validates
         ▼
┌─────────────────────┐
│  3. HTTP Probing     │  Checks reachability, detects pagination
│                      │  from response headers and body shape
└────────┬────────────┘
         │ connects
         ▼
┌─────────────────────┐
│  4. Self-Healing     │  Rotates auth formats on 401/403.
│     Connector        │  Resumes from last cursor after healing.
└────────┬────────────┘
         │ extracts
         ▼
┌─────────────────────┐
│  5. Checkpointed     │  Saves cursor every 100 records.
│     Extraction       │  Next run: resumes, doesn't replay.
└─────────────────────┘
Layer Problem it solves
Registry + LLM Discovers auth type and endpoints from a provider name
Secure Auth Stores tokens in OS keychain, never plaintext
Self-Healing Rotates auth header formats until one works
Pagination Infers cursor/offset/GraphQL from response shape
Orchestrator Checkpoints every batch, runs steps as a parallel DAG

See docs/explanation.md for the full architecture deep dive.


Reference

Supported providers

Known presets (demo accelerators — any API name works without them):

Provider Category Auth Pagination
MLflow ML Experiment Tracking None Offset
Weights & Biases ML Experiment Tracking API Key Cursor
Feast Feature Store None Offset
Prometheus Observability / Monitoring None Offset
Grafana Observability / Dashboards API Key Offset
Apache Airflow Workflow Orchestration Basic Offset
Prefect Dataflow Automation API Key Offset
GitHub Version Control / CI/CD OAuth2 Link Header
Linear Issue Tracking API Key GraphQL Cursor
Notion Docs / Knowledge Base OAuth2 Cursor

Configuration

Env var Default Description
PIPELINE_LLM_PROVIDER openai LLM provider: openai or anthropic
PIPELINE_LLM_MODEL per-provider Model ID
PIPELINE_LLM_BASE_URL per-provider Override for Azure, Ollama, Groq
PIPELINE_LOG_LEVEL INFO Log level: DEBUG, INFO, WARNING, ERROR
PIPELINE_DEFAULT_TIMEOUT 30 HTTP request timeout in seconds
PIPELINE_MAX_RETRIES 3 Maximum retry attempts for failed requests

All settings support .env files. See docs/reference.md for the complete list.

CLI commands

Command Description
pipeline source add <provider> Add a data source
pipeline source list List configured sources
pipeline source test <provider> Test connection
pipeline source remove <provider> Remove a source
pipeline auth set <provider> Store API key in OS keychain
pipeline auth status Show auth status
pipeline sync run <provider> Extract data (incremental)
pipeline sync status Show checkpoint info
pipeline chat Interactive AI assistant
pipeline doctor Health check

Project structure

src/data_pipeline/
├── cli/                 # CLI commands (package, not a single file)
├── connectors/          # API connectivity layer
├── auth/                # Credential storage
├── orchestrator/        # Pipeline execution
├── extractors/          # Orchestration-aware extraction
├── loaders/             # JSONL output (extensible)
├── schemas/             # Pydantic models
├── sources/             # Source state persistence
├── mcp/                 # Model Context Protocol server
└── observability/       # Structured logging + metrics

Development

git clone https://github.com/Lanrey/zero-to-pipeline.git
cd zero-to-pipeline
uv sync --extra dev

pytest tests/ -v            # 79 tests
ruff check src/data_pipeline/   # zero lint errors
mypy src/data_pipeline/         # type check

See CONTRIBUTING.md for the full style guide and pre-submit checklist.


License

MIT

Download files

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

Source Distribution

zero_to_pipeline-1.0.1.tar.gz (72.0 kB view details)

Uploaded Source

Built Distribution

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

zero_to_pipeline-1.0.1-py3-none-any.whl (66.2 kB view details)

Uploaded Python 3

File details

Details for the file zero_to_pipeline-1.0.1.tar.gz.

File metadata

  • Download URL: zero_to_pipeline-1.0.1.tar.gz
  • Upload date:
  • Size: 72.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for zero_to_pipeline-1.0.1.tar.gz
Algorithm Hash digest
SHA256 1b0c6f1134921e1c132b04035bf5a4bec179eba71853f41bf7938c292d723af4
MD5 40d292e0e8d4af6216c3e81766d88114
BLAKE2b-256 acfacc38502a33deb323934364d0aa8aaccf1a6e8c9ea7db937be4fd36ead64c

See more details on using hashes here.

Provenance

The following attestation bundles were made for zero_to_pipeline-1.0.1.tar.gz:

Publisher: publish.yml on Lanrey/zero-to-pipeline

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zero_to_pipeline-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for zero_to_pipeline-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 95d57379e7aeb0a86664187e170e2ab9e7a7cabbe1e0f45154513e0002566cfd
MD5 762d8634e888ed27b807b9a18dc139c1
BLAKE2b-256 129c08ac5fd9d34e4917ba59dfa152e800011bbd2b97983c61fb748ff1cdff97

See more details on using hashes here.

Provenance

The following attestation bundles were made for zero_to_pipeline-1.0.1-py3-none-any.whl:

Publisher: publish.yml on Lanrey/zero-to-pipeline

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 files

1.0.0

2 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