Skip to content

Plugin Configuration and CLI

This document describes plugin CLI commands and how to create custom plugins.

Terminal window
# List installed plugins
floe plugins list
# Illustrative output:
Installed plugins:
orchestrators:
- dagster (1.0.0) [reference implementation]
- airflow (1.0.0)
computes:
- duckdb (1.0.0) [reference implementation]
- snowflake (1.0.0)
- spark (1.0.0)
catalogs:
- polaris (1.0.0) [reference implementation]
- glue (1.0.0)
dbt:
- local (1.0.0) [alpha-supported local runtime]
- fusion (1.0.0)
semantic_layers:
- cube (1.0.0) [reference implementation]
- none (1.0.0)
ingestion:
- dlt (1.0.0) [implementation primitive]
- airbyte (1.0.0)
# List available (installable) plugins
floe plugins available
Terminal window
mkdir floe-compute-trino
cd floe-compute-trino
src/floe_compute_trino/plugin.py
from floe_core.interfaces.compute import ComputePlugin, ComputeConfig
class TrinoComputePlugin(ComputePlugin):
name = "trino"
version = "1.0.0"
is_self_hosted = True
metadata = PluginMetadata(
name="trino",
version="1.0.0",
floe_api_version="1.0",
description="Trino compute plugin for floe",
author="Your Name",
)
def generate_dbt_profile(self, config: ComputeConfig) -> dict:
return {
"type": "trino",
"method": "none",
"host": config.properties.get("host", "trino.default.svc.cluster.local"),
"port": config.properties.get("port", 8080),
"catalog": config.properties.get("catalog", "iceberg"),
"schema": config.properties.get("schema", "default"),
}
def get_required_dbt_packages(self) -> list[str]:
return ["dbt-trino>=1.7.0"]
# ... implement other methods
pyproject.toml
[project.entry-points."floe.computes"]
trino = "floe_compute_trino:TrinoComputePlugin"
chart/Chart.yaml
apiVersion: v2
name: floe-compute-trino
version: 1.0.0
description: Trino compute for floe
# chart/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: trino-coordinator
# ...
Terminal window
uv add floe-compute-trino
# manifest.yaml
plugins:
compute:
type: trino
config:
host: trino.example.com