Metadata-Version: 2.4
Name: floe-orchestrator-dagster
Version: 0.1.0a1
Summary: Dagster orchestrator plugin for the floe data platform
Project-URL: Homepage, https://github.com/Obsidian-Owl/floe
Project-URL: Documentation, https://github.com/Obsidian-Owl/floe/tree/main/docs
Project-URL: Repository, https://github.com/Obsidian-Owl/floe
Author-email: Obsidian Owl <team@obsidianowl.dev>
License-Expression: Apache-2.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: dagster-dbt>=0.26.0
Requires-Dist: dagster<2.0.0,>=1.10.0
Requires-Dist: floe-core<0.2.0,>=0.1.0a1
Requires-Dist: floe-iceberg<0.2.0,>=0.1.0a1
Requires-Dist: httpx>=0.24.0
Requires-Dist: openlineage-python>=1.0.0
Provides-Extra: dev
Requires-Dist: mypy>=1.8; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.3; extra == 'dev'
Provides-Extra: docker
Requires-Dist: dagster-k8s<1.0.0,>=0.29.0; extra == 'docker'
Requires-Dist: dagster-postgres<1.0.0,>=0.29.0; extra == 'docker'
Requires-Dist: dagster-webserver<2.0.0,>=1.10.0; extra == 'docker'
Provides-Extra: ingestion
Requires-Dist: dagster-dlt>=0.25.0; extra == 'ingestion'
Description-Content-Type: text/markdown

# floe-orchestrator-dagster

Dagster orchestrator plugin for the floe data platform.

## Overview

This plugin provides Dagster integration for floe, enabling:

- Runtime loading of Dagster Definitions from compiled product projects
- Creation of software-defined assets from dbt transforms
- Helm values for K8s deployment of Dagster services
- OpenLineage event emission for data lineage tracking
- Cron-based job scheduling with timezone support

## Installation

```bash
pip install floe-orchestrator-dagster
```

## Usage

```python
from pathlib import Path

from floe_orchestrator_dagster.loader import load_product_definitions

# Runtime definitions are loaded through the generated definitions.py shim,
# or directly through the loader when embedding in tests/tools.
definitions = load_product_definitions(
    product_name="customer-360",
    project_dir=Path("/path/to/product"),
)
```

The product directory must contain `compiled_artifacts.json`,
`profiles.yml`, and `target/manifest.json` from the same compile/runtime
context. Direct `DagsterOrchestratorPlugin.create_definitions()` calls only
validate artifacts and require the loader path for usable runtime definitions.

```python
from floe_orchestrator_dagster import DagsterOrchestratorPlugin

plugin = DagsterOrchestratorPlugin()

# Get Helm values for deployment
helm_values = plugin.get_helm_values()
```

## Requirements

- Python 3.10+
- Dagster 1.10+
- floe-core 0.1.0+

## License

Apache-2.0
