opensearch-project / dashboards-flow-framework

A UI designer for constructing AI applications with OpenSearch
Apache License 2.0
6 stars 5 forks source link

Onboard update workflow API; add more guardrails and fine-grained state management #127

Closed ohltyler closed 3 months ago

ohltyler commented 3 months ago

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 include lastUpdated 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

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.