Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 2 commits into from
Apr 5, 2024

Conversation

ohltyler
Copy link
Member

@ohltyler ohltyler commented Apr 5, 2024

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:

  • creating a new workflow
  • making a change to a field and having to re-save
  • provisioning when there are no unsaved changes
  • blocking any other action (save or provision) until deprovision is executed. reactflow workspace is also in read-only state - no component dragging / selecting / zooming etc.
  • state updates for each scenario - (1) no workflow / loading, (2) workflow but unsaved, (3) workflow and provisioning, (4) workflow and deprovisioning, (5) workflow and provision complete, (6) workflow and deprovision complete
screen-capture.27.webm

Issues Resolved

Resolves #75

Check List

  • Commits are signed per the DCO using --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.

@ohltyler ohltyler changed the title Onboard workflow update; add more guardrails Onboard update workflow API; add more guardrails and fine-grained state management Apr 5, 2024
@ohltyler ohltyler merged commit 2a9f3a7 into opensearch-project:main Apr 5, 2024
11 checks passed
@ohltyler ohltyler deleted the add-update branch April 5, 2024 23:32
opensearch-trigger-bot bot pushed a commit that referenced this pull request Apr 5, 2024
…te management (#127)

Signed-off-by: Tyler Ohlsen <[email protected]>
(cherry picked from commit 2a9f3a7)
ohltyler added a commit that referenced this pull request Apr 5, 2024
…te management (#127) (#128)

Signed-off-by: Tyler Ohlsen <[email protected]>
(cherry picked from commit 2a9f3a7)

Co-authored-by: Tyler Ohlsen <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Workflow editor] Integrate with backend APIs
2 participants