Workflow export and import via versioned JSON envelope

rafal-fryc adds a file-based transport for workflows so they can move between Mike instances without a shared account. Download from one side, upload on the other.

workflowintegration

The change is intentionally narrow. Each workflow serializes to a JSON envelope with a format identifier, a version number, and the fields that define its behavior: title, type, practice, prompt, and columns config. Download lives on the workflow row; import lives in the page header behind a file picker with a strict parser that surfaces typed errors inline if the envelope is malformed or missing required fields.

Server-side footprint is minimal. No new backend endpoints, no schema changes, no Supabase modifications. The import path reuses the existing workflow-creation endpoint, so an imported workflow is just a normal workflow owned by the importing user. Email sharing, the existing transport for single-recipient handoff, is left untouched.

The test plan covers round-trips for both assistant and tabular workflow types - the tabular case matters because it's the one where the columns config carries real substance - plus negative cases for arbitrary JSON and wrong-format envelopes, and a regression check against neighboring flows like the email share modal and bulk delete.

So what Worth pulling if your deployment has multiple isolated Mike instances and teams want to share prompt templates or configured workflows between them without a shared account. The change is small and additive with no backend footprint. Skip it if your users are all on the same instance with shared accounts - email sharing already covers that case.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?