To separate data (inputs, logs), credentials, and test runs safely, many serious enterprise users ask for separate “test” and “production” projects (each linked to different branches on Github). The OpenFn core team often maintains 2 projects for its clients, but this process of maintaining and merging changes across the 2 types of projects requires a lot of manual steps. I think more enterprise customers would pay for “sandbox/test” project spaces if they knew there were features to make deployment/merging to production projects more seamless.
I think that enterprise customers would require this for use. I also think that less-technical customers could benefit from this greatly, if it was available and put forward as best practices for changes to be tested in a development environment, rather than in production.
Would this need to be (or be preferred as) at Project Level or at Workflow Level? Wouldn’t I want to have Test and Production Workflows under the same Project (and have them ‘linked’ within OpenFn such that I could switch between them or push one into the other)? Curious about whether that would need to be at Project level.
As for switching, we’ve been envisioning something like the stripe experience where you toggle between “test” and “live” and see a big banner at the top. All workflows in your prod project have corresponding workflows in your test project, but not all those in your test project are live in your prod project… you’d have to deem them ready to promote to production.
No data is shared between the live and test environment. New credentials must be made for the sandbox project, and they cannot be “production” credentials.
So the workflows sync (when promoted from test to prod), but neither credentials nor data move across the line.
Also, when working in a sandbox/test project, you might be able to choose to work on a new branch. (By default, you’re working on staging
and your live project is hooked up to main
, but when in the sandbox you might actually want to make changes to a workflow on yet another branch and it would be rad to support this. Almost a “draft mode” for an individual workflow in your sandbox/test project. (Then a PR to merge it into staging
?)