Code Monkey home page Code Monkey logo

st2flow's Introduction

st2flow - StackStorm Workflow Editor

DEPRECATED!
The Workflow Designer codebase was integrated directly into st2web since st2 v3.4.0 (see announcement) and this repository is obsolete now.

Visual editor for creating and updating StackStorm workflows. This editor is currently only available for enterprise licenses.

Requirements

  • Node v10

  • Lerna, Yarn, and Gulp

    sudo npm install -g gulp-cli lerna yarn
    

Installation

This project uses Lerna and should be considered a "subset" of the st2web project. It is currently required that the st2web repo be cloned next to the st2flow repo:

├── StackStorm
|   ├── st2flow
|   └── st2web

Here is the basic flow of commands to get started:

git clone [email protected]:StackStorm/st2web.git
# ...or https: https://github.com/StackStorm/st2web.git

cd st2web
lerna bootstrap

cd ../
git clone [email protected]:StackStorm/st2flow.git
# ...or https: https://github.com/StackStorm/st2flow.git

cd st2flow
lerna bootstrap

Running the app and tests

# Run the app, available on http://localhost:3000
# Note, it takes ~10 - 20s to get running but then you're in watch mode
gulp

# Run unit tests
gulp test-unit

# Linting
gulp lint

Copyright, License, and Contributors Agreement

Copyright 2015-2020 Extreme Networks, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

By contributing you agree that these contributions are your own (or approved by your employer) and you grant a full, complete, irrevocable copyright license to all users and developers of the project, present and future, pursuant to the license of the project.

st2flow's People

Contributors

adrifolio avatar arm4b avatar armab avatar bigmstone avatar bmomberger-bitovi avatar christopherjbaker avatar designbyonyx avatar emmet-delaney avatar emmetdel avatar enykeev avatar kami avatar lindsayhill avatar m4dcoder avatar mickmcgrath13 avatar ryangwilson avatar vineeshjain avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

st2flow's Issues

[3.0dev-5] Logo should be used in header

Using st2flow 3.0dev-5.

When I launch Workflow Designer (e.g. by clicking '+' button from Actions tab on Web UI), on the top left it says "Extreme Workflow Designer", with different font settings used for "Extreme" and "Workflow Designer"

image

It should use the Extreme logo, similar to what we have on 2.9:

image

Flow does not insert inputs into metadata or workflow implementation

A common complaint for 'Flow' is that it does not insert inputs into the metadata, nor does it insert them as an input in the implementation or task.

See screen shots below. First step would be to insert mandatory inputs in the metadata and implementation. This would help customers looking to go down the 'GUI only' path for workflow creation. If users wanted to insert any optional input parameters, that's their choice.

implementation

metadata

"Run Workflow" Dialog in st2flow does not honor position parameters

In st2web, action parameters are displayed first by position:, then any remaining required tasks in alphabetical order, then any remaining tasks in alphabetical order. This is working as designed.

In st2flow, I can run a workflow. When I do that, it prompts me for input parameters. This dialog box does not honor the position: parameter.

Example workflow metadata:

{
  "name": "test_wf",
  "runner_type": "mistral-v2",
  "tags": [],
  "enabled": true,
  "entry_point": "workflows/test_wf.yaml",
  "notify": {},
  "uid": "action:default:test_wf",
  "parameters": {
    "skip_notify": {
      "default": [],
      "type": "array",
      "description": "List of tasks to skip notifications for."
    },
    "P2": {
      "position": 2,
      "required": true,
      "type": "string"
    },
    "task": {
      "type": "string",
      "description": "The name of the task to run for reverse workflow."
    },
    "P3": {
      "position": 3,
      "type": "string"
    },
    "workflow": {
      "type": "string",
      "description": "The name of the workflow to run if the entry_point is a workbook of many workflows. The name should be in the format \"<pack_name>.<action_name>.<workflow_name>\". If entry point is a workflow or a workbook with a single workflow, the runner will identify the workflow automatically."
    },
    "P1": {
      "position": 1,
      "required": true,
      "type": "string"
    },
    "context": {
      "default": {},
      "type": "object",
      "description": "Additional workflow inputs."
    }
  },
  "ref": "default.test_wf",
  "id": "5a1f280c57c09a4c4b001228",
  "pack": "default"
}

Dialog box when running workflow from st2flow:

run_workflow

The position parameters are correctly ordered in st2web.

Can't change the property type from Enum to other types

(Reported by Customer)

When changing parameter type from “enum” to “string” old settings are kept.
Which actually makes it impossible to use the parameter.
In the example below “Customer_ID” was defined as “enum” to start with and then changed to “string”.
When running the workflow in the current state following option is presented for the parameter “Customer ID” which is not expected for a “string” type parameter.
There is no way to actually “fix” this using the GUI.

3.0 Canvas -- Transition drawing tasks

This is a breakout from the canvas work from #149 , providing greater detail.

  • Fix SVG path creation algorithm for transitions (3 days)
  • Make transitions auto-avoid crossing task boxes (2 days)
  • Transition crossing tasks
    • Make transitions cross minimally (2 days)
    • crossing transitions should "bump" when cross can't be avoided. (0.5 day)

Flow does not render properly for DOS files

If user creates a workflow definition on a Windows system, and transfers it to their ST2 system retaining Windows-style line endings, it does not render properly.

It looks like this:

incorrect_render

Note that the tasks are not linked together properly, and we see the extra characters show up in the code viewer.

And here's what it looks like if we run dos2unix on our workflow file:

proper_render

Describe syntax for adding metadata with comments

This issue is a place to bikeshed about # comment parsing in the new st2flow editor. As of right now, the only meaningful comments in a workflow are used to describe the x and y coordinates for a task in the workflow editor:

tasks:
  # [350, 250]
  task1: ...

Are there any other considerations we should make? For example, we could support arbitrary meta-data in the form of JSON:

tasks:
  # [350, 250]
  # { "foo": "bar" }
  task1: ...

... or multiline

tasks:
  # [350, 250]
  # { 
  #    "foo": "bar" 
  # }
  task1: ...

Please leave your thoughts in a comment.

[3.0dev] BLOCKER: "Run workflow" operation doesn't work / it's not implemented

It appears that run workflow operation doesn't not work / it's not implemented.

If that's the case (not implemented) we should do something more obvious with it because right now it's just causing confusion:

  1. Remove "Run" icon until it's implemented and working
  2. When user clicks on a "Run" icon display a pop up message which says it's not implemented

screenshot from 2018-12-07 10-42-09

Flow login box erroneously strips backslashes

Cross-posting from extremenetworks/ewc#4

If you go direct to https://ST2/flow (rather than cross-launch from st2web), and attempt to login, using the drop-down on the top right, it doesn't work.

The pattern attribute of the HTML input elements has what should be \s to disallow whitespace characters in the URL, but the backslashes are getting stripped out so it’s actually disallowing s characters in the URL

Display more useful error if user does not have permissions to edit workflow

If st2flow can't update an existing workflow due to insufficient permissions, it throws an "internal server error" message. This is not very helpful. It would be better to provide an error like "Unable to save workflow. Please check you have permissions", or something similar.

Steps to reproduce:

  • Install BWC 2.5 + DC Fabric Suite 1.1.1
  • Note default filesystem permissions - look at dcfabric and network_inventory:
 ubuntu@dcf:/etc$ ls -l /opt/stackstorm/packs/
total 36
drwxrwxr-x 5 root st2packs 4096 Nov  7 19:36 chatops
drwxrwxr-x 5 root st2packs 4096 Nov  7 19:36 core
drwxr-xr-x 4 root root     4096 Nov  7 19:44 dcfabric
drwxrwxr-x 5 root st2packs 4096 Nov  7 19:36 default
drwxrwxr-x 4 root st2packs 4096 Nov  7 19:36 linux
drwxrwxr-x 7 root st2packs 4096 Nov  7 19:39 network_essentials
drwxr-xr-x 5 root root     4096 Nov  7 19:44 network_inventory
drwxrwxr-x 5 root st2packs 4096 Nov  7 19:36 packs
drwxrwxr-x 6 root st2packs 4096 Nov  7 19:37 st2
ubuntu@dcf:/etc$
  • Login to st2web, go to actions, dcfabric pack. Edit the add_multihomed_endpoint workflow (or any other mistral workflow)
  • Attempt to save workflow
  • Get error message:
    workflow_save_error

[3.0dev5] Console Error - window.controllers/Controllers is deprecated

This message is logged in the Console on Firefox 63.0.3:

window.controllers/Controllers is deprecated. Do not use it for UA detection.

package.json has this "brace": "0.8.0"

The underlying ace package fixes this here. I believe that was in ace 1.3.0.

brace currently uses ace 1.2.9. Looks like development has stalled on brace, and is not merging PR to go to ace 1.4.1. May need to reconsider use of brace.

[3.0dev] BLOCKER: Flow goes into infinite pack icon loading loop if pack doesn't contain an icon

Fresh installation with examples and fixtures pack installer.

If I open flow (either manually or by trying to edit an existing workflow), the flow goes into an infinite pack icon loading loop if a pack doesn't contain an icon. It looks like in this case the offending pack might be fixtures, but flow should handle such thing more gracefully.

Infinite loading loop also causes the whole browser to freeze (Chrome on Linux).

This is also a blocker and preventing me to test flow more due to that bug freezing the whole browser.

screenshot from 2018-12-06 10-17-45

screenshot from 2018-12-06 10-18-40

[3.0dev-5] No option to edit Orquesta or Action Chains

Using bwc-ui 3.0dev-4 and st2flow 3.0dev-5 packages on Ubuntu.

If I login to the Web UI, and go to the Actions tab, I have an "Edit" button for existing Mistral workflows:

image

I do not have an "Edit" button for Orquesta or Action Chains, e.g.:

image

Expected behavior: I should be able to edit an existing Orquesta workflow.

[3.0dev] Low priority - provide picker for transition color

We now provide user over-ride for transition arrow colors, rather than defaulting to success == green, failure == red.

This is good.

image

But it is not immediately obvious what options users have, or what the syntax is.

Should we provide some sort of drop-down list of colors, or similar?

3.0 Canvas -- Task placement in canvas

  • Place single item when others have fixed locations
    • Deterministic semi-poisson-disc placement (2 days)
    • (If desired) adjust siblings when needed for space (1 day)
  • Enforce minimum distance between item centers.
    • ...for automated placement (0.5 days)
    • ...for user initiated placement (1 day)
  • Place multiple items in a batch (0.5 days)
  • Layout an entire YAML tree. (0.25 days)

Internal Server Error when running workflow

When running workflow within flow we recieve a 500 response from ST2 API if the file has incorrect permissions. It would be a better UX if we returned a more appropriate return code and some metadata to display to the user to help them fix the issue easier.

Example ST2 API log which is easy to see what to do to fix it for us dev types:
https://gist.github.com/bigmstone/1933abe6dd6a700ceb3b22b37c97e899

This might not be high enough priority to worry about, but putting it out there in case anyone agrees.

No love for safari

Work great with Chrome not so good with Safari - what gives?

Specifically, drag n drop did not work.

Safari : Version 8.0.8 (10600.8.9)

Trying to SAVE/UPDATE a workflow after opening flow via URL https://${IP}/flow throws weird errors

Steps to repro

  1. Open flow by directly typing the URL https://${IP}/flow

  2. Start creating a workflow by dragging and dropping.

  3. Now try to save the workflow or update the workflow. You get stack traces like
    https://gist.github.com/lakshmi-kannan/c1c82126b58846df86f5b2264c2b94d8
    Screenshot: https://www.evernote.com/l/ANG2D6TsprlMt4lBQCNt2u6ZK-3fSdsvJ48

It appears by typing the URL directly, we are entering "unauthed" territory and therefore everything pretty much fails. We need better error reporting and actually show a login page if we are unauthed.

[3.0dev5] BLOCKER: Unable to edit new workflow

Using st2flow 3.0dev-5 package, with Firefox 63.0.3 on macOS.

I launch Workflow Designer using the "+" button from the Actions tab on the Web UI.

I then attempt to edit some of the metadata, such as change the Runner Type from orquesta to Mistral or Action Chain. Or I attempt to type something in the Name or Description field. As soon as I do that, the page is replaced by a blank (white) page. I have to reload the page to get things back, but my attempted changes are lost.

Typical Console message is this:

TypeError: "e is undefined"
	set https://10.10.10.10/flow/js/main.js:1:452289
	value https://10.10.10.10/flow/js/main.js:1:281884
	r https://10.10.10.10/flow/js/main.js:1:1577518
	_ https://10.10.10.10/flow/js/main.js:1:1576599
	f https://10.10.10.10/flow/js/main.js:1:165989
	f https://10.10.10.10/flow/js/main.js:1:165930
	g https://10.10.10.10/flow/js/main.js:1:1426654
	f https://10.10.10.10/flow/js/main.js:1:166105
	setMeta https://10.10.10.10/flow/js/main.js:1:211453
	onChange https://10.10.10.10/flow/js/main.js:1:212909
	value https://10.10.10.10/flow/js/main.js:1:26371
	oo https://10.10.10.10/flow/js/main.js:1:1341899
	no https://10.10.10.10/flow/js/main.js:1:1341651
	hs https://10.10.10.10/flow/js/main.js:1:1380847
	ds https://10.10.10.10/flow/js/main.js:1:1376206
	us https://10.10.10.10/flow/js/main.js:1:1375822
	Le https://10.10.10.10/flow/js/main.js:1:1387289
	Be https://10.10.10.10/flow/js/main.js:1:1307343
	Ar https://10.10.10.10/flow/js/main.js:1:1327674
	bs https://10.10.10.10/flow/js/main.js:1:1382029
	kr https://10.10.10.10/flow/js/main.js:1:1327417
 main.js:1:1360142

This seems to be because the model is not properly initialized.

Ugly workaround:

Go to the YAML editor (look for < > button).

Add this under the 'gears' icon:

name: test
parameters:
  test:
    type: string

Then go to the 'tasks' icon (looks like computer network symbol), and add this:

version: 1.0
description: A new task
tasks:
  task1:
    action: core.noop

Then you can proceed with editing the workflow, saving it, etc.

Comment before the task should be a part of this task, not last one.

So say, you have a workflow and you've added a nice comment before the task to explain what it does (as @m4dcoder did in https://github.com/StackStorm/st2incubator/blob/master/packs/st2ci/actions/workflows/mistral.yaml):

...
            notify:
                action: slack.post_message
                input:
                    channel: '#thunderdome'
                    message: '```[MISTRAL-CI][<% $.mis_repo_base %>] STATUS: SUCCEEDED```'

            # Declare error handler(s) for the main workflow here.
            teardown_on_failure:
                workflow: teardown_infra
                input:
                    host: <% $.hosts.get(test) %>
                    clones: <% $.setup.clones %>
                on-complete:
                    - notify_on_failure
...

Now you want to connect this task to the other one and this is what you end up with:

...
            notify:
                action: slack.post_message
                input:
                    channel: '#thunderdome'
                    message: '```[MISTRAL-CI][<% $.mis_repo_base %>] STATUS: SUCCEEDED```'

            # Declare error handler(s) for the main workflow here.
                on-success:
                    - teardown_on_failure
            teardown_on_failure:
                workflow: teardown_infra
                input:
                    host: <% $.hosts.get(test) %>
                    clones: <% $.setup.clones %>
                on-complete:
                    - notify_on_failure
...

[3.0dev-5] Header Colors are wrong (mix of Extreme + Brocade)

Using st2flow 3.0dev-5.

When I launch Workflow Designer (e.g. by clicking '+' button from Actions tab on Web UI), the header colors are wrong:

image

This looks like a mix between older Brocade colors, and Extreme colors.

Expected behavior: I should see the same colors as on 2.9:

image

st2flow is not reachable if run in a VM

By default binds to localhost

$ sudo netstat -anp | grep 4000
tcp        0      0 127.0.1.1:4000          0.0.0.0:*               LISTEN      25307/gulp

Changed binding to all interfaces

diff --git i/gulpfile.js w/gulpfile.js
index 1271cfb..efc3891 100644
--- i/gulpfile.js
+++ w/gulpfile.js
@@ -131,6 +131,7 @@ gulp.task('static', function () {
 gulp.task('serve', ['build'], function() {
   gulp.src('dist')
     .pipe(webserver({
+      host: "0.0.0.0",
       port: 4000
     }));
 });

and now ...

$ sudo netstat -anp | grep 4000
tcp        0      0 0.0.0.0:4000            0.0.0.0:*               LISTEN      25362/gulp

Able to run st2flow in a VM and connect from my local machine.

Don't make me run on my local machine :)

v3.0 TODO

This is a living list of TODOs for the version 3 release. This list should be constantly updated as items are completed or new issues are discovered. We encourage anybody and everybody to leave comments about any glitches, bugs, etc. and respectfully ask that Kirill and myself be the only ones to edit this list directly. Thanks!

Terminology

  • HIGH PRIORITY - as the name implies...
  • BIG EFFORT - used to denote something that could take longer than a couple days

Global

  • HIGH PRIORITY - standardize test scripts and paradigms to work with st2web repos
  • HIGH PRIORITY - update startup script to allow configurable port (see this PR)
  • handle routing - load correct workflow (2 human-days)
    • This should be done last as using hard-coded dummy data allows us to work quickly right now.
  • overall aesthetic and UX review (Adri) (5 days)
  • current user indicator (with log out, etc) (1 day)
  • make use of workflow validation api (.5 day, postpone)
  • BIG EFFORT - workflow execution view (postpone)
  • HIGH PRIORITY - make tests pass in CI (.5 day)
  • write UI tests (5 days)
  • cover UI part in type definitions (1 day)
  • compile an updated icon set (Adri)

Model

  • HIGH PRIORITY - Any changes to transitions should supply both the changed transition AND the entire set of transitions for the parent ("from") task. (1 day)

    • It is impossible to cross reference a single transition from the common TransitionInterface to a model-specific transition (mainly with orquesta). See this comment below more in depth explanation.
  • Use schema validation to ensure yaml is what we expect (done in this PR)

  • HIGH PRIORITY - Allow new comments to be written back to yaml

  • Infer formatting and stylistic choices from existing tokens when adding new tasks, transitions, etc.

    • validate we're happy with the way style is followed
  • Implement metadata model

    • HIGH PRIORITY - fix JSON mode in st2flow-yaml (workaround)
    • Sync with core team to implement file access api
  • Implement transition update\delete API for orchestra

  • Add ability to rename tasks

  • Algorithm to determine "success" or "fail" with orquesta transitions

  • Transition data comments (transition color, position of a start and end point on the task)

  • BIG EFFORT - Implement Mistral model (2 days)

  • BIG EFFORT - Mistral to Orchestra conversion (postpone, 4 days)

Canvas

  • visual indications/styles for selected task

  • transition selection (1 day)

  • action button behaviors (undo, redo, et al) (.5 day)

  • smart placement of tasks which have no coordinates

    • port existing algorithm (1 day)
    • determine if our existing algorithm still holds
    • take into account multiple connection points
  • add pack icons to tasks (2 hours)

  • allow replacing icons with emoticons (pack icons provide little information) (postpone)

  • BIG EFFORT allow resizing tasks (postpone)

    • make sure smart placement and collision detection algorithms are aware of that change
  • transition appearance tweaking

    • gracefully ignore hardcoded values when tasks are too close together (1 day)
    • improve algorithm of calculation "step" position depending on tasks relative position
    • synchronize task "step" position of multiple transitions for better appearance
  • drag and drop - transition arrow should follow box while being dragged (could have severe performance penalties) (.5 day naive implementation + whatever it takes to make it quick) (postpone)

  • in the same vein, transition arrow should follow cursor when you drag the handle or move it over another's task handle (^^)

  • detect\prevent crossing of transition lines (postpone, review during UX check)

  • bypass other tasks and leave enough clearance for better visual appeal (^^)

  • custom styling (color, dashing, dotting, outlines, midpoint icons)

This two are most likely related to model not updating properly and need reevaluation once we done with coordinates in comments:

  • drag and drop - item shifts on second drag
    • upon second click, item jumps to original position before moving

Editor

  • HIGH PRIORITY - handle YAML errors gracefully

    • prevent hard crash
    • meaningful, concise error messages (need UX input)
      (fixed in this PR)
  • HIGH PRIORITY - allow yaml scrolling (scrolling fixed here)

  • Show yaml errors in editor (.5 day)

  • Add search (postpone)

  • Show selected task (1 day)

  • BIG EFFORT Update editor to new version (postpone until further notice)

Details Form

  • update form based on selected task
  • handle form change events (needs meta model)
  • add text editor for metadata (.5 day)
  • finish work on action parameters form (1 day)

Palette

  • HIGH PRIORITY - dropping a task/workflow onto the canvas should create a new task
  • HIGH PRIORITY - allow scrolling (scrolling fixed here)

Workflow metadata not saved to disk

(Tested with BWC 2.3.1).

Steps to reproduce:

  • Install BWC
  • Login to Web UI and go to Actions tab
  • Click '+' button, to launch Workflow Designer
  • Drag a couple of actions onto the canvas
  • Go to settings, give action a name, e.g. test_save_to_disk, leave it in pack default.
  • Save workflow
  • Login to BWC server via SSH, go to /opt/stackstorm/packs/default/actions
  • Run ls and ls workflows. Observe that
    /opt/stackstorm/packs/default/actions/workflows/test_save_to_disk.yaml exists, but /opt/stackstorm/packs/default/actions/test_save_to_disk.yaml does NOT exist.

Workaround:

  • Run st2 action get default.test_save_to_disk -y, and export the action metadata to YAML, which can then be saved to /opt/stackstorm/packs/default/actions/test_save_to_disk.yaml.

Expected behavior:

  • All relevant workflow metadata is saved to disk, so that I can easily copy my workflows between systems.

See StackStorm/st2#2202

[3.0dev] BLOCKER: Unable to re-open workflow after saving

Using Firefox 63.0.3.

Steps to reproduce:
1/ Load the examples pack
2/ Login to Web UI, go to Actions tab
3/ Find examples.mistral-basic. Click Edit button
4/ Workflow opens as expected
5/ Save workflow
6/ Re-open workflow - now it shows a blank workflow.

Clearing cache doesn't help.

Potentially related nginx log entry:

"GET /api/v1/packs/views/file/examples/ HTTP/1.1" 404 57 "https://10.10.10.10/flow/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:63.0) Gecko/20100101 Firefox/63.0"

Note that is trying to retrieve the directory listing. My guess is that it's somehow related to a failure to construct a valid path.

I think that what might be going on here is related to new behavior in st2flow where we can now store the action metadata file, not just the workflow.

This is what Mongo contains after editing examples.mistral-basic:

> db.action_d_b.find({"ref": "examples.mistral-basic"})
{ "_id" : ObjectId("5c07373a6cb8de42283ae319"), "uid" : "action:examples:mistral-basic", "metadata_file" : "", "name" : "mistral-basic", "ref" : "examples.mistral-basic", "description" : "Run a local linux command", "enabled" : true, "entry_point" : "workflows/mistral-basic.yaml", "pack" : "examples", "runner_type" : { "name" : "mistral-v2" }, "parameters" : { "cmd" : { "required" : true, "type" : "string" }, "timeout" : { "default" : 60, "type" : "integer" } }, "output_schema" : {  }, "notify" : {  } }

Note "metadata_file" : ""

If I reload the actions (sudo st2ctl reload --register-actions), I then see this in the DB:

> db.action_d_b.find({"ref": "examples.mistral-basic"})
{ "_id" : ObjectId("5c07373a6cb8de42283ae319"), "uid" : "action:examples:mistral-basic", "metadata_file" : "actions/mistral-basic.yaml", "name" : "mistral-basic", "ref" : "examples.mistral-basic", "description" : "Run a local linux command", "enabled" : true, "entry_point" : "workflows/mistral-basic.yaml", "pack" : "examples", "runner_type" : { "name" : "mistral-v2" }, "parameters" : { "cmd" : { "required" : true, "type" : "string" }, "timeout" : { "default" : 60, "type" : "integer" } }, "output_schema" : {  }, "notify" : {  } }

note: "metadata_file" : "actions/mistral-basic.yaml"

And now I can edit the action again. But as soon as I save the workflow, it stops working again.

Expected behavior: I should be able to edit a workflow, save it, then later re-open that workflow.

[v3.0dev] BLOCKER: Provide a better indication of "Workflow save" operation success / failure

Right now flow doesn't provide good indication if a particular user operation / action succeeded or failed.

A good example of that is saving a workflow - if you click save workflow you don't receive any visual indication of operation success or failure so you don't know if the workflow has been successfully saved or not.

Upon operation completion we should display a tooltip at the bottom or similar which says "Action / Workflow successfully saved" or "Failed to save workflow: error here".

Only way to check the status right now is to check the console and network tab which is unacceptable, imo.

Comments get stripped in transition blocks

By connecting two task together

...
            setup_st2:
                action: st2ci.setup_st2
                input:
                    host: <% $.host %>
                    repo: <% $.st2_repo %>
                    repo_branch: <% $.st2_repo_branch %>
                    repo_dir: <% $.st2_repo_dir %>
                    debug: <% $.debug %>
                publish:
                    st2_clone_path: <% $.setup_st2.clone_path %>
                on-error:
                    # Manually tear down mistral here because by the time setup_st2
                    # runs, the mistral infrastructure is already setup. Each setup
                    # task above automatically rollback on error unless debugging.
                    - teardown_mistral: <% not $.debug %>
...

becomes this

...
            setup_st2:
                action: st2ci.setup_st2
                input:
                    host: <% $.host %>
                    repo: <% $.st2_repo %>
                    repo_branch: <% $.st2_repo_branch %>
                    repo_dir: <% $.st2_repo_dir %>
                    debug: <% $.debug %>
                publish:
                    st2_clone_path: <% $.setup_st2.clone_path %>
                on-error:
                    - teardown_mistral
                    - compose_shas
...

Yeah, at the moment we also strip transition conditions, but that's another question.

Bug: Initial task addition after input parameter creates syntax error

When creating a new workflow if you add an input parameter before adding the first task the syntax for the workflow is created incorrectly. The following is an example of the incorrect syntax that is created:

---
version: '2.0'

default.test:
  tasks:
  input:
    - test_param
    task1:
      action: test.echoer

3.0dev Master Tracking Issue

This issue will track more specific issues identified during pre-3.0 release testing.

High Priority - ship blockers

Medium Priority

  • #181 Header Colors are wrong - should be easy fix - ship blocker - #195
  • #182 Logo should be used in header - should be easy fix - ship blocker - #195

Low Priority

  • #184 Console Error - window.controllers/Controllers is deprecated - probably hard to fix. Not blocker.
  • #187 - picker for transition arrow color. Not blocker.
  • #188 - drop-down indicator looks ugly. Not blocker

Add Parameter action shows "select" as parameter type

If I create a new workflow, and add a parameter, I need to choose a Type. One of the options in the drop-down list is "select".

new_param_select

This doesn't really make sense - if I choose 'select', then I will get a schema validation error when saving the workflow.

My guess is that the original intention was that 'select' is meant to be the first thing the user sees in the drop-down, to give them a clue that they need to choose something from this list...but they should be able to select 'select' itself.

Undo button to blank canvas

Undo button doesn't work properly undoing one task added to blank workflow.

To reproduce:

  1. Start a blank workflow
  2. Add a task
  3. Click undo.

Connecting all the task handlers to the same task results in a single arrow

If you connect all the task handlers (error, success, complete) to the same task, only one (first) arrow will be visible.

selection_232

I noticed this issue when testing the latest installer, but the st2flow code doesn't seem to include the git revision SHA so I'm not actually sure which version of st2flow is being used...

Please ignore this if it's a known bug / issue / limitation.

SVG link drawing is malformed

SVG link drawing is malformed when items are not exactly lined up.

screenshot 2019-02-04 11 14 03

When the tasks are aligned exactly the result is:
screenshot 2019-02-04 11 14 57

Import URLs from st2web are broken

#44
I'm trying to send an import request from st2web (as specified in StackStorm/st2web#217), but the API source isn't added, so if I have no sources pre-configured, st2flow will throw an error, and if I do, they'll be used instead of what's specified in the URL from st2web.

[3.0dev] Error: "should NOT have additional properties..."

If I install the examples pack, then edit examples.mistral-basic, I see this error at the bottom of the canvas:

image

I believe that this message is incorrect. The workflow definition looks like this:

version: '2.0'

examples.mistral-basic:
    description: A basic workflow that runs an arbitrary linux command.
    type: direct
    input:
        - cmd
        - timeout
    output:
        stdout: <% $.stdout %>
    tasks:
        task1:
            action: core.local cmd=<% $.cmd %> timeout=<% $.timeout %>
            publish:
                stdout: <% task(task1).result.stdout %>
                stderr: <% task(task1).result.stderr %>

That looks like a valid configuration to me. I see the same pattern with other workflows - that same error message.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.