How to deploy a subflow to several systems

I suspect this has been asked before but can't find anything searching the forum.

I have some subflows that are used on several systems. Does anyone have a clever technique to deploy a new version out to the other systems?

Like FlowFuse with Snapshot?

I don't think so, the systems have different flows, I use the same subflow on multiple systems and want to get a new version of just the subflow out. I can't just import the subflow because that would not replace the existing one.

It does if you select the replace option colin


Brilliant, I thought. Unfortunately I am not seeing that option. I just see

Both nodes were already selected.

FWIW (and you recent venture into subflow modules)

you could increment the version in package.json, and it should update the instance as it will any other module?

Admittedly I'm assuming the setup here (like if you're converting it to a module?) :grimacing:

Could make for better version control in the long if not already.

This isn't a subflow packaged as a module, it is just a subflow, so there isn't a package.json.

I can't package it as a module yet as packaged subflows containing D2 ui nodes don't work.
Subflows with ui-nodes don't fully work, but are usable.

Got it!

interestingly, I also get the replace option

Is this a UX thing - the name of the subflow instance seems long in your screenshot - maybe pushing it off screen?

The ID's have to match it seems. Somehow I have got a different id for the subflow in the one I am trying to replace. That then begs the question as to how it identifies it as already existing in the workspace.

I feel a bit of flow file hacking coming on.

1 Like

At some point you have imported a copy.

Get your IDs aligned and you should be presented with the import-> replace option.

Yes, I am sure you are right. In that case, how does it know to say "Some of the nodes you are importing already exist in your workspace"? The import only includes the subflow itself.

Answering my own question, one of the nodes in the subflow had the same id as a node on the destination machine. I think I probably imported it from there when building the subflow on the other machine.