Plugin Configuration and CLI
This document describes plugin CLI commands and how to create custom plugins.
Plugin CLI Commands
Section titled “Plugin CLI Commands”# List installed pluginsfloe 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) pluginsfloe plugins availableCreating a Custom Plugin
Section titled “Creating a Custom Plugin”1. Create Package Structure
Section titled “1. Create Package Structure”mkdir floe-compute-trinocd floe-compute-trino2. Implement Interface
Section titled “2. Implement Interface”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 methods3. Register Entry Point
Section titled “3. Register Entry Point”[project.entry-points."floe.computes"]trino = "floe_compute_trino:TrinoComputePlugin"4. Add Helm Chart (if needed)
Section titled “4. Add Helm Chart (if needed)”apiVersion: v2name: floe-compute-trinoversion: 1.0.0description: Trino compute for floe
# chart/templates/deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata: name: trino-coordinator# ...5. Install and Use
Section titled “5. Install and Use”uv add floe-compute-trino
# manifest.yamlplugins: compute: type: trino config: host: trino.example.com