Onboard update workflow API; add more guardrails and fine-grained state management #127
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR finishes out the basic CRUD flows for workflows, by adding support for updates to existing workflows, and further guardrails to prevent performing unsupported actions, such as provisioning with unsaved changes, making changes after provisioning, and only allowing more change after deprovisioning. Note that for update we only pass around the stateless
WorkflowTemplate
configuration, since this is what the update API expects. It doesn't make sense to includelastUpdated
as part of the template body when running the update API, for example. The utility function to strip down the state-related fields will be useful down the road as the single obj to pass around and have it be exportable as well.Note the main purpose is to implement all of the state management and be able to reflect them in some way on the UI. The final UX regarding how we will display the current state and current constraints is TBD. Also note that workflow versioning and potential changes to how we may support multi-provisioning may also have future impacts.
Demo video:
screen-capture.27.webm
Issues Resolved
Resolves #75
Check List
--signoff
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.