* added support perm macro which removes secrets perms w/ burnettk
* support perm macro inherits from basic now and updated docs on permissions to be more accurate w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* bump spiff to change task internal data, add new method and new exceptions
* bump bpmn-js-spiffworkflow for MI updates
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* allow markdown in extensions results w/ burnettk
* fixed tests
* moved our rjsf form to component so extensions can also use it w/ burnettk
* added ability to create extensions that can download files w/ burnettk
* added test for extensions-get-data endpoint w/ burnettk
* make user optional when getting process instance reports
* added extensions-get-data to elevated perm macro and raise an error if user is not specified when needed when running a report
* fixed typeguard test
* push extensions branch
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* Adding dependencies
* Disconnect from /v1/auths for auth list. hardcoded for now.
* Revert changes
* WIP
* Getting hardcoded v2 auths into the frontend
* Better url for v2 oauth
* Pass the auth token from the frontend, don't verify token to start the auth process
* Manually verify the token from the querystring
* WIP
* WIP
* WIP, refactor SPIFF_SECRET handling, move dependencies
* Construct remote_app
* WIP
* WIP
* WIP
* WIP
* Ugly but getting the grant screen
* WIP
* WIP
* Github oauth ok
* Verify token, save access token
* Let secret name work with regex
* Getting bin_pyl to pass
* New component
* Load up the current config in an editor
* Getting bin_pyl to pass
* End point to update auth config
* Linting
* Adding configuration model
* Adding configuration model
* Prep to read config from db
* Read config from the db
* Save/reload poor man's styling
* Getting bin_pyl to pass
* Getting bin_pyl to pass
* Getting bin_pyl to pass
* Better handling of invalid json
* Getting bin_pyl to pass
* ensure users have access to run a process model in order to use it as a call activity w/ burnettk
* bad some cache dir w/ burnettk
* pyl
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* also update exclusive gateways when migrating to event payload spiffworkflow
* pyl w/ burnettk
* build docker image for this branch w/ burnettk
* check to make sure configs are not None w/ burnettk
* do not migrate tasks related to exclusive gateways w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* The onboarding controller should not save the process model to the database. It creates a pile of pointless noise. So just cleaning that up.
* run_pyl
* assure we can handle user tasks if they happen during on-boarding, while keeping the list of processes clean.
Lots of weird stuff getting run_pyl going.
* pyl
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* Revert "Revert "Feature/event payloads (#393)""
This reverts commit 95fafb7af1.
* Revert "Revert "poet not available in container""
This reverts commit 140220498c.
* Revert "Revert "Run event payloads data migration from background processor (#399)""
This reverts commit 2afced3a51.
* Revert "Revert "using new spiff api to get info about events. w/ elizabeth""
This reverts commit af857fee22.
* Revert "Revert "fix tests for waiting_event_can_be_skipped""
This reverts commit 886e6bd42a.
* push image for preview env
* default scripts to localhost w/ burnettk
* use the bugfix/update-split-task-inputs spiffworkflow branch w/ burnettk
* removed debug json files
* use main for spiffworkflow
* do not attempt to highlight non-diagram boundary items w/ burnettk
* updated SpiffWorkflow to fix multiple signal event issue w/ burnettk
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* * Display the instructions_for_user directly on the home page (no redirects to alternate pages)
* Moved the onboarding view above the tabs on the home page.
* Added a "times_executed_by_user" script - not sure if we should keep it, but maybe handy.
* Assure that the display_name for the user is returned consistently (it was not being returned by the get_current_user function).
With @jbirddog
* remove pointless comment.
* attempt to use the locked version of SpiffWorkflow in ci w/ burnettk
* fixed regex for spiffworkflow revision replacement
* make sure we also update the lockfile when getting new spiff
* install poetry before we attempt to update hte pyproject
* hardcoding spiffworkflow revision as a test w/ burnettk
* try running tests in ci from bash script w/ burnettk
* print working dir in ci w/ burnettk
* fixed location of instance dir w/ burnettk
* run with mysql in ci
* run typeguard with bash script as well w/ burnettk
* fixed postgres test w/ burnettk
* clean up github action file w/ burnettk
* fixed postgres test again w/ burnettk
* pyl
* attempt to remove nox from ci completely
* omit safety for now to test coverage
* fixed how coverage is being called from not nox
* allow running safety and macos again
* renamed run_not_nox to run_ci_session w/ burnettk
* attempt to only upload if matrix says to w/ burnettk
* attempt to install mysqlclient prereqs for mac and remove noxfile stuff w/ burnettk
* added back the constraints file w/ burnettk
* moved the contributing file to the root of arena w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* column names for tables in frontend should only have the first letter of the first word capitalized
* forgot a couple field names w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* run the error handler from the dequeued method instead of marking all failed process instances as error w/ burnettk
* do not commit some_cache_dir w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* added api and test to run a process model and return task data synchronously w/ burnettk
* added test to make sure we can access db models from extensions api w/ burnettk
* added extensions api to elevated permissions
* fixed permission tests
* do not add extensions permission to all permission for a pg or pm w/ burnettk
* added configs for extensions api w/ burnettk
* added the basis for an extensions list api w/ burnettk
* added tests for extenstions api and do not use serialized as a property
* allow giving a body to an extension when running and some support in frontend to use extensions
* added ability to display markdown and rjsf on extensions page
* added ability to submit the extension form and display the resulting task data
* made frontend extension urls have 2 pieces of information so we can specify multiple routes for the same process-model w/ burnettk
* do not save process instances when running extensions w/ burnettk
* add extension input to a task not the process w/ burnettk
* pyl w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* added ability to filter metadata by is and contains w/ burnettk
* added the empty options for metadata filtering
* remove the filter when removing the corresponding column on the frontend
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* return the process instance when interstitial process is complete and favor redirecting to it on the frontend
* upgrade certifi for snyk check
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* added a loading icon on task show page to avoid blank page when loading large datasets w/ burnettk
* fixed broken tests w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* Wedge between InProgressInstances for default view customization
* Rename to OnboardingView, stubbed out api in the backend
* Flip between InProgressInstances and MyTasks via the backend
* WIP
* WIP
* Basic human task handling
* FE lint
* Getting ./bin/pyl to pass
* Suppress any exceptions during onboarding request
* Script to skip onboarding if already started
* Getting ./bin/pyl to pass
* Better default location
* PR feedback
* PR feedback
* PR feedback - add new endpoint to basic permissions
* Fix basic permissions test
* Add integration tests
* Getting bin_pyl to pass
* return the process instance early from the interstitial if it is suspended or terminated
* added a test to make sure the interstitial page returns the process instance if suspended or termianted w/ burnettk
* randomize tests and cleaned up the pyproject file a little bit w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* move data migration code out of bin so it can be reused in background processor
* sleep for 5 minutes and update bpmn js to pull in some fixes from elizabeth
* update spiff to pull in parser update to make it act like before
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* some initial changes for event payload changes in spiff
* fixed tests for new spiffworkflow with event payloads w/ burnettk essweine
* pyl w/ burnettk essweine
* updated SpiffWorkflow from branch
* switched SpiffWorkflow back to main w/ burnettk
* added base for migration script to upgrade db w/ burnettk essweine
* some updates to script w/ burnettk
* script has been written, needs to be tested
* pyl w/ burnettk
* updates to migration script so it can work w/ burnettk
* pyl w/ burnettk
* added comment to data migration file
* run the version 1 3 migration on app boot w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* * Added /data-stores/ endpoint accessible by privileged users that will return a list of all data stores known to the system.
* Added a /data-stores/[type]/[name] endpoint that will return a list of all data stored within a data-store.
* Granted users with "elevated permissions" the right to access the data store.
* Added a "Data Store" link to the navigation bar beside messages.
* And a few useful tests.
* Still a little front end work to do to get it all looking pretty.
* Added a Data Store List component that, well, displays, you guessed it! A list of data stores and their contents.
Also, Carbon's paginator doesn't care how many pages you have, it's going to build the mother of all drop down lists - you got 60,000,000 records? Showing 5 at a time? It's going to be a dropdown list that contains all numbers between 1 and 12,000,000, because that makes sense! So, yea, not doing that, cutting it off at 1000 pages - you got more pages than that, the paginator can't take you there. As you can show 100 items per page, that means you can access 100,000 items instantly.
* renaming data_store_items_list => data_store_item_list
* added a helpers class that can be used in jinja templates
* added jinja helpers to script task imports
* added some comments for jinja helper usage
* added tests for jinja helpers
* pyl
* pass jinja helper mappings in so helpers can be used consistently
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* set locked_at_in_seconds so we can find stale locks w/ burnettk
* added background job to cleanup old locks w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* added an api to assign a list of users to a task w/ burnettk
* use the modal submit and close buttons when saving task data on the instance show page w/ burnettk
* switch save and cancel buttons on secrets new page w/ burnettk
* add some icons, tho still missing event stuff
* finished adding imporoved icons and fixing up task modal w/ burnettk
* added some user search options to assig tasks to w/ burnettk
* cleaned up task details modal and added call to backend to add potential users w/ burnettk
* fixed broken tests w/ burnettk
* removed some merge comments w/ burnettk
* process instance id is an int not a str w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* make sure we have a current processor so we don't return null
* remove sleep
* The background processor now only picks up processes that were last updated more than a minute ago to avoid conflicting with the interstitial page. With the understanding that we can rmeove this limitation when we can refactor to allow the backend processes to provide updates on what they are doing.
* pyl w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* also check human task table for completed by user when determining if an instance is associated with a user
* update pygments
* added some comments for clarity w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
* re-enable the move canvas and zoom modules, and try like hell to get the !@#$! display to zoom to fit consistently. As the from_xml does not trigger the "import.done" where the resize is happening.
* Clicking on timestamp should reload the page so we are observing the diagram at the correct point in time.
* Use a grid rather than a stack for the filter buttons, make them a consistent width, and force the close "x" button to the far right.
* Better handling the lots and lots of metadata fields in both the process instance list table, and in the metadata information on the process instance view page.
* Using DL rather than Carbon's grid, because my mind was starting to break.
* Process instance List Tables are set to optimize their max width for readability.
* assure the diagram editor is top aligned - otherwise when the proprties pannel get's super duper long (as with recent additions to multi-instance) we don't end up with weird spaces showing up above a center aligned canvas.
* wip
* updated interstitial to exit at the correct time if already locked
---------
Co-authored-by: danfunk <daniel.h.funk@gmail.com>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* 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 48dcde8faf.
* 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>
* added a new model to store task draft data in a join table
* cleaned up using the join table for draft table w/ burnettk
* created new single migration for changes w/ burnettk
* added hidden form which autosaves without validations w/ burnettk
* change close button name since it does indeed save on close now
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* added a script task script to get a task data value based on key name w/ burnettk
* pyl
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* parallel tests with xdist
* add pytest-xdist as dev dep
* put back spiff
* update messaging
* get more in line with main
---------
Co-authored-by: burnettk <burnettk@users.noreply.github.com>
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* autosave form data on change w/ burnettk
* tests are now passing and pyl
* do not do anything on autosave success w/ burnettk
* merged autosave and null form data branches together w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* updated usages of task_spec.spec for new spiff
* removed unused attributes referring to call activities
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* WIP - working with multiple process ids, need to return a file's process ids
* Send bpmn process ids back with bpmn files
* Getting ./bin/pyl to pass
* Fix up unit test
* Wire up the front end
* Pre pr cleanup
* WIP: some updates to support new spiff w/ burnettk
* unit tests are passing
* all tests except message tests are passing
* fixed usage of catch message event w/ burnettk
* messages are working again w/ burnettk
* uncommented remaining message tests w/ burnettk
* fixed cypress tests w/ burnettk
* use main for spiffworkflow
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* check if user in group also has the task assigned to them when returning process instances w/ burnettk
* only check if user is assigned task if querying for active tasks w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* Wiring up the datastore
* Writes into the data store
* Bulk save needs the timestamps
* Prep to do the local query
* Local typeahead working
* Pre pr cleanup
* ignore migrations dir in pre-commit for ruff w/ burnettk
* Getting ./bin/pyl to pass
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* use carbon components when adding secrets
* docker compose pull before running up w/ burnettk
* use all carbon on script task unit test modal w/ burnettk
* removed remaining references to bootstrap from frontend w/ burnettk
* updated usage of hidden to use the class instead of the bootstrap attribute w/ burnettk
* print out docker version for debugging
* docker pull with docker instead of compose
* added comment for docker pull in check docker start script
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* updated permission macros to give admins access to task-data and process-data w/ burnettk
* do not check for write to process-models if diagram is readonly anyway w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
* Bump flask for safety
* let snyk check flask again w/ burnettk
* attempt to use the same revision for front w/ burnettk
---------
Co-authored-by: jasquat <jasquat@users.noreply.github.com>
Display reasonable messages when a processes is suspended or errored. Can't do much with terminated.
Show the spinner more frequently and consistently.
When running ruff, ignore everything in .gitignore
* Trying to remove the duplicate code that might be causing bugs in the manual_task_complete
* Adding a test to show that a gateway can be successfully completed manually one step at a time.
Don't show the view button for Suspended, terminated, or Errored Processes when there is nothing to see.
On the interstitial page, if the process is not runnable, return out of the process, don't keep looping forever.