Dagster connector for Floe CLI (config-driven ingestion)
Project description
Floe + Dagster (MVP)
This folder contains a small Dagster connector for Floe, implemented as a Python package.
Goals of the MVP:
- Generate one Dagster asset per Floe entity by calling
floe validate --output json - Execute one entity per asset with
floe run --entities <name> --log-format json - Parse NDJSON events from stdout and attach run stats to Dagster materialization metadata
Install
Prereqs:
- Floe installed (either the
floeCLI binary or Docker with a Floe image). - Python 3.10+.
pip install dagster-floe
Development install (from this repo)
python3 -m venv orchestrators/dagster-floe/.venv
source orchestrators/dagster-floe/.venv/bin/activate
pip install -e orchestrators/dagster-floe[dev]
Run the example (repo-only)
cd orchestrators/dagster-floe
dagster dev
The example workspace loads floe_dagster.definitions which generates assets from orchestrators/dagster-floe/example/config.yml.
Run using Docker (instead of a local floe binary)
Prereqs:
- Docker installed and working (
docker run hello-worldsucceeds). - A Floe image available (either build locally or pull from GHCR).
Option A — pull from GHCR:
export FLOE_DOCKER_IMAGE="ghcr.io/malon64/floe:latest"
Option B — build locally from this repo:
docker build -t floe:dev .
export FLOE_DOCKER_IMAGE="floe:dev"
Then run Dagster:
cd orchestrators/dagster-floe
source .venv/bin/activate
FLOE_DOCKER_IMAGE="$FLOE_DOCKER_IMAGE" dagster dev
Notes
- This connector does not parse YAML directly; it uses
floe validate --output jsonas the source of truth. - For local development without an installed
floebinary, you can pointLocalRunnerto a custom command, e.g.:LocalRunner(\"cargo run -p floe-cli --\")
DockerRunnermounts the config directory by default; if your config uses paths like../data/..., it mounts a higher parent directory so those paths remain visible. For full control, passworkdir=....- When
DockerRunnermounts local files, it runs the container as your current user (--user uid:gid) so Floe can write reports/outputs back into the mounted directory. - Design notes and future work:
orchestrators/dagster-floe/INTEGRATION_SPEC.md
Releasing
This repo is a monorepo. Floe and this connector are versioned and tagged independently:
- Floe CLI release tags:
vX.Y.Z - Dagster connector release tags:
dagster-floe-vX.Y.Z(triggers the PyPI publish workflow)
Example:
git checkout main
git pull
git tag dagster-floe-v0.1.0
git push origin dagster-floe-v0.1.0
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 dagster_floe-0.1.0.tar.gz.
File metadata
- Download URL: dagster_floe-0.1.0.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6997eff3f930e27ebd498f078d7758b54e1708662bce7eb525ce1d1d7e9aeb86
|
|
| MD5 |
fec352824daaa83509c6cc4645452319
|
|
| BLAKE2b-256 |
7db5226d0b3911eb2a9b0f8a58537881c7940bb3dcec7cc031704e0f4113e635
|
Provenance
The following attestation bundles were made for dagster_floe-0.1.0.tar.gz:
Publisher:
release-dagster-floe.yml on malon64/floe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dagster_floe-0.1.0.tar.gz -
Subject digest:
6997eff3f930e27ebd498f078d7758b54e1708662bce7eb525ce1d1d7e9aeb86 - Sigstore transparency entry: 926916816
- Sigstore integration time:
-
Permalink:
malon64/floe@c67b26c2bc82ea054198531b1c48f3eef2724562 -
Branch / Tag:
refs/tags/dagster-floe-v0.1.0 - Owner: https://github.com/malon64
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-dagster-floe.yml@c67b26c2bc82ea054198531b1c48f3eef2724562 -
Trigger Event:
push
-
Statement type:
File details
Details for the file dagster_floe-0.1.0-py3-none-any.whl.
File metadata
- Download URL: dagster_floe-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ca4689ea2fc760222d810166820623fb976d8081ea1953139d7b95abc6406f4
|
|
| MD5 |
f564190a2f9b4f105f3b281c7587ee32
|
|
| BLAKE2b-256 |
bd9ca5d9c68f1c888bd70e56450e0baa1e9dbb627ecfdf61a3a95f375d9eb048
|
Provenance
The following attestation bundles were made for dagster_floe-0.1.0-py3-none-any.whl:
Publisher:
release-dagster-floe.yml on malon64/floe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dagster_floe-0.1.0-py3-none-any.whl -
Subject digest:
6ca4689ea2fc760222d810166820623fb976d8081ea1953139d7b95abc6406f4 - Sigstore transparency entry: 926916820
- Sigstore integration time:
-
Permalink:
malon64/floe@c67b26c2bc82ea054198531b1c48f3eef2724562 -
Branch / Tag:
refs/tags/dagster-floe-v0.1.0 - Owner: https://github.com/malon64
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-dagster-floe.yml@c67b26c2bc82ea054198531b1c48f3eef2724562 -
Trigger Event:
push
-
Statement type: