Skip to main content

:::note Generated reference Generated from honeyframeapi 0.1.8 — do not edit by hand. :::

honeyframeapi.plugin_recipe

Plugin recipes — create, configure, and run flow recipes of a plugin-contributed custom recipe type.

A plugin's plugin.yaml may declare custom recipe_types (each binding a type id to a curated handler + a parameter schema). An org admin enables the plugin, and those types become creatable on the flow canvas — and here.

Discover the types your org has enabled, then create + run one:

types = client.plugin_recipe_types() # [{type, plugin, params, …}]
proj = client.get_project(1)
rec = proj.create_plugin_recipe(
"_demo.rowcount", "count_orders",
config={"input_table": "marts.fact_orders"},
run=True,
)
print(rec.last_result["output"]) # {schema, table, row_count}

Like ML recipes, these are Flow "AI recipes" under /api/flow/ai-recipes (create/get/update/run/runs/delete). Creation is gated server-side to the owning enabled plugin (403 otherwise), and handlers are curated install-dir plugin code — never tenant upload.

class PluginRecipe​

A handle to a Flow recipe of a plugin-contributed custom type.

PluginRecipe.get()​

get() -> dict

Fetch the recipe row (incl. run_config).

PluginRecipe.config​

property

config: dict

The recipe's run_config — the param values the handler reads.

PluginRecipe.update_config()​

update_config(config: dict, *, merge: bool = True) -> PluginRecipe

Update run_config (PUT). merge=True patches onto the existing config; False replaces it wholesale.

PluginRecipe.run()​

run(*, wait: bool = False, poll_interval: float = 5.0, timeout: float = 1800.0) -> dict

Execute the recipe via the plugin's curated handler. Returns the run result (status, rows_affected, output, error on failure), also cached on last_result. wait is accepted for symmetry — the run endpoint is synchronous (returns once the handler finishes). timeout (seconds) bounds the HTTP call, since the run happens inside it.

PluginRecipe.runs()​

runs(*, limit: int = 20) -> list[dict]

Execution history for this recipe.

PluginRecipe.delete()​

delete() -> None

Delete the recipe.

Functions​

create_plugin_recipe()​

create_plugin_recipe(project, recipe_type: str, name: str, *, config: Optional[dict] = None, inputs: Optional[list] = None, output_datasets: Optional[list] = None, run: bool = False, wait: bool = False) -> PluginRecipe

Create a flow recipe of a plugin-contributed recipe_type and return a PluginRecipe.

The server gates creation on the owning plugin being enabled for your org (403 otherwise — list creatable types with plugin_recipe_types). config becomes the recipe's run_config (the param values the handler reads). inputs/output_datasets follow the normal recipe I/O contract (a non-standalone type needs at least one — output_datasets defaults to [name] server-side). With run=True it executes immediately and the result lands on PluginRecipe.last_result.


Verified against honeyframeapi 0.1.8.