Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

pinky-provider

Declarative, idempotent IaC engine for Snowflake.

Part of the pinky-and-co suite.


Why pinky?

The modern data stack was built on a good idea — best of breed. One tool for ingestion, one for transformation, one for orchestration, one for observability.

The reality: more licenses, same delivery time, and most of your energy goes into the glue.

Snowflake collapsed the stack. Pinky makes it operational.

Do it right, and the credits follow.

Rationalized costs · Pure Python · Snowflake Native First


Install

pip install pinky-provider

Quick start

pinky-provider init  --scope schema --target MY_DATABASE.MAIN
pinky-provider plan  --env SANDBOX
pinky-provider apply --env SANDBOX

Step by step: First apply tutorial.

  Scope: MY_DATABASE.MAIN

  +  stage/my_stage               CREATE
  ~  procedure/my_sp              ALTER    (packages updated)
  =  task/my_task                 UNCHANGED

Documentation

Explanation

API reference

Decisions

Structure

Show the directory tree
pinky-provider/
├── _repro/
│   ├── eai-secrets-serialization/
│   │   ├── bug.md
│   │   └── repro.py
│   ├── table-kind-enum/
│   │   ├── bug.md
│   │   └── repro.ipynb
│   ├── live_valid_adr0014_gaps.py
│   ├── live_valid_all_modes.py
│   ├── live_valid_contact_purpose_case.py
│   ├── live_valid_ddl.py
│   ├── live_valid_drop_orphans_dag_names.py
│   ├── live_valid_email_notification.py
│   ├── live_valid_expected_schedule_deploy.py
│   ├── live_valid_finalize_deployed.py
│   ├── live_valid_finalize_sees_graph_state.py
│   ├── live_valid_get_contacts.py
│   ├── live_valid_install_wrappers.py
│   ├── live_valid_notifications_session_call.py
│   ├── live_valid_orphan_need.py
│   ├── live_valid_orphans_ownership_guard.py
│   ├── live_valid_orphans_schema_types.py
│   ├── live_valid_poll_and_dispatch_classification.py
│   ├── live_valid_recipient_atomicity.py
│   ├── live_valid_root_return_value_key.py
│   ├── live_valid_sdk.ipynb
│   ├── live_valid_slack_webhook.py
│   ├── live_valid_stage_create_or_alter.py
│   ├── live_valid_transient_lifecycle.py
│   ├── live_valid_user_recipient.py
│   ├── live_valid_v1_types.py
│   ├── run_live.py
│   └── send_test_emails.py
├── examples/
│   ├── queries/
│   │   └── companies_enriched.sql
│   ├── resources/
│   │   ├── procedure/
│   │   │   └── hello_sp.yml
│   │   └── warehouse/
│   │       └── wh_compute.yml
│   ├── vars/
│   │   ├── PRODUCTION.yml
│   │   └── SANDBOX.yml
│   ├── example_query_compile.py
│   ├── example_reconcile_comments.py
│   ├── manifest.yml
│   ├── manifest_query.yml
│   └── manifest_sp_demo.yml
├── scripts/
│   └── hooks/
├── src/
│   └── pinky_provider/
│       ├── cli/
│       │   ├── __init__.py
│       │   ├── main.py
│       │   └── scaffold.py
│       ├── core/
│       │   ├── __init__.py
│       │   ├── conflict.py
│       │   ├── deps.py
│       │   ├── diff.py
│       │   ├── manifest.py
│       │   ├── orphans.py
│       │   ├── parallel.py
│       │   ├── reconcile.py
│       │   ├── schema_collections.py
│       │   ├── schemas.py
│       │   └── session.py
│       ├── dag/
│       │   ├── wrappers/
│       │   │   ├── __init__.py
│       │   │   ├── errors.py
│       │   │   ├── feed_loop.py
│       │   │   ├── finalize_wrapper.py
│       │   │   ├── install.py
│       │   │   ├── modes.py
│       │   │   ├── poll_and_dispatch.py
│       │   │   ├── render.py
│       │   │   ├── root_task_wrapper.py
│       │   │   ├── runtime.py
│       │   │   └── task_wrapper.py
│       │   ├── __init__.py
│       │   ├── condition.py
│       │   ├── dag.py
│       │   ├── deploy.py
│       │   ├── models.py
│       │   ├── names.py
│       │   └── notifications.py
│       ├── resources/
│       │   ├── account/
│       │   │   ├── __init__.py
│       │   │   ├── api_integration.py
│       │   │   ├── catalog_integration.py
│       │   │   ├── compute_pool.py
│       │   │   ├── database.py
│       │   │   ├── external_access_integration.py
│       │   │   ├── external_volume.py
│       │   │   ├── network_policy.py
│       │   │   ├── network_rule.py
│       │   │   ├── notification_integration.py
│       │   │   ├── role.py
│       │   │   ├── secret.py
│       │   │   ├── tag.py
│       │   │   ├── user.py
│       │   │   └── warehouse.py
│       │   ├── database/
│       │   │   ├── __init__.py
│       │   │   ├── database_role.py
│       │   │   ├── grant.py
│       │   │   └── schema.py
│       │   ├── schema/
│       │   │   ├── query/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── provider.py
│       │   │   │   ├── query_engine.py
│       │   │   │   └── query_resource.py
│       │   │   ├── __init__.py
│       │   │   ├── _governed.py
│       │   │   ├── _relation.py
│       │   │   ├── alert.py
│       │   │   ├── dynamic_table.py
│       │   │   ├── event_table.py
│       │   │   ├── iceberg_table.py
│       │   │   ├── procedure.py
│       │   │   ├── quota.py
│       │   │   ├── secret.py
│       │   │   ├── stage.py
│       │   │   ├── storage_lifecycle_policy.py
│       │   │   ├── stream.py
│       │   │   ├── streamlit.py
│       │   │   ├── table.py
│       │   │   ├── tag.py
│       │   │   ├── task.py
│       │   │   ├── user_defined_function.py
│       │   │   └── view.py
│       │   ├── __init__.py
│       │   └── base.py
│       ├── __init__.py
│       └── provider.py
├── tests/
│   ├── fixtures/
│   │   └── notification_body.html
│   ├── conftest.py
│   ├── test_account_schema_stored.py
│   ├── test_alert.py
│   ├── test_api_integration_compute_pool.py
│   ├── test_base.py
│   ├── test_catalog_integration.py
│   ├── test_cli.py
│   ├── test_comment_reconcile.py
│   ├── test_conflict.py
│   ├── test_dag.py
│   ├── test_dag_condition.py
│   ├── test_dag_errors.py
│   ├── test_dag_finalize_wrapper.py
│   ├── test_dag_frequency_live.py
│   ├── test_dag_notifications.py
│   ├── test_dag_output_registry.py
│   ├── test_dag_output_registry_live.py
│   ├── test_dag_owned_names.py
│   ├── test_dag_render.py
│   ├── test_dag_task_wrapper.py
│   ├── test_dag_timeout_bounds.py
│   ├── test_dag_wrappers.py
│   ├── test_database.py
│   ├── test_deps.py
│   ├── test_diff.py
│   ├── test_dynamic_table.py
│   ├── test_event_table.py
│   ├── test_external_access_integration.py
│   ├── test_external_volume.py
│   ├── test_grant.py
│   ├── test_iceberg_table.py
│   ├── test_init.py
│   ├── test_manifest.py
│   ├── test_network_policy.py
│   ├── test_network_rule.py
│   ├── test_network_rule_policy_apply.py
│   ├── test_notification_integration.py
│   ├── test_orphans.py
│   ├── test_parallel.py
│   ├── test_procedure.py
│   ├── test_procedure_secrets_reconcile.py
│   ├── test_query.py
│   ├── test_query_provider.py
│   ├── test_quota.py
│   ├── test_roles.py
│   ├── test_schema.py
│   ├── test_schema_relations.py
│   ├── test_schemas.py
│   ├── test_secret.py
│   ├── test_secret_scan_guard.py
│   ├── test_stage.py
│   ├── test_storage_lifecycle_policy.py
│   ├── test_stream.py
│   ├── test_streamlit.py
│   ├── test_streamlit_live.py
│   ├── test_substitute_env.py
│   ├── test_table.py
│   ├── test_tag.py
│   ├── test_task.py
│   ├── test_type_contract.py
│   ├── test_user.py
│   ├── test_user_defined_function.py
│   ├── test_validate_sql_live.py
│   ├── test_view.py
│   ├── test_warehouse.py
│   └── test_wrapper_install.py
├── AGENTS.md
├── CLAUDE.md
├── LICENSE
├── pyproject.toml
├── README.md
└── uv.lock

License

MIT — see LICENSE.

Metadata

Release files for pinky-provider 0.1.0.dev2

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

Source distribution (sdist)

Source distribution for pinky-provider 0.1.0.dev2
File Size Uploaded Provenance Actions
pinky_provider-0.1.0.dev2.tar.gz 683.6 kB With provenance Details for pinky_provider-0.1.0.dev2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pinky-provider 0.1.0.dev2
File Interpreter ABI Platform Actions
pinky_provider-0.1.0.dev2-py3-none-any.whl Python 3 none any Details for pinky_provider-0.1.0.dev2-py3-none-any.whl

Total release size: 893.2 kB

Release files / pinky_provider-0.1.0.dev2.tar.gz

Download URL pinky_provider-0.1.0.dev2.tar.gz
Size 683.6 kB
Tags Source
SHA-256 checksum
How to use checksums
831d93faec40f3fb988f44d4c040c7e6456507ed6aa10277dc5897a0bb77162a
BLAKE2b-256 checksum
How to use checksums
4e1275ed1b94b98aacd8324fef554559cf43db2d3d092c8d43f776af7ffcf15a
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 Oct 18, 2026.

Transparency log

Release files / pinky_provider-0.1.0.dev2-py3-none-any.whl

Download URL pinky_provider-0.1.0.dev2-py3-none-any.whl
Size 209.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
16d64a822f7eee7514ff293f7c4c2d370da447fc8e2c68e6d317a2ce06ae327f
BLAKE2b-256 checksum
How to use checksums
2317b2442297489b77794a50bb8883c91681ab1eb8b65f4a95c05870f46efafa
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 Oct 18, 2026.

Transparency log

Security for pinky-provider 0.1.0.dev2

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 pinky_provider-0.1.0.dev2.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 Oct 18, 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.

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