spiff-arena/docs/wish_list/wish_list.md

105 lines
7.2 KiB
Markdown
Raw Normal View History

2023-05-31 18:04:37 +00:00
# Wish List
The follow is a list of enhancements we wish to do complete in the near (or even distant future)
Feature/interstitial summary part 3 (#367) * throw an error if backend gives a 500 from interstitial page w/ burnettk * turn unexpected errors for the interstitial page into event stream responses to avoid error misdirection * pyl * raise the api_error from the original and make the render_data method private * Feature/interstitial summary (#337) * * Process instance logs and messages are now components rather than pages, and are included within tabs on the process instance page, along with the diagram. * Removed the Zoom and Move modules when showing the readonly Diagram. Assured this readonly view is resized to fit the space when possible. * Checkbox Widget no longer displays a duplicate label. * CSS Tweaks * All pages are limited to a max display width of 1440, with auto margins to center the main content on the page. * "Show" pages, like ProcessInstanceShow, TaskShow have the primary content limited to 1000, also with auto-margins. * Paragraphs, headings, blockquotes, list items are limited to a width of 640. * Reduced margin bottom on all breadcrumbs. * Slightly reduced the width and margin of tiles * ordered lists and unordered lists show numbers and bullets now. * End user Instructions component can, optionally, auto-collapse, so that only a portion is displayed, along with a toggle. This is how it is set up for the ProcessInstanceShow page. * Greatly reduced the lag in the interstitial page when doing a re-direct. * run_pyl * kill console * wait for permissionsLoaded too since we are using ability.can * Previous change removed the top level Messages page - this re-adds it. * I am always, ALWAYS shocked at how I can not wrap my head around when and where to use "useEffect". This should cause the show/hide Instructions toggle to only show when useful. * Minor cleanup on the process instance properties display. * linting --------- Co-authored-by: burnettk <burnettk@users.noreply.github.com> * Fix a linting error. * minor permissions related fixes for the new ui. * Revert "Revert "Feature/better subworkflow management (#331)"" This reverts commit 48dcde8faf00241201c515b54444fe9fb373c7f4. * do not execute tasks from the process instance show page w/ burnettk * pyl w/ burnettk * Very minor UI tweak to resolve a number of issues mentioned in SPIFF-316 Notion Ticket: * Markdown links now open in a new window * Tables on the home pages are now contained within Grids to better align them with the other content that is in a grid. * Right aligned the "process instance list link" button to it is flush right with the table underneath * Gave a little more breathing room the content on the info/metadata in the process instance view . * updated docker image build action to contain the appropriate version info w/ burnettk * properly resize to the available columns depending on s/m/l --------- Co-authored-by: jasquat <jasquat@users.noreply.github.com> Co-authored-by: Dan Funk <daniel.h.funk@gmail.com> Co-authored-by: burnettk <burnettk@users.noreply.github.com>
2023-07-03 05:24:54 +00:00
## Performance / System Improvements
### Benchmarking / Performance Testing
Automated tests that assure our performance remains consistent as we add features and functionality.
### Support Multiple Connector Proxies
Service Tasks have been a huge win, there are multiple reasons that supporting more than one Connector Proxy would be beneficial:
1. Connect to several separately hosted services
2. Support multiple services written in multiple languages
3. Allow some connectors to be local (http get/post) vs remote (xero/coin gecko)
4. Could support non http based connectors (git interactions could be a workflow)
### Interstitial Performance
push all processing to background so interstitial is just querying, not running (new item)
### Authentication Keys
Provide an ability to access API endpoints using an access key - or authentication process that is specifically designed for API calls. (we currently rely on the grabbing the json token to do this, which is not a real solution)
### Core BPMN features
There are a number of useful BPMN components that we do not currently support. We should evaluate these and determine which ones we should support and how we should support them. We should consider creating a list of unsuported items.
* Compensation Events (valuable, but difficult)
* Conditional events.
* Event Sub-Processes are not currently supported (low-hanging fruit, easy to add)
### Decentralized / Distributed Deployments
This is a broad topic and will be covered in a separate document. But consider a SpiffWorkflow implementation that is deployed across a cluster of systems - and manages transactions on a shared Block Chain implementation. Such a structure could assure compliance to a set of blessed BPMN diagrams. Such a system could support highly transparent and auditable processes that could drive a DAO based organization.
### Improve Parallel Processing
We should support the parallel execution of tasks within a single process whenever possible to do so. This is not as far-fetched or difficult as it may initially seem. While Python is notoriously bad at parallel execution (the lovely GIL) - we have already taken the most critical steps to assuring it is possible:
1. A team has demonstrated parallel execution using the cure SpiffWorkflow library.
2. We can keep a configurable number of "background" SpiffArena processes running that can pick up waiting tasks.
Given these things are already in place, we just need to lock processes at the task or branch level - so that ready tasks on parallel branches can be picked up by different background processes at the same time.
2023-06-01 19:08:55 +00:00
### BPMN Definitions at save time vs run time
Improve performance by pre-processing the BPMN Specification and generating the internal JSON representation so we no longer incur the expense of doing this on a per-process basis.
2023-05-31 18:04:37 +00:00
This will also allow us to do some early and deep validation as well.
2023-06-01 19:08:55 +00:00
## End User Experience
Feature/interstitial summary part 3 (#367) * throw an error if backend gives a 500 from interstitial page w/ burnettk * turn unexpected errors for the interstitial page into event stream responses to avoid error misdirection * pyl * raise the api_error from the original and make the render_data method private * Feature/interstitial summary (#337) * * Process instance logs and messages are now components rather than pages, and are included within tabs on the process instance page, along with the diagram. * Removed the Zoom and Move modules when showing the readonly Diagram. Assured this readonly view is resized to fit the space when possible. * Checkbox Widget no longer displays a duplicate label. * CSS Tweaks * All pages are limited to a max display width of 1440, with auto margins to center the main content on the page. * "Show" pages, like ProcessInstanceShow, TaskShow have the primary content limited to 1000, also with auto-margins. * Paragraphs, headings, blockquotes, list items are limited to a width of 640. * Reduced margin bottom on all breadcrumbs. * Slightly reduced the width and margin of tiles * ordered lists and unordered lists show numbers and bullets now. * End user Instructions component can, optionally, auto-collapse, so that only a portion is displayed, along with a toggle. This is how it is set up for the ProcessInstanceShow page. * Greatly reduced the lag in the interstitial page when doing a re-direct. * run_pyl * kill console * wait for permissionsLoaded too since we are using ability.can * Previous change removed the top level Messages page - this re-adds it. * I am always, ALWAYS shocked at how I can not wrap my head around when and where to use "useEffect". This should cause the show/hide Instructions toggle to only show when useful. * Minor cleanup on the process instance properties display. * linting --------- Co-authored-by: burnettk <burnettk@users.noreply.github.com> * Fix a linting error. * minor permissions related fixes for the new ui. * Revert "Revert "Feature/better subworkflow management (#331)"" This reverts commit 48dcde8faf00241201c515b54444fe9fb373c7f4. * do not execute tasks from the process instance show page w/ burnettk * pyl w/ burnettk * Very minor UI tweak to resolve a number of issues mentioned in SPIFF-316 Notion Ticket: * Markdown links now open in a new window * Tables on the home pages are now contained within Grids to better align them with the other content that is in a grid. * Right aligned the "process instance list link" button to it is flush right with the table underneath * Gave a little more breathing room the content on the info/metadata in the process instance view . * updated docker image build action to contain the appropriate version info w/ burnettk * properly resize to the available columns depending on s/m/l --------- Co-authored-by: jasquat <jasquat@users.noreply.github.com> Co-authored-by: Dan Funk <daniel.h.funk@gmail.com> Co-authored-by: burnettk <burnettk@users.noreply.github.com>
2023-07-03 05:24:54 +00:00
### UI Overview
We could really use a good UI / UX review of the site and take a stab at cleaning up the whole site to follow some consistent design patterns and resolve potential issues.
### Customizable Home Page (non Status specific)
Allow some way to define custom landing pages that create different experiences for different organizations / needs.
2023-06-13 15:31:28 +00:00
### Markdown rendering could be better
1. When creating a bulleted or numbered list, no bullets or numbers are displayed. This is a bug in our style sheets - or something that is clearing out all styles.
2. Limit the width of paragraphs to something reasonable. Having a line of text stretch across the entire screen is not a good experience.
3. Add support for MyST - this provides a set of standard extensions to Markdown and is the extension we are using for our own documentation.
4. Add support for parsing and displaying task data / Jinja2 syntax - so you can immediately see how you are formatting the task data. Provide an additional area for setting the task data, and have it render that information in place.
## Administrator / Support Contact Information
2023-06-01 19:08:55 +00:00
Allow defining contact information at the process group and process model level, perhaps at some very top level as well - which can be inherited unless overridden.
This information could then be displayed when a process is in a non-functional state - such an error, suspended, or terminiated state.
It might also be available in the footer or under a help icon when displaying a process instance.
Feature/interstitial summary part 3 (#367) * throw an error if backend gives a 500 from interstitial page w/ burnettk * turn unexpected errors for the interstitial page into event stream responses to avoid error misdirection * pyl * raise the api_error from the original and make the render_data method private * Feature/interstitial summary (#337) * * Process instance logs and messages are now components rather than pages, and are included within tabs on the process instance page, along with the diagram. * Removed the Zoom and Move modules when showing the readonly Diagram. Assured this readonly view is resized to fit the space when possible. * Checkbox Widget no longer displays a duplicate label. * CSS Tweaks * All pages are limited to a max display width of 1440, with auto margins to center the main content on the page. * "Show" pages, like ProcessInstanceShow, TaskShow have the primary content limited to 1000, also with auto-margins. * Paragraphs, headings, blockquotes, list items are limited to a width of 640. * Reduced margin bottom on all breadcrumbs. * Slightly reduced the width and margin of tiles * ordered lists and unordered lists show numbers and bullets now. * End user Instructions component can, optionally, auto-collapse, so that only a portion is displayed, along with a toggle. This is how it is set up for the ProcessInstanceShow page. * Greatly reduced the lag in the interstitial page when doing a re-direct. * run_pyl * kill console * wait for permissionsLoaded too since we are using ability.can * Previous change removed the top level Messages page - this re-adds it. * I am always, ALWAYS shocked at how I can not wrap my head around when and where to use "useEffect". This should cause the show/hide Instructions toggle to only show when useful. * Minor cleanup on the process instance properties display. * linting --------- Co-authored-by: burnettk <burnettk@users.noreply.github.com> * Fix a linting error. * minor permissions related fixes for the new ui. * Revert "Revert "Feature/better subworkflow management (#331)"" This reverts commit 48dcde8faf00241201c515b54444fe9fb373c7f4. * do not execute tasks from the process instance show page w/ burnettk * pyl w/ burnettk * Very minor UI tweak to resolve a number of issues mentioned in SPIFF-316 Notion Ticket: * Markdown links now open in a new window * Tables on the home pages are now contained within Grids to better align them with the other content that is in a grid. * Right aligned the "process instance list link" button to it is flush right with the table underneath * Gave a little more breathing room the content on the info/metadata in the process instance view . * updated docker image build action to contain the appropriate version info w/ burnettk * properly resize to the available columns depending on s/m/l --------- Co-authored-by: jasquat <jasquat@users.noreply.github.com> Co-authored-by: Dan Funk <daniel.h.funk@gmail.com> Co-authored-by: burnettk <burnettk@users.noreply.github.com>
2023-07-03 05:24:54 +00:00
### Process Heatmap
Allow administrators to see an overlay of a BPMN diagram that shows all the process instances in the system and where they are (20 people are waiting on approval, 15 are in the re-review .....)
2023-06-01 19:08:55 +00:00
## Modeler Experience
Feature/interstitial summary part 3 (#367) * throw an error if backend gives a 500 from interstitial page w/ burnettk * turn unexpected errors for the interstitial page into event stream responses to avoid error misdirection * pyl * raise the api_error from the original and make the render_data method private * Feature/interstitial summary (#337) * * Process instance logs and messages are now components rather than pages, and are included within tabs on the process instance page, along with the diagram. * Removed the Zoom and Move modules when showing the readonly Diagram. Assured this readonly view is resized to fit the space when possible. * Checkbox Widget no longer displays a duplicate label. * CSS Tweaks * All pages are limited to a max display width of 1440, with auto margins to center the main content on the page. * "Show" pages, like ProcessInstanceShow, TaskShow have the primary content limited to 1000, also with auto-margins. * Paragraphs, headings, blockquotes, list items are limited to a width of 640. * Reduced margin bottom on all breadcrumbs. * Slightly reduced the width and margin of tiles * ordered lists and unordered lists show numbers and bullets now. * End user Instructions component can, optionally, auto-collapse, so that only a portion is displayed, along with a toggle. This is how it is set up for the ProcessInstanceShow page. * Greatly reduced the lag in the interstitial page when doing a re-direct. * run_pyl * kill console * wait for permissionsLoaded too since we are using ability.can * Previous change removed the top level Messages page - this re-adds it. * I am always, ALWAYS shocked at how I can not wrap my head around when and where to use "useEffect". This should cause the show/hide Instructions toggle to only show when useful. * Minor cleanup on the process instance properties display. * linting --------- Co-authored-by: burnettk <burnettk@users.noreply.github.com> * Fix a linting error. * minor permissions related fixes for the new ui. * Revert "Revert "Feature/better subworkflow management (#331)"" This reverts commit 48dcde8faf00241201c515b54444fe9fb373c7f4. * do not execute tasks from the process instance show page w/ burnettk * pyl w/ burnettk * Very minor UI tweak to resolve a number of issues mentioned in SPIFF-316 Notion Ticket: * Markdown links now open in a new window * Tables on the home pages are now contained within Grids to better align them with the other content that is in a grid. * Right aligned the "process instance list link" button to it is flush right with the table underneath * Gave a little more breathing room the content on the info/metadata in the process instance view . * updated docker image build action to contain the appropriate version info w/ burnettk * properly resize to the available columns depending on s/m/l --------- Co-authored-by: jasquat <jasquat@users.noreply.github.com> Co-authored-by: Dan Funk <daniel.h.funk@gmail.com> Co-authored-by: burnettk <burnettk@users.noreply.github.com>
2023-07-03 05:24:54 +00:00
### DMN Editor Sucks
Can we build a better DMN editor? Trisotech seems to do it very well. Would love to have a day or two just to research this area and see if there is just another open source project we can leverage, or if we could build our own tool.
### Modeler Checker
At run time, or when you save it would be great if we could execute a:
* Validation Report - what is wrong with the model? Is it Valid BPMN? Are there intrinsic errors?
* Linting Report! Does the model follow common naming conventions, styles, are there dead-locks, etc. Many of these tools already exist, we just need to integrate them!
### Plugins and Extensions
* Track down our previous research and add here. Color picker, etc....
### Automated Testing
Incorporate an end-to-end testing system that will allow you to quickly assure that
a bpmn model is working as expected. Imagine Cypress tests that you could define and execute in the modeler.
### Json Schemas Everywhere!
Our forms are Json Schemas (a description of the data structure) - we could do similar things for Service Tasks, Script Tasks ... such that the modeler is at all times aware of what data is available - making it possible to build and execute a task as it is created.
### Markdown Support for Process Groups and Models
Allow us to define a markdown file for a process group or process model, which would be displayed in the process group or process model in the tile view, or at the top of the details page when a group or model is selected.
Feature/interstitial summary part 3 (#367) * throw an error if backend gives a 500 from interstitial page w/ burnettk * turn unexpected errors for the interstitial page into event stream responses to avoid error misdirection * pyl * raise the api_error from the original and make the render_data method private * Feature/interstitial summary (#337) * * Process instance logs and messages are now components rather than pages, and are included within tabs on the process instance page, along with the diagram. * Removed the Zoom and Move modules when showing the readonly Diagram. Assured this readonly view is resized to fit the space when possible. * Checkbox Widget no longer displays a duplicate label. * CSS Tweaks * All pages are limited to a max display width of 1440, with auto margins to center the main content on the page. * "Show" pages, like ProcessInstanceShow, TaskShow have the primary content limited to 1000, also with auto-margins. * Paragraphs, headings, blockquotes, list items are limited to a width of 640. * Reduced margin bottom on all breadcrumbs. * Slightly reduced the width and margin of tiles * ordered lists and unordered lists show numbers and bullets now. * End user Instructions component can, optionally, auto-collapse, so that only a portion is displayed, along with a toggle. This is how it is set up for the ProcessInstanceShow page. * Greatly reduced the lag in the interstitial page when doing a re-direct. * run_pyl * kill console * wait for permissionsLoaded too since we are using ability.can * Previous change removed the top level Messages page - this re-adds it. * I am always, ALWAYS shocked at how I can not wrap my head around when and where to use "useEffect". This should cause the show/hide Instructions toggle to only show when useful. * Minor cleanup on the process instance properties display. * linting --------- Co-authored-by: burnettk <burnettk@users.noreply.github.com> * Fix a linting error. * minor permissions related fixes for the new ui. * Revert "Revert "Feature/better subworkflow management (#331)"" This reverts commit 48dcde8faf00241201c515b54444fe9fb373c7f4. * do not execute tasks from the process instance show page w/ burnettk * pyl w/ burnettk * Very minor UI tweak to resolve a number of issues mentioned in SPIFF-316 Notion Ticket: * Markdown links now open in a new window * Tables on the home pages are now contained within Grids to better align them with the other content that is in a grid. * Right aligned the "process instance list link" button to it is flush right with the table underneath * Gave a little more breathing room the content on the info/metadata in the process instance view . * updated docker image build action to contain the appropriate version info w/ burnettk * properly resize to the available columns depending on s/m/l --------- Co-authored-by: jasquat <jasquat@users.noreply.github.com> Co-authored-by: Dan Funk <daniel.h.funk@gmail.com> Co-authored-by: burnettk <burnettk@users.noreply.github.com>
2023-07-03 05:24:54 +00:00
### Adding a unit test from within the script editor would be nice
2023-06-01 19:08:55 +00:00
### Form Builder
2023-06-13 15:31:28 +00:00
1. Let's invest in a much better Form Builder experience, so that it is trivial to build new forms or modify existing simple forms. We don't want to implement everything here - but a simple builder would be very useful.
2. RJSF says it supports markdown in the headers, but it doesn't work fur us.
### Text Area / Markdown / Select list for Service Task Parameters
The text box for entering parameters for a service task is uncomfortable, to verging on maddening when trying to enter long parameters. Would also be wonderful to offer a selection list if we have a known set of options for a given parameter.
2023-06-01 19:08:55 +00:00
2023-06-13 15:31:28 +00:00
### Moving Models and Groups
Right now we allow editing the Display name of a model or group, but it does
not change the name of the underlying directory, making it harder and harder
over time to look at GitHub or the file system and find what you are seeing in the display.