Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Apache Airflow Provider Yaml Schema

From Leeroopedia


Knowledge Sources
Domains Plugin_System, Configuration
Last Updated 2026-02-08 00:00 GMT

Overview

Concrete tool for defining provider package metadata provided by the provider.yaml schema and directory structure conventions.

Description

The provider.yaml file declares all metadata for a provider package: name, description, versions, integrations, and lists of all components (hooks, operators, sensors, triggers, connection types). The standard directory structure ensures consistent organization across all providers.

Usage

Create a provider.yaml file in your provider's root directory following the schema. Use the MANAGING_PROVIDERS_LIFECYCLE.rst guide for step-by-step instructions.

Code Reference

Source Location

  • Repository: Apache Airflow
  • File: providers/MANAGING_PROVIDERS_LIFECYCLE.rst (L54-150)
  • File: providers/apache/kafka/provider.yaml (example)
  • File: providers/standard/provider.yaml (standard provider example)

Signature

# provider.yaml schema
package-name: apache-airflow-providers-example
name: Example
state: ready
source-date-epoch: 1700000000
versions:
  - 1.0.0

integrations:
  - integration-name: Example Service
    external-doc-url: https://example.com/docs
    how-to-guide:
      - /docs/example_usage.rst
    tags: [service]

hooks:
  - integration-name: Example Service
    python-modules:
      - airflow.providers.example.hooks.example

operators:
  - integration-name: Example Service
    python-modules:
      - airflow.providers.example.operators.example

sensors:
  - integration-name: Example Service
    python-modules:
      - airflow.providers.example.sensors.example

triggers:
  - integration-name: Example Service
    python-modules:
      - airflow.providers.example.triggers.example

connection-types:
  - hook-class-name: airflow.providers.example.hooks.example.ExampleHook
    connection-type: example

Import

# Install a provider package
pip install apache-airflow-providers-example

# Directory structure
providers/example/
├── pyproject.toml
├── provider.yaml
├── src/airflow/providers/example/
│   ├── __init__.py
│   ├── hooks/
│   ├── operators/
│   ├── sensors/
│   ├── triggers/
│   └── transfers/
└── tests/
    ├── unit/
    ├── integration/
    └── system/

I/O Contract

Inputs

Name Type Required Description
package-name str Yes PyPI package name
name str Yes Human-readable provider name
state str Yes Lifecycle state (ready/incubation/attic)
versions list[str] Yes Version history
integrations list[dict] Yes External service integrations

Outputs

Name Type Description
Provider package Python package Installable provider distribution
Registered components ProvidersManager Hooks, operators, sensors discovered by Airflow

Usage Examples

Create New Provider

# Use breeze to scaffold a new provider
breeze release-management prepare-provider-packages --package-format wheel

# Or manually create the directory structure
mkdir -p providers/my_service/src/airflow/providers/my_service/{hooks,operators,sensors}

Related Pages

Implements Principle

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment