cancel
Showing results for 
Search instead for 
Did you mean: 

Version Control on Flow Definitions

As would any decent tool where users make changes to code or configuration changes, implementing a version control component, would allow a user to a) rollback, and b) reference back to code.  Optional additional features show which user performed the edits, datetime stamp of changes, and code diff tool between versions.

Status: Under Review
Comments
Level: Powered On

Yes please. I mean the feature to duplicate a flow is useful but not as convenient.

Level: Power Up

It honestly blows my mind that this wasn't a core part of MS Flow from the get-go. In an enterprise scenario, it's not uncommon to be rolling back changes or to restore from a backup in the event that changes break the process (or simply that the business has changed there mind). This, coupled with not being able to temporarily disable actions, makes MS Flow a hard-sell when trying to convince our BAs, whose whole job revolves around automating workflows, to adapt a new platform. It's a real shame because MS Flow initially showed all lot of promise (primarily due to the abundance of connectors and clean interface). I can't, however, expect anyone to use this in a critical production scenario without these basic management features.

Level: Powered On

I must agree with you @reat. I'm a hardcore Flow user, with hundreds of flows, many integration with APIs, Dynamics, SQL, Azure, Power BI, CDS, etc...

 

It's highly frustrating not have the ability to simply disable a few actions to test a theory while troubleshooting, or reverting back a version or two.

Level 8

@reat @asdfaf4 Totally agree on the sentiment.

With that, and having experienced the pains myself, I'd share my workarounds to these deficiencies.

 

To emulate basic version control,

I've come up with a naming convention that has flow display name start with a char code and a running number.
On a major change, create a new flow by "saving as" and increasing the running number. Do not turn this new flow on and just keep it aside.This let's me open two versions side by side to inspect and compare. (It is another great shame that we cannot search within the code to see where a variable is used etc.! )

For the minor changes, I export the flow as a package and as a json file and

upload both to the SharePoint library. Export adds the timestamp so they are all unique.
JSON files are readable but you will need a package file to import (restore previous version) the flow. Thus both.

Of course you may choose to make the daily backup automatic by having another flow to export all flows modified through the day.

 

For temporary switching steps off,

I set the step's "run after" condition to "failed", assuming normally we would run after successful execution of a previous step. Then the step that immediately follows, I'd set the "run after" to "skipped".

 

It's kind of dirty and you have to remember to revert the changes later. But heck, we've got to have the work done, so everything goes.

 

And again, to make it clear for MS Flow team:

absence of a version control in the enterprise settings is not good.

No ability to search within the flow, compare two flows is a major drawback.

No support for regular expressions is a total nonsense. Especially as it exists in PowerApps and Applications.

 

Hope this helps,

Inna

 

 

Level: Power Up

@in2217 

 

Thank you for the recommendation! I was hoping there was something a little more robust than essentially performing manual backups to achieve this. I like the idea of saving each modified workflow to a SharePoint library, so we can just let the library handle versioning, though. That's obviously not ideal, but it will provide some level of version control. What would be really cool is to see some sort of direct integration with GitHub/On-Premise GitLab.

 

I didn't even consider search or regex, both of which I agree are important features. Luckily, though, most of our BAs are terrified of regex, so I don't think they'll miss it to much.