Version flows
When you need to update a flow’s structure or add new steps, create a new flow version with a unique slug. This approach keeps existing runs safe while allowing you to deploy new functionality.
Flow immutability
Section titled “Flow immutability”Flows are immutable by design. Once registered in the database, their structure cannot be modified to protect running workflows and maintain data integrity.
Changing flow shape requires a new flow definition with a unique flow_slug. Use pgflow compile to generate the proper migration.
Safe vs. breaking changes
Section titled “Safe vs. breaking changes”| Safe (No New Version Needed) | Breaking (Requires New Version) |
|---|---|
| ✅ Modifying step handler code | ❌ Adding/removing steps |
| ✅ Adjusting retry parameters | ❌ Changing step dependencies |
| ✅ Updating timeout values | ❌ Modifying input/output types |
| ✅ Bug fixes within handlers | ❌ Changing step slug names |
Create a new version
Section titled “Create a new version”Put the new flow in its own file with a versioned slug.
Directorysupabase/functions/
Directory_tasks/
- fetchUserData.ts
- sendEmail.ts
Directory_flows/
- greet_user.ts
- greet_user_v2.ts // 👈 new
-
Create new flow file
supabase/functions/_flows/greet_user_v2.ts export default new Flow<Input>({slug: 'greet_user_v2',// ...new configuration and step definitions}) -
Compile it
Compile the new flow to SQL which generates a migration file:
npx pgflow@latest compile supabase/functions/_flows/greet_user_v2.ts -
Run migration
npx supabase migrations up --local
Old version stays live; new one is separate.
See Also
Section titled “See Also” Delete flow and its data Development cleanup
Tune deployed flows Adjust production flow settings