arcalot / arcaflow-engine

Arcaflow is a highly-portable workflow engine enabling modular and validated pipelines through containerized plugins.
https://arcalot.io/arcaflow/
Apache License 2.0
6 stars 9 forks source link

[RFE] Hide inputs from FlowCharts #88

Open rsevilla87 opened 1 year ago

rsevilla87 commented 1 year ago

Please describe what you would like to see in this project

Automatic FlowChart generation based on mermaid is quite cool, the problem is that arcaflow-engine make the inputs part of that diagram, that makes the generated diagrams ugly and not very readable.

i.e:

flowchart TD                                                                                                           
subgraph input                                                                                                                                                                                                                                
input.kubeburner_es_index                                                                                                                                                                                                                     
input.kubeburner_iterations                                                                                                                                                                                                                   
input.kubeburner_timeout                                                                                                                                                                                                                      
input.kubeburner_gc                                                                                                                                                                                                                           
input.kubeconfig_str                                                                                                                                                                                                                          
input.kubeburner_alerting                                                                                                                                                                                                                     
input.kubeburner_churn_percent                                                                                                                                                                                                                
input.kubeburner_es_server                                                                                             
input.kubeburner_churn_delay                                                                                           
input.kubeburner_churn                                                                                                 
input.kubeburner_loglevel                                                                                                                                                                                                                     
input.kubeburner_burst                                                                                                 
input.kubeburner_qps                                                                                                   
input.kubeburner_churn_duration                                                                                                                                                                                                               
end                                                                                                                                                                                                                                           
input.kubeburner_burst-->steps.kubeburner                                                                              
input.kubeburner_qps-->steps.kubeburner                                                                                
input.kubeburner_es_index-->steps.kubeburner
input.kubeburner_iterations-->steps.kubeburner
input.kubeburner_timeout-->steps.kubeburner
steps.uuidgen-->steps.uuidgen.outputs.success
steps.uuidgen-->steps.uuidgen.outputs.error
steps.uuidgen.outputs.success-->steps.kubeburner
steps.uuidgen.outputs.success-->output
steps.kubeburner-->steps.kubeburner.outputs.error
steps.kubeburner-->steps.kubeburner.outputs.success
input.kubeconfig_str-->steps.kubeburner
input.kubeburner_es_server-->steps.kubeburner
input.kubeburner_churn-->steps.kubeburner
input.kubeburner_loglevel-->steps.kubeburner
steps.kubeburner.outputs.success-->output

It would be nice to hide the inputs from the flow chart, or at least having an option to opt them out

jaredoconnell commented 1 year ago

That shouldn't be too hard to do. It may require modifications to the dag library. We have several higher priority tasks right now. If you want to learn more about the architecture, feel free to give it a try. If you need help, ask in forum-arca